Funambol Java Clients Development: The Blackberry Case

Embed Size (px)

Citation preview

  • 1. Funambol Java Client Development: The Blackberry Case Ivano Brogonzoli

2. Overview

  • Blackberry Products flavors
  • Technology Overview
  • Funambol Clients Architectural Overview
  • Funambol Products Localization
  • Code Matters
  • Conclusions: Whats next
  • Q&A

3. Blackberry Products Flavor (1/2) The Funambol PIM Sync Client

  • Device PIM Sync
  • Older than the email client
  • Personal data access
  • Blackberry API based
  • Manual Sync
  • Scheduled Sync

4. Blackberry Products Flavor (2/2) The Funambol Push Email Client

  • Email and vCard Sync:
  • CTP Push service
  • SMS Push Service
  • Manual Sync
  • Scheduled Sync

5. Technology Overview (1/3)

  • Sun JME Technology: VM and kVM
  • MIDP 2.0: JSR 118
    • Standard Profile for a wide set of devices: Graphics Management, IO Stream, Midlet Lifecycle, RMS, Media control API, PKI digital Signature, Localization;
  • CLDC 1.0: JSR 30
    • java.lang (String...), java.util (Vector...), java.microedition.io (connections);

6. Technology Overview (2/3)

  • The Blackberry OS:
  • JME technology support
  • Research In Motion (RIM) API extension
  • The build process (ant extensions):
  • JME Build tools, obfuscators, pre-verifiers for JME builds
  • Specific RIM RAPC extensions to build, compress and sign the code

7. Technology Overview (3/3)

  • Testing framework: j2meUnit
  • Good Portability
  • Test Suites enabled
  • Build integrated
  • Enhance the automated test process

8. Funambol Java Clients Architectural Overview (1/10)

  • MVC Pattern realization :
  • Application dependent modules
  • +
  • Shared API Components

9. Funambol Java Clients Architectural Overview (2/10)

  • Funambol JME APIs
  • Funambol JME SyncML API
    • SyncML protocol definition
    • SyncManager and SyncSource core classes
  • Funambol JME Mail API
    • Message, Address, MessageFlags classes
    • Parsers and Formatters for incoming and outgoing mail messages

10. Funambol Java Clients Architectural Overview (3/10)

  • RIM API Integration with Funambol JME Common API
  • Storage management:
    • ObjectStore management wrapped around a RecordStore (JME shared)
    • RIM Persistable implementation
  • ConnectionManager:
    • URL configuration implemented for Blackberry due to device behavior with the Connector JME interface

11. Funambol Java Clients Architectural Overview (4/10)

  • Funambol JME Storage Management Process

12. Funambol Java Clients Architectural Overview (5/10)

  • BlackberryRecordStore Implementation

13. Funambol Java Clients Architectural Overview (6/10)

  • JME Connection Framework:
  • Usage: c = () Connector.open(URL::String)

14. Funambol Java Clients Architectural Overview (7/10)

  • Blackberry Connections
  • Connector.open(URL) call success depends by the URL parameters:
    • Transport Interfaces (Data Bearer)
    • ServiceBook content (Carrier)
  • Blackberry Connections need parameters and must be configured!!

15. Funambol Java clients Architectural Overview (8/10)

  • ConnectionManager build implementation:

16. Funambol Java Clients Architectural Overview (9/10)

  • Java native interface implementation example:

17. Funambol Java clients architectural overview (10/10)

  • High level design on Blackberry: UI and framework to interface the Funambol APIs
  • Funambol push email client
    • MIDlet (kVM compliant)
  • Funambol PIM Sync Client
    • Java application for Blackberry (main())

18. Funambol products Localization

  • Different approaches:
  • Localization of PIM Sync client:
    • Simple XML Parser and a language.xml file
  • Localization of Funambol Email client
    • Jar localizer integrated with the build process that read a property file
  • Localization & Community members
    • Lion Sniper Program: https://l10n.forge.funambol.org/

19. Code matters (1/4)

  • Checkout the code from the Forge SVN:

20. Code Matters (2/4)

  • Configure your property files and build the project calling the ant Blackberry task from the command line
  • Start your DS-Server if you need it.

21. Code Matters (3/4) 22. Code Matters (4/4)

  • Start the application on the device or Emulator.
  • (Demo)

23. Thanks to...

  • The Community Contributors:
  • All Funambolists (Funambol engineering)
  • Mailtrust (PIM Sync Client)
  • Funambol Forge User and Dev lists

24. Conclusions

  • What's next on Blackberry:
  • Wi-Fi Network access (Soon)
  • Send photo capability
  • Native address book access on the email client
  • Different builds for enhanced device? Maybe :)

25. The End (Q&A?)