- 1. Funambol Java Client Development: The Blackberry Case Ivano
Brogonzoli
2. Overview
- Blackberry Products flavors
- Funambol Clients Architectural Overview
- Funambol Products Localization
3. Blackberry Products Flavor (1/2) The Funambol PIM Sync
Client
- Older than the email client
4. Blackberry Products Flavor (2/2) The Funambol Push Email
Client
5. Technology Overview (1/3)
- Sun JME Technology: VM and kVM
-
- Standard Profile for a wide set of devices: Graphics
Management, IO Stream, Midlet Lifecycle, RMS, Media control API,
PKI digital Signature, Localization;
-
- java.lang (String...), java.util (Vector...),
java.microedition.io (connections);
6. Technology Overview (2/3)
- 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
- Enhance the automated test process
8. Funambol Java Clients Architectural Overview (1/10)
- MVC Pattern realization :
- Application dependent modules
9. Funambol Java Clients Architectural Overview (2/10)
-
- SyncML protocol definition
-
- SyncManager and SyncSource core classes
-
- 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
-
- ObjectStore management wrapped around a RecordStore (JME
shared)
-
- RIM Persistable implementation
-
- 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)
- 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
-
- Java application for Blackberry (main())
18. Funambol products Localization
- 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.
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)
- Native address book access on the email client
- Different builds for enhanced device? Maybe :)
25. The End (Q&A?)