Not answering for my fellow Tom but for myself; FXML is a format that is mainly of
interest to the developer, not the runtime environment. So, like precompiled JSP, there
is something to say for "compiling" something that is actually programming
code, no matter in which context it is used.
On 2013-07-31 09:15, John C. Turnbull wrote:
Tom, why do you think FXML on mobiles is a bad idea? Performance?
-----Original Message-----
From: openjfx-dev-boun...@openjdk.java.net
[mailto:openjfx-dev-boun...@openjdk.java.net] On Behalf Of Tom Schindl
Sent: Wednesday, 31 July 2013 16:29
To: Niklas Therning
Cc: openjfx-dev@openjdk.java.net Mailing
Subject: Re: JavaFX and iOS - it will remain a dream
I don't think it is a good idea to use fxml on embedded and mobile, we are working
on a fxml => java converter so you can add it to your build process.
Tom
Von meinem iPhone gesendet
Am 31.07.2013 um 08:11 schrieb Niklas Therning <nik...@therning.org>:
after many days trying to really build iOS apps with JavaFX and
RoboVM
or
Avian I’m very frustrated because of the following things:
Based on RoboVM, JavaFX on iOS runs unacceptable slow - I don’t
know
the
reason - maybe it’s the rendering model of JavaFX - maybe it’s the
currently unoptimized RoboVM One big problem of RoboVM is it’s
dependence of the Android library, it does not support the OpenJDK.
That’s a big reason for many many
problems
when using JavaFX. So currently it’s not possible to use fxml files
(FXMLoader) because of the missing Stax xml parser and classes like
XMLInputFactory in the android library…
There's now a compatibility library for the jfx78 backport which
includes the missing sun.* classes from OpenJDK [1]. So that will not
be a problem when running on RoboVM/Android. Daniel Zwolenski is
working on getting this into Maven which will make it nice and easy to develop
with RoboVM+OpenJFX.
FXMLLoader relies an StAX and the Java Scripting API. Those can both
be made to work on RoboVM/Android. The POM of the compat project [1]
contains optional dependencies on the StAX API and JSR 223 API. For
StAX you'll also need a StAX provider [2][3]. For scripting you'll
need a JSR 223 implementation of the scripting language you're using,
like Rhino for JavaScript [4][5]. Please note that I haven't tested
FXML but it should work (in theory at least ;-) ). Please give it a
go. It will be a great blog story if you can make it work on iOS.
As for the performance issues with RoboVM+OpenJFX: those WILL be addressed!
You can either wait for it to happen or you can help out. One way to
do that would be sample code that exercises the code paths that need
to be optimized (e.g. the button rendering you posted about earlier).
Preferably the sample should run repeatedly without user interaction.
You should then be able to run Apple's Instruments application to
profile this sample. This will help us determine what needs to be optimized.
/Niklas
[1] https://github.com/robovm/robovm-jfx78-compat
[2] https://github.com/FasterXML/aalto-xml
[3] http://woodstox.codehaus.org/
[4] https://developer.mozilla.org/en-US/docs/Rhino
[5]
https://java.net/projects/scripting/sources/svn/show/trunk/engines/javascript?rev=236