52
edits
(Created page with "==Overview== This page is the home of the Fennec Sync Client project. This project is part of the re-writing of the Fennec UI using native Java rather than XUL ([https://wiki.moz...") |
|||
| (21 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
==Overview== | ==Overview== | ||
This page is the home of the | This page is the home of the Android Sync Client project. This project is part of the re-writing of the Fennec UI using native Java rather than XUL ([https://wiki.mozilla.org/Fennec/NativeUI Fennec Native UI]). | ||
==Engineers== | ==Engineers== | ||
| Line 20: | Line 20: | ||
* [http://docs.services.mozilla.com/storage/ Storage API] (using version 1.1) | * [http://docs.services.mozilla.com/storage/ Storage API] (using version 1.1) | ||
==Implementation Details== | == Implementation Details == | ||
* Utilize a repository pattern for writing to local database on device and talking to the sync server | |||
* Add crypto as a | *Utilize a repository pattern for writing to local database on device and talking to the sync server | ||
* Run as a lightweight Android service so that sync data is available as soon as Fennec starts | *Add crypto as a middle-ware layer to the repository so it appears as if other code is just communicating with the repository object | ||
** Perhaps run service more aggressively when Fennec is actually running, back down when Fennec isn't running to avoid using too large of a memory footprint (Android kills background services when it is in need of more memory) | *Here is the beginning of a [[Media:ClassDiagram.png|class diagram]] for the Sync Client. Details will be filled in as the client is designed | ||
*Run as a lightweight Android service so that sync data is available as soon as Fennec starts | |||
**Perhaps run service more aggressively when Fennec is actually running, back down when Fennec isn't running to avoid using too large of a memory footprint (Android kills background services when it is in need of more memory) | |||
**Ideally we'd like to write this as an [http://developer.android.com/resources/samples/SampleSyncAdapter/index.html Android Sync Service] so that it shows up in the user's sync accounts screen and that is how they interact with it | |||
** Screenshots: [[Media:AddAcountPage.jpg|Add Sync Account Page]], [[Media:SyncedAccountsPage.jpg|Synced Accounts Page]] | |||
==Milestones== | ==Milestones== | ||
* October 2011: Crypto Libraries | * October 2011: Crypto Libraries | ||
* November 2011 | * November 2011 | ||
** Week 1 - Repository framework | ** Week 1 - Repository framework | ||
** Week 2 - | ** Week 2 - Communication with sync server | ||
** Week 3 - | ** Week 3 - Setup of storage and accessing it on the client side | ||
** | ** Week 4 - Work of actually syncing (make this more granular) | ||
* December 2011 | * December 2011 | ||
** Week 1 - | ** Week 1 - Work of actually syncing (make this more granular) | ||
** Week 2 - | ** Week 2 - Wrap up and hand-off | ||
* December 16, 2011 - Last day of Jason's internship | * December 16, 2011 - Last day of Jason's internship | ||
| Line 52: | Line 56: | ||
* Project page for [https://wiki.mozilla.org/Fennec/NativeUI Fennec Native UI] | * Project page for [https://wiki.mozilla.org/Fennec/NativeUI Fennec Native UI] | ||
* Native Clojure client for [http://docs.services.mozilla.com/storage/ Weave 1.0 Sync API]: [https://github.com/rnewman/clj-weave clj-weave] | * Native Clojure client for [http://docs.services.mozilla.com/storage/ Weave 1.0 Sync API]: [https://github.com/rnewman/clj-weave clj-weave] | ||
; Crypto Notes | |||
* HKDF: | |||
** [http://tools.ietf.org/html/rfc5869 HKDF Standard (RFC 5869)] | |||
** [https://mxr.mozilla.org/services-central/source/services-central/services/sync/modules/util.js#444 RFC Compliant Code] | |||
** [https://mxr.mozilla.org/services-central/source/fx-sync/services/sync/tests/unit/test_utils_hkdfExpand.js#75 Tests] | |||
edits