Services/AndroidSyncClient

From MozillaWiki
Jump to navigation Jump to search

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 Android Sync Service so that it shows up in the user's sync screen and that is how they interact with it


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