Home_draft - Izza/so_client_html5 GitHub Wiki
SpiderOak is working on its next-generation, HTML5-based mobile client in an open development process. We consider this mobile client to be SpiderOak's mobile future, and open source to be the best development avenue for this project. (Open source development may also become a key part of our desktop client's future.)
Our first milestone for the open development project was establishing the open project itself. This document, and a blog posting based on it, are our final steps in launching the open development process.
The first major release milestone is to replace the existing native-code iOS and Android mobile clients, including most or all of the existing functionality. We are aiming to complete this release by the end of the year.
Once the current native mobile clients are replaced, our aim is to incorporate the full functionality from our desktop clients into this mobile client and to further expand the mobile client's abilities. This expansion includes the ability to read from and write to the local device filesystem in order to synchronize, share from, and backup the devices. We will also include other secure collaboration features that are emerging in our service at the time of writing.
We aim to implement as much functionality as possible in HTML5 / Javascript, and have signs that some substantial cryptography functionality can be done at that level (well before the HTML5 security standards are anywhere near implementation).
The application is primarily implemented as HTML5 / CSS / Javascript. Native functionality that is not yet available via the pure HTML5 approach is implemented using an open hybrid facility, PhoneGap.
We maintained a substantial description of the architecture, and other technical details, as these details were implemented: HTML5 Client Code - Technical Details. This is the canonical guide to the application code, providing an extensive overview of the architecture, build provisions, and other technical details.
We want to make our mobile client more immediately and thoroughly accessible to interested parties. We want you to have access to, be able to participate in, and help shape the mobile client's development.
Ultimately, we want this work to be as useful as possible for people who depend on SpiderOak, and also to others who are concerned with the development of the constituent backup technologies. The mobile client is designed to further enable access to our services. We want to maximize that accessibility, and make it easier for interested parties not just to use the services, but to contribute suggestions and complaints, documentation, and even fixes and enhancements, as development is happening.
Furthermore, some of the functionality we plan to implement will rely on innovations, like Javascript-based cryptography, that will be most useful to us and others if they can be taken up and strengthened by widespread use. An open development process can be crucial for promoting that kind of action.
More generally, SpiderOak's founders and team members have strong open source backgrounds. Open source applications play significant roles in many aspects of SpiderOak's operation. SpiderOak depends on open source in key ways, and has made some essential technologies openly available since (the company's beginning/its first product release). We are continuing to increase the depth of our open source involvement by releasing key technologies in the open, like nimbus.io, and by conducting development of this mobile client as an open source project.
Releasing the client also fits with the model described by Tom Preston-Warner's GitHub screed, Open Source (Almost) Everything, fitting into the category of things that best serve us - as a company, and as committed, enthusiastic developers - when they are open source.
- (Do you realize a screed is "a long speech or piece of writing, typically one regarded as tedious"?)
SpiderOak will lead development of the client. We are not just throwing the code over the wall. We have a developer who will remain dedicated to the mobile client's development, continuing the work we began before classifying the mobile client as open source.
In the style of some of the best open development processes (for example, Python), we are reserving "benevolent dictator" discretion in conducting the effort. Nevertheless, our plan is to maintain maximum transparency, using the repository issue tracker for organizing project tasks and the repository wiki for documentation.
For our collaboration methodology, we are subscribing to the Fork & Pull collaborative development model, which is better suited to a wider collaboration process than the Share Repository model.
We chose the Apache License, v2 for a variety of reasons, covered in this tracker issue. Briefly, a permissive license is suitable to maximize proliferation, and the Apache 2 license's maturity, popularity, and incidental compatibilities generally suit our purposes.
There are many things that are pending, including some infrastructure that makes it easy to try the mobile client. At this point, you have to run (the mobile client?) from local files in order to exercise the client, and that requires special browser provisions. (We hope to soon establish a facility so people can try the latest version of the code from a regular browser session. People who want to work on the code will need to run from local files, for expedience.)
We can use suggestions, feedback, and contributions for many aspects of the application:
- Technical testing and feedback
- Try it out, register issues
- Documentation and general conduct suggestions and questions
- The documentation needs proofreading for simple mistakes and more general comprehensibility, coverage of missing stuff, etc, etc.
- Coding
- Contribute - Fork & Pull
- Code review, suggestions, questions
- Tests!!
- Convert method comments to formal scheme
- ... ... ...!