Services/AndroidSyncClient: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 25: Line 25:
* Run as a lightweight Android service so that sync data is available as soon as Fennec starts
* 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)
** 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 screen and that is how they interact with it
** 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 screen and that is how they interact with it  
** Screenshots: [[media:AndroidSyncScreenSample1|screen 1]], [[media:AndroidSyncScreenSample1|screen 2]]
** Screenshots: [[Image:AndroidSyncScreenSample1|screen 1]], [[Image:AndroidSyncScreenSample1|screen 2]]


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.
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.

Revision as of 19:21, 27 October 2011

Overview

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 (Fennec Native UI).

Engineers

  • Jason Voll

Requirements

  • Integrate correctly with existing sync clients
  • Use existing Sync API's to communicate with Sync server via HTTP
  • Reliable
  • Behave as existing Fennec sync client does (i.e. no regression)

Specifications

Cryptography
  • AES 256 CBC
  • HMAC SHA 256
  • SHA1 for converting email to a username
APIs for communicating with Mozilla Sync Server

Implementation Details

  • Utilize a repository pattern for writing to local database on device and talking to the sync server
  • Add crypto as a middle-ware layer to the repository so it appears as if other code is just communicating with the repository object
  • 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 Sync Service so that it shows up in the user's sync screen and that is how they interact with it
    • Screenshots: screen 1, screen 2

Here is the beginning of a class diagram for the Sync Client. Details will be filled in as the client is designed.

Milestones

  • October 2011: Crypto Libraries
  • November 2011
    • Week 1 - Repository framework?
    • Week 2 -
    • Week 3 -
    • week 4 -
  • December 2011
    • Week 1 -
    • Week 2 -
  • December 16, 2011 - Last day of Jason's internship

Repository

Initial development will be stored on github in the following repository: https://github.com/mozilla-services/android-sync

Related Bugs

Feature bug: 695463

Resources

Crypto Notes