JavaFX Mobile is
just SavaJE recently acquired by Sun, bundled with JavaFX and given a new marketing impetus.
I
chatted to their staff and found out that there are three types of apps
for it - first party, second and third. Third will me
MIDlets.
Second are from partners of the teleco shipping the phone, first from
the teleco itself. I might have simplified too far there.
Its not as sophisticated as I would have hoped for. Six or so years ago I wrote a
toy operating system called
Jesktop
that no longer even runs right on the latest Java versions. It
was born from the realization that J2SE would one day be ordinary for
phones and palmtops. That day has arrived apparently.
What Jesktop did that I think all tools with plugins should do:
- have a mechanism for downloading a self contained app from the web
- be able to hot install something without a reboot
- be able to hot deinstall something without a reboot
- be able to hot upgrade something w/o a reboot (while using still it)
- have a kernel available for the application to use
- have the internal implementation hidden
One feature that should be easy to implement, but I never did:
- constrain each app in a different sandbox - all privileged operations should come via the classloader
MIDlets use a
public static main(String[] args) method for launching. That is pretty backwards in these days of
Dependency Injection I do not know the mechanism for launching 'first party' or 'second party' JavaFX apps, but I do know that its
not
dependency injection. DI is a no-brainer for separating
privileged operations from those of the application. Java's
main(..) method is an entry point for new processes, surely a phone is
running all apps in one JVM instance not launch a process for each.
JavaFX
Mobile does not use OSGi either, but thats a relief because that stuff
is really objectionable and a big backwards step. Its utter tragedy
that the Eclipse platform sits on it, and Java7 will be a disaster if
its major accomplishment is OSGi in the JDK.