Can we develop an application using JavaFX and run it on multiple platforms, including mobile(Android, iOS) and Desktop(Windows, Mac, Linux) as well?
Latest Oracle MAF (2.1.2) runs on both Android and iOS.
http://www.oracle.com/technetwork/developer-tools/maf/documentation/maf212certmatrix-2524539.html
Support for Windows phones it has been in talks for a while, it will won't be long until Oracle will make it available.
JavaFX is supported on Windows, Mac and Linux. It is not supported on iOS or Android although there are third party solutions provided by the community for that (RoboVM for iOS). This might be the reason you were unable to find instructions on how to set up Android Studio with JavaFX.
Generally JavaFX 8 is very reliable on all three platforms. Please note that JavaFX 1 is an entirely different thing than JavaFX 2 and 8. Not only does it rely on JavaFX Script instead of Java, it also focusses more on browsers and mobile devices.
Related
I have a telecom desktop application(EMS) developed in java Swing. Its an old application developed and maintained in swing from last 10 years. Now we are planning to update GUI pages using javaFX technology for better and clean look & feel.
I had gone through various stack overflow discussion stating difference between javaFX and Swing. Please someone help me to understand the challenges in upgrading to javaFX GUI considering below constraints:-
-Application needs to be deployed in Unix, Solaris, HPUX, MAC and window 7/8 OS
-Some third party jars are also used along with JRE
-Current supported JRE is java 7
-There could be a plan to support android/apple/blackberry handheld devices
-We are not using Database for persistence but live data to display.
This answer is based on the detailed constraints of the question and is not a general comment on Swing to JavaFX ports. Parts of this answer will inevitably get outdated, perhaps fairly quickly.
Given your constraints, you can't upgrade your application to JavaFX.
Solaris and HPUX are not supported deployment platforms for JavaFX and that is unlikely to change.
The only way you could get JavaFX to work on Solaris or HPUX would be to use an unsupported configuration such as running a VirtualBox VM on Solaris or HPUX as the host OS, and in the VM run a supported OS, such as RedHat 6 or Oracle Linux 6, then running your JavaFX application within the supported OS - this may or may not work.
Also, I think it unlikely JavaFX would be ported to run on blackberries any time soon. There are ports of JavaFX to other mobile platforms, and they work for simple applications. I haven't tried them and think of JavaFX applications targeting such ports as a bit experimental at this stage. Such ports do not execute on an Oracle JVM and JRE, so if you use external libraries they have to be compatible with the port runtime (e.g. the Android Development Kit, RoboVM libs etc).
If you ported parts of your application to JavaFX, I would recommend running on a minimum of Java 8 rather than Java 7. Many bugs were fixed and many new features were implemented in JavaFX for Java 8. In particular for a Swing->JavaFX port, the integration capabilities of JavaFX and Swing were improved in Java 8 with SwingNode. To help ensure your target systems have the correct runtime installed you can package your application with an appropriate JRE as a self-contained application.
Of course, if you can relax your constraints a bit, there are many positive points for JavaFX.
I am currently looking at using PySide for mobile app development. I've done a few tutorials for creating desktop applications using Pyside and loving it. I understand PySide/PyQt is a port or mapping for Qt, and is usualy behind a little bit with Qt as developers of PySide/PyQt have to keep up with whatever happens in Qt.
I particularly want to develop for Android, BlackBerry and iOS. I also understand that Qt recently added support for Windows 8, as well as the more recent BlackBerry 10 OS.
My question: How well versed is PySide/PyQt in its current state with cross mobile application development.
Does it achieve mobile development by means of the WebKit component, allowing the use of everyday HTML, CSS and JavaScript?
Would it be a better option to consider PyQt for mobile app development, or PySide?
I think its not realistic to think you can use PySide/PyQt and Python in order to make one application suitable for all those platforms.
First of all the platform you want to develop for should support your programming language (Python) as well as the graphical framework (Qt) in order to make it work. This is mostly achieved by third party developers. If Python runs on your mobile operating system this does not say you can start developing and vice versa.
Mobile development is often done with QML (Qt Modeling Language). This allows you to make really cool and fancy interfaces on many platforms. You can connect it to your own Python code to make a real working application.
At this moment Qt is working on support for mobile devices. Most mobile operating systems like iOS and Windows Phone are not supported yet for the combination Python/Qt and mostly the support for working projects is not really big in comparison to the preferred languages of the operating systems.
Here is a list of mobile OS's which support the combination Python/Qt
Link to projects if there is a good link for a starting points is available
Android: PySide for Android
or if you like to use "webviews" instead of PySide: SL4A
Blackberry 10: BB-py
Meego: Python/Harmattan Project
SailFish OS: Harmattan apps (Meego) run without any problem
For your other questions I have a shorter answer.
The webkit component is intended as a content viewer component. Its not a component for building full HTML 5 apps.
The question which bindings for Qt are better is often asked. What you need to be aware of is that the old version of PyQt did almost the same as PySide. The difference was mainly in the license! However PyQt supports now Qt 5 while PySide doesn't, so make your own choice. I think you can make beautiful apps with both of them.
If I write a Qt Gui application in c++, will it work on the Android OS?
You might be interested in this video: http://labs.qt.nokia.com/2011/02/28/necessitas/
So, yes, it is possible. Personally I would recommend always using the native platform where possible - chances are it's going to be more stable across all the various Android devices.
I'm starting to porting an Android app to Qt. Planning to port it to MeeGo, Symbian and Linux-Windows desktop versions.
My app uses alarms in Android and I have found XQAlarm class in Qt to be very usefull, BUT its belongs to Mobile Extensions package.
Any equivalent class for desktop (Linux, Windows)? or a workarround class?
If this is for mobile extension, say Symbian, then you will have to use native OS API.
Sorry, by mistake I posted the reply here, instead of replying to : How to set alarm in qt mobility application
I was searching for similar questions on this site for "xqalarm" and got this hit.
I've a Samsung Omnia i900 that runs Windows Mobile OS. Believe it or not, but nowhere on the Internet can I find information on running a JavaFX application on it. Is it possible?
JavaFX Mobile is now available in Early Access for Windows Mobile devices. You can download the binary from javafx.com.
As far as I can tell, JavaFX Mobile hasn't been released. Some of the pre-release tools worked on Windows Mobile (judging by some blog posts) but that support was dropped from the 1.0 release.
JavaFX 1.1 is meant to have Windows Mobile support, but it looks like that's on the development side rather than on real devices - the fact that there's a mobile emulator as one of the key features for JavaFX 1.1 is quite telling.
According to the FAQ:
2.4 How can consumers get JavaFX on their handsets?
Sun is working with Mobile Device
Manufacturers and Mobile Operators to
enable out of the box support for
JavaFX content by preloading the
JavaFX Mobile runtime with their
devices
That doesn't exactly sound encouraging for being able to get it on your handset right now. I may be missing something, but I certainly couldn't find anything to download...