Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Funambol Java Clients Development: The Blackberry Case

1,341 views

Published on

Funambol Developers Conference (2008). Describes the technologies about Funambol products development for Blackberry devices.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Funambol Java Clients Development: The Blackberry Case

  1. 1. Funambol Java Client Development: The Blackberry Case Ivano Brogonzoli
  2. 2. Overview <ul><li>Blackberry Products flavors </li></ul><ul><li>Technology Overview </li></ul><ul><li>Funambol Clients Architectural Overview </li></ul><ul><li>Funambol Products Localization </li></ul><ul><li>Code Matters </li></ul><ul><li>Conclusions: What’s next </li></ul><ul><li>Q&A </li></ul>
  3. 3. Blackberry Products Flavor (1/2) The Funambol PIM Sync Client <ul><li>Device PIM Sync </li></ul><ul><li>Older than the email client </li></ul><ul><li>Personal data access </li></ul><ul><li>Blackberry API based </li></ul><ul><li>Manual Sync </li></ul><ul><li>Scheduled Sync </li></ul>
  4. 4. Blackberry Products Flavor (2/2) The Funambol Push Email Client <ul><li>Email and vCard Sync: </li></ul><ul><li>CTP Push service </li></ul><ul><li>SMS Push Service </li></ul><ul><li>Manual Sync </li></ul><ul><li>Scheduled Sync </li></ul>
  5. 5. Technology Overview (1/3) <ul><li>Sun JME Technology: VM and kVM </li></ul><ul><li>MIDP 2.0: JSR 118 </li></ul><ul><ul><li>Standard Profile for a wide set of devices: Graphics Management, IO Stream, Midlet Lifecycle, RMS, Media control API, PKI digital Signature, Localization; </li></ul></ul><ul><li>CLDC 1.0: JSR 30 </li></ul><ul><ul><li>java.lang (String...), java.util (Vector...), java.microedition.io (connections); </li></ul></ul>
  6. 6. Technology Overview (2/3) <ul><li>The Blackberry OS: </li></ul><ul><li>JME technology support </li></ul><ul><li>Research In Motion (RIM) API extension </li></ul><ul><li>The build process (ant extensions): </li></ul><ul><li>JME Build tools, obfuscators, pre-verifiers for JME builds </li></ul><ul><li>Specific RIM RAPC extensions to build, compress and sign the code </li></ul>
  7. 7. Technology Overview (3/3) <ul><li>Testing framework: j2meUnit </li></ul><ul><li>Good Portability </li></ul><ul><li>Test Suites enabled </li></ul><ul><li>Build integrated </li></ul><ul><li>Enhance the automated test process </li></ul>
  8. 8. Funambol Java Clients Architectural Overview (1/10) <ul><li>MVC Pattern realization : </li></ul><ul><li>Application dependent modules </li></ul><ul><li>+ </li></ul><ul><li>Shared API Components </li></ul>
  9. 9. Funambol Java Clients Architectural Overview (2/10) <ul><li>Funambol JME APIs </li></ul><ul><li>Funambol JME SyncML API </li></ul><ul><ul><li>SyncML protocol definition </li></ul></ul><ul><ul><li>SyncManager and SyncSource core classes </li></ul></ul><ul><li>Funambol JME Mail API </li></ul><ul><ul><li>Message, Address, MessageFlags classes </li></ul></ul><ul><ul><li>Parsers and Formatters for incoming and outgoing mail messages </li></ul></ul>
  10. 10. Funambol Java Clients Architectural Overview (3/10) <ul><li>RIM API Integration with Funambol JME Common API </li></ul><ul><li>Storage management: </li></ul><ul><ul><li>ObjectStore management wrapped around a RecordStore (JME shared) </li></ul></ul><ul><ul><li>RIM Persistable implementation </li></ul></ul><ul><li>ConnectionManager: </li></ul><ul><ul><li>URL configuration implemented for Blackberry due to device behavior with the Connector JME interface </li></ul></ul>
  11. 11. Funambol Java Clients Architectural Overview (4/10) <ul><li>Funambol JME Storage Management Process </li></ul>
  12. 12. Funambol Java Clients Architectural Overview (5/10) <ul><li>BlackberryRecordStore Implementation </li></ul>
  13. 13. Funambol Java Clients Architectural Overview (6/10) <ul><li>JME Connection Framework: </li></ul><ul><li>Usage: <Connection_type> c = (<Connection_type>) Connector.open(URL::String) </li></ul>
  14. 14. Funambol Java Clients Architectural Overview (7/10) <ul><li>Blackberry Connections </li></ul><ul><li>Connector.open(URL) call success depends by the URL parameters: </li></ul><ul><ul><li>Transport Interfaces (Data Bearer) </li></ul></ul><ul><ul><li>ServiceBook content (Carrier) </li></ul></ul><ul><li>Blackberry Connections need parameters and must be configured!! </li></ul>
  15. 15. Funambol Java clients Architectural Overview (8/10) <ul><li>ConnectionManager build implementation: </li></ul>
  16. 16. Funambol Java Clients Architectural Overview (9/10) <ul><li>Java native interface implementation example: </li></ul>
  17. 17. Funambol Java clients architectural overview (10/10) <ul><li>High level design on Blackberry: UI and framework to interface the Funambol APIs </li></ul><ul><li>Funambol push email client </li></ul><ul><ul><li>MIDlet (kVM compliant) </li></ul></ul><ul><li>Funambol PIM Sync Client </li></ul><ul><ul><li>Java application for Blackberry (main()) </li></ul></ul>
  18. 18. Funambol products Localization <ul><li>Different approaches: </li></ul><ul><li>Localization of PIM Sync client: </li></ul><ul><ul><li>Simple XML Parser and a language.xml file </li></ul></ul><ul><li>Localization of Funambol Email client </li></ul><ul><ul><li>Jar localizer integrated with the build process that read a property file </li></ul></ul><ul><li>Localization & Community members </li></ul><ul><ul><li>Lion Sniper Program: https://l10n.forge.funambol.org/ </li></ul></ul>
  19. 19. Code matters (1/4) <ul><li>Checkout the code from the Forge SVN: </li></ul>
  20. 20. Code Matters (2/4) <ul><li>Configure your property files and build the project calling the “ant Blackberry” task from the command line </li></ul><ul><li>Start your DS-Server if you need it. </li></ul>
  21. 21. Code Matters (3/4)
  22. 22. Code Matters (4/4) <ul><li>Start the application on the device or Emulator. </li></ul><ul><li>(Demo) </li></ul>
  23. 23. Thanks to... <ul><li>The Community Contributors: </li></ul><ul><li>All Funambolists (Funambol engineering) </li></ul><ul><li>Mailtrust (PIM Sync Client) </li></ul><ul><li>Funambol Forge User and Dev lists </li></ul>
  24. 24. Conclusions <ul><li>What's next on Blackberry: </li></ul><ul><li>Wi-Fi Network access (Soon) </li></ul><ul><li>Send photo capability </li></ul><ul><li>Native address book access on the email client </li></ul><ul><li>Different builds for enhanced device? Maybe :) </li></ul>
  25. 25. The End (Q&A?)

×