Ken Manheimer edited this page Jan 26, 2013 · 17 revisions

Table of Contents

NOTE - This Project is Superceded

This project is superceded by https://github.com/SpiderOak/SpiderOakMobileClient SpiderOakMobileClient. The newer project is also an HTML5 / Javascript / CSS / Cordova implementation with the same agenda and a different architecture, based around Backbone.js. Please join us there!

The SpiderOak Mobile Client Open Development Project

What's All This, Then?

SpiderOak is working on its next-generation, HTML5-based mobile client in an open development process. We consider this mobile client to be a crucial part of SpiderOak's future, and open source to be the best development avenue for it. (We are evaluating taking a similar approach with the desktop client implementation, including using core code from this effort.)

Project Plans

Our first milestone for the open development project was establishing the project, itself. 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 for an end-of-the year deadline. 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 more. This 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).

Application Implementation

The application is primarily implemented as HTML5 / CSS / Javascript. Native functionality that is not yet available via HTML5 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.

Why Open Source?

We want to make our mobile client more immediately and thoroughly accessible to those interested. We want you to have access to, and be able to participate in and help shape that development, as it proceeds. 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 development of constituent technologies. The mobile client is about enabling access to our services. We want to maximize that access, 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. Further, some of the functionality we plan to implement will rely on innovations, like Javascript-based cryptography, that will be most useful, to us and to 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 the team they've gathered, 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 its start. 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 in the open. For the company, releasing the client fits with the model described by Tom Preston-Warner's GitHub article, Open Source (Almost) Everything, fitting into the category of things that best serve us - as a company, and as committed, enthusiastic developers - as open source.

Open Development Process

SpiderOak will lead development of the client. Members of our team, including the developer who has been working on the code to date, will remain dedicated to the task. We will use various tools - like this respository, including the wiki and issue tracker, plus the SpiderOak forums for discussion. (** We haven't yet organized our use of the discussion/forums.) We will be using the repository Fork & Pull methodology, suitable for collaborations that extend beyond a single organization. We chose the Apache License, v2 for our license, for a variety of reasons covered in this tracker issue. Briefly, a permissive license is suitable to maximize proliferation, and the Apache 2 license maturity, popularity, and incidental compatibilities generally suit our purposes.

How Can I Get Involved?

There are many things pending, including some infrastructure that makes it easy to try the code. (Initially, you have to run from local files, and that requires substantial special browser setup. We intend to arrange an easy avenue for people to try the latest version of the code from a regular browser session. Those wanting to run their own modified code will still need to run from local files.) There are many opportunities to help:
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.
Contribute - Fork & Pull
Code review, suggestions, questions
Convert method comments to formal scheme
... ... ...!