Developing JavaFX Mobile Applications
Noel Poore (noel.poore@sun.com) Principal Engineer, Consumer Solutions
Today's Agenda
●
●
●
●
What is Java FX Mobile? Architecture overview What kinds of applications? Developer tools?
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
2
The Network in Your Hand
JavaFX Mobile
> Advanced Mobile OS – Modern OS – Run many apps at once – Linux Kernel + Java SE – Portable across devices > Compelling User Experience > Tuned for Web & Network
> > > >
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
Services Brings desktop-class software to the device Supports JavaFX Script Rich authoring tools Java is the “native” language
3
Some History
• Sun acquired assets of SavaJe in May 2007 • Demonstrated very early version of Java FX Mobile at JavaOne 2007 > First public showing of “SavaJe on Linux” • We've been working hard since then > Helping Sun to digest – 2.8M lines of Java code – 800K lines of C code – lots of third party and open source code > Finalizing and testing the Linux port > Writing a lot of new code
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
4
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
5
• Core > Modern multi-process environment > Support efficient execution of Java code > Robust, portable, adaptable • Frameworks > Comprehensive set of domain specific functionality > Serve multiple, concurrent applications > Manage, control & observe secured platform resource usage • User Experience > Highly graphical, interactive, dynamic, flexible > Design via discrete components > Customizable & personalized > Secure execution context for applications
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
6
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
7
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
8
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
9
Frameworks
• Provide high-level, integrated functionality to applications • Do more for the application than most environments
• So we can > insulate applications from things that change – e.g. where data is, how it is cached/synchronized > optimize memory & performance better > be more responsive and adaptive – e.g. the system can learn from content usage > provide a better, more consistent user experience
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
10
Frameworks
• All of the “built in” applications are written in Java • Almost all of the APIs used by these applications are accessible by third party applications > Subject to security policy
• We want third party applications to integrate as seamlessly as possible
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
11
• Functionality
> > > > > > > > > >
Platform Look & Feel Swing-based UI components Java FX Script UI support Java2D MIDP LCDUI/Games M3D FBR (Compositing engine) Window manager SVG renderer Theme service
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
12
• Functionality
> Still camera > Camcorder > Streaming playback
– Audio and video – From local file or from the network > Sampled audio > Synthesized audio > SMIL
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
13
• Functionality
> IPv4 & Ipv6
– CSD – GPRS/EDGE/UMTS – WiFi – USB ethernet > zeroconf + mDNS > Network Manager
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
14
• Functionality
> IM & Presence
> > > >
– OM IMPS – Jabber CBS SMS MMS Email (IMAP)
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
15
• Functionality
> > > >
JVM Base CLDC/MIDP stack Java SE IPC
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
16
• Functionality
> > > > > >
Alarm Events Power Manager Battery Manager Filesystems Security
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
17
• Functionality
Bluetooth USB Firewire Sync engines – IrMC – SyncML > Service discovery > DUN
> > > >
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
18
• Functionality
> Application Manager
> > > >
– MIDP Provisioning – JNLP Provisioning Software Update Settings Service WAP & OMA Provisioning OMA Device Management
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
19
• Functionality
– Contacts – Calendar – Todo – Notes Model loader DRM Content handling Backup/restore
> Information service > PIM
• • • •
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
20
• Functionality
> Browsing and rendering
– WebKit – HTML rendering component > Web service support – RSS/ATOM Feed Service – JSON – Blog publishing > Web service implementations – automatic picture upload – server-side email filtering configuration – ...
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
21
•
Functionality > GSM voice > CSD and GPRS/EDGE/UMTS packet data > Supplementary Services – Caller ID / Call waiting / Call hold – Call forwarding / barring – Multiparty – USSD > SIM/USIM – Phonebook, emergency #, own #, etc – SIM/USIM toolkit > Fixed Dialing Numbers > CPHS > Mobility management – Network selection – Preferred networks – Assisted roaming
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
22
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
23
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
24
Application Support
• Can run any number of each kind of application > Limited by memory • Each application > Runs in it's own Java Process (JProc)
> > > > > >
– Like a virtual VM Runs in the appropriate Java environment – So midlets only see MIDP/MSA classes Has it's own security manager – Security policy audited at install time Has it's own graphics context Has it's own event thread Has it's own application class loader Has it's own...
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
25
Java FX Mobile Core Processes
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
26
Java FX Script Applications
• Java FX Script
> Rich graphical scripting environment > Use Java SE functionality > Use Java FX Mobile APIs
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
27
Java FX Mobile Applications
• Use familiar Swing APIs • Use Java SE functionality • Use Java FX Mobile APIs for domain-specific functionality • JNLP application descriptor
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
28
MIDP/MSA Support
• MIDP 2.1 and MSA subset • Good compatibility for existing midlets
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
29
Developer Tools
• A full set of tools based on Netbeans will be provided > Will support both Swing and FX Script
– As well as the FX Mobile APIs > Java FX Mobile emulator > JDWP source level debug > One button build/deploy/run • We will be announcing a developer program soon > Please stay tuned!
Sun Confidential – Roadmap and Product Concepts are preliminary and should not be viewed as a commitment
30
Questions?