JavaFX and iOS - it will remain a dream
Tom Schindl
tom.schindl at bestsolution.at
Fri Aug 2 11:29:54 PDT 2013
Hi,
Like advertised I've now the first thing to show off. Part of our
nightly e(fx)clipse build we generate a *self-contained* FXML-Compiler
jar which anyone interested can download from [1].
We currently provide an ant-integration (I'm not 100% happy on how I
make sure the appropriate classpath is chosen) which looks like this:
> <target name="test">
> <delete dir="build" />
> <mkdir dir="build/classes"/>
>
> <taskdef name="fxml-compiler" classpathref="fxcompile" classname="org.eclipse.fx.ide.fxml.compiler.ant.FXMLCompilerTask" />
>
> <javac srcdir="src" destdir="build/classes" classpathref="buildpath"></javac>
>
> <fxml-compiler sourcedir="src" destdir="build/gen-src"/>
> <javac srcdir="build/gen-src" destdir="build/classes" classpathref="buildpath"></javac>
> </target>
If you want to compile single FXML-Files you can invoke the jar on the
commandline line this:
java -cp org.eclipse.fx.fxml.compiler_0.9.0-SNAPSHOT.jar \
org.eclipse.fx.ide.fxml.compiler.FXGraphCompiler \
$fxmlFile \
$packageRoot
$fxmlFile ... absolute path to your file
$packageRoot ... absolute path to the package-root (to construct the
package)
so on my localhost I execute it with the like this:
java -cp org.eclipse.fx.fxml.compiler_0.9.0-SNAPSHOT.jar:\
/tmp/compilersample/test/bin \
org.eclipse.fx.ide.fxml.compiler.FXGraphCompiler \
/tmp/compilersample/src/test/Test.fxml \
/tmp/compilersample/src/
I've also uploaded a sample project to [2].
Tom
[1]
http://download.eclipse.org/efxclipse/compiler-nightly/org.eclipse.fx.fxml.compiler_0.9.0-SNAPSHOT.jar
[2] http://downloads.efxclipse.org/fxml-compiler.zip
On 31.07.13 16:42, Danno Ferrin wrote:
> Where is the code base for this converter? Done properly it can also be
> written to spit out the generated stubs, as well as output in any
> language the user may prefer. A top grade implementation could
> integrate with FXMLLoader for a seamless experience ala .bss files.
>
> On Tuesday, July 30, 2013, Tom Schindl wrote:
>
> 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 <niklas at therning.org
> <javascript:;>>:
>
> >>>> 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
>
More information about the openjfx-dev
mailing list