Funambol Java Client Development: The Blackberry Case Ivano Brogonzoli
Overview <ul><li>Blackberry Products flavors </li></ul><ul><li>Technology Overview </li></ul><ul><li>Funambol Clients Arch...
Blackberry Products Flavor (1/2) The Funambol PIM Sync Client <ul><li>Device PIM Sync </li></ul><ul><li>Older than the ema...
Blackberry Products Flavor (2/2) The Funambol Push Email Client <ul><li>Email and vCard Sync: </li></ul><ul><li>CTP Push s...
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...
Technology Overview (2/3) <ul><li>The Blackberry OS: </li></ul><ul><li>JME technology support </li></ul><ul><li>Research I...
Technology Overview (3/3) <ul><li>Testing framework: j2meUnit </li></ul><ul><li>Good Portability </li></ul><ul><li>Test Su...
Funambol Java Clients Architectural Overview (1/10) <ul><li>MVC Pattern realization : </li></ul><ul><li>Application depend...
Funambol Java Clients Architectural Overview (2/10) <ul><li>Funambol JME APIs </li></ul><ul><li>Funambol JME SyncML API </...
Funambol Java Clients Architectural Overview (3/10) <ul><li>RIM API Integration with Funambol JME Common API </li></ul><ul...
Funambol Java Clients Architectural Overview (4/10) <ul><li>Funambol JME Storage Management Process </li></ul>
Funambol Java Clients Architectural Overview (5/10) <ul><li>BlackberryRecordStore Implementation </li></ul>
Funambol Java Clients Architectural Overview (6/10) <ul><li>JME Connection Framework: </li></ul><ul><li>Usage: <Connection...
Funambol Java Clients Architectural Overview (7/10) <ul><li>Blackberry Connections </li></ul><ul><li>Connector.open(URL) c...
Funambol Java clients Architectural Overview (8/10) <ul><li>ConnectionManager build implementation: </li></ul>
Funambol Java Clients Architectural Overview (9/10) <ul><li>Java native interface implementation example: </li></ul>
Funambol Java clients architectural overview (10/10) <ul><li>High level design on Blackberry: UI and framework to interfac...
Funambol products Localization <ul><li>Different approaches: </li></ul><ul><li>Localization of PIM Sync client: </li></ul>...
Code matters (1/4) <ul><li>Checkout the code from the Forge SVN: </li></ul>
Code Matters (2/4) <ul><li>Configure your property files and build the project calling the “ant Blackberry” task from the ...
Code Matters (3/4)
Code Matters (4/4) <ul><li>Start the application on the device or Emulator. </li></ul><ul><li>(Demo)  </li></ul>
Thanks to... <ul><li>The Community Contributors: </li></ul><ul><li>All Funambolists (Funambol engineering) </li></ul><ul><...
Conclusions <ul><li>What's next on Blackberry: </li></ul><ul><li>Wi-Fi Network access (Soon) </li></ul><ul><li>Send photo ...
The End (Q&A?)
Upcoming SlideShare
Loading in …5
×

Funambol Java Clients Development: The Blackberry Case

1,284 views
1,241 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,284
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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?)

×