Est-il possible d'exécuter des applications JavaFX sur iOS, Android ou Windows Phone 8?

105

Peut-on développer une application entière en utilisant JavaFX et l'exécuter sur iOS, Android ou Windows Phone 8, sans écrire de code spécifique à la plateforme?

mmm
la source
1
Je ne pense pas. Regardez ici: news.kynosarges.org/2013/10/10/javafx-on-ios-android
Viktor K.
1
Oracle développe ADF mobile. Regarde ça. Il prend en charge iOS et Android.
Alexander Kirov
Recherchez simplement le mot javafxports sur le site www. La plupart des fonctionnalités de javafx fonctionnent correctement sur Windows / Android / iOS. En ce moment, il y a quelques fonctionnalités qui ne fonctionnent pas encore sur Android telles que: Task.cancel () ou les caractères internationaux unicode, ou le lecteur multimédia fx, etc.
Amin

Réponses:

61

Contexte

La réponse d'Invariant est une bonne ressource pour savoir comment tout a commencé et quel était l'état de JavaFX sur embarqué et mobile au début de 2014. Mais, beaucoup de choses ont changé depuis et les utilisateurs qui trébuchent sur ce fil ne reçoivent pas les informations mises à jour.

La plupart de mes points sont liés à la réponse d'Invariant, je suggère donc de la parcourir d'abord.

État actuel de JavaFX sur mobile / intégré

Quelques mauvaises nouvelles d'abord:

Maintenant, quelques bonnes nouvelles:

  • JavaFX fonctionne toujours sur Android, iOS et la plupart des appareils embarqués
  • Le SDK JavaFXPorts pour Android, iOS et les appareils embarqués peut être téléchargé à partir d' ici
  • Le projet JavaFXPorts est toujours en plein essor et il est plus facile que jamais d'exécuter JavaFX sur des appareils mobiles, tout cela grâce aux plugins IDE qui sont construits sur ces SDK et vous permettent de démarrer en quelques minutes sans avoir à installer de SDK
  • JavaFX 3D est désormais pris en charge sur les appareils mobiles
  • GluonVM pour remplacer RoboVM permettant la prise en charge de Java 9 pour les développeurs mobiles. Oui, vous avez bien entendu.
  • Mobile Project a été lancé par Oracle pour prendre en charge JDK sur toutes les principales plates-formes mobiles. Il devrait également prendre en charge JavaFX;)

Comment commencer

Si vous n'êtes pas du genre bricoleur, je vous suggère d'installer le plugin IDE sur votre IDE préféré et de commencer.

La plupart de la documentation sur la façon de commencer peut être trouvée ici et certains des exemples peuvent être trouvés ici .

ItachiUchiha
la source
Je ne sais pas quand vous avez utilisé JavaFX pour la dernière fois, mais beaucoup d'améliorations ont été apportées à JavaFX 8. Beaucoup de choses ont également changé entre JavaFXPorts initial et Gluon Mobile.
ItachiUchiha
Merci pour cette mise à jour. Question rapide, JavaFXPorts est-il gratuit à utiliser à des fins commerciales (en utilisant la bibliothèque, sans la modifier)? J'ai une base de code JavaFX que j'espère intégrer d'une manière ou d'une autre à Android. Gluon Mobile propose un essai gratuit, mais j'ai besoin d'une solution permanente. JavaFXPorts (et non Gluon Mobile) est-il la solution? Veuillez clarifier
Nova
@Nova Salut. Oui, JavaFXPorts est sous exception GPLv2 + CLASSPATH afin que vous puissiez l'utiliser dans votre projet sans vous inquiéter. Mais, étant donné que JavaFXPorts vous donne juste un support minimal (pas de support IDE + pas de contrôles mobiles), je serais sceptique de le choisir pour quelque chose de commercial. Gluon Mobile est gratuit, il n'a qu'un écran Nag lorsque votre application démarre (pour la version gratuite). Mais, vous pouvez vous en débarrasser lorsque votre application est célèbre en payant des frais :)
ItachiUchiha
@ItachiUchiha cela semble prometteur! Une dernière question: la comparaison des produits Gluon Mobile trouvée ici montre que l'écran de bourrin est la seule différence entre le niveau gratuit et le niveau Indie. Est-il sûr de supposer que je peux utiliser la version gratuite à des fins commerciales, pour une durée illimitée? Comme dans, pas de date d'expiration? Je peux gérer l'écran de bourrin jusqu'à ce que les fonds arrivent :) Merci d'avoir clarifié
Nova
1
Désolé, une autre question: mon code JavaFX est complet à 90% avec plus de 20 000 lignes de code. Puis-je toujours intégrer Gluon Mobile dans ma base de code ... ou dois-je l'utiliser dès le début, avant d'écrire une seule ligne? Thx
Nova
75

Oui, vous pouvez exécuter l'application JavaFX sur iOS, Android, bureau, RaspberryPI (pas encore de mobile Windows8).

Travailler en action:

Nous l'avons fait! Projet multimédia JavaFX8 sur iPad, Android, Windows et Mac!

JavaFX partout

Démo Android Ensemble8 Javafx8

Mon exemple d'application JavaFX fonctionnant sur Raspberry Pi

Mon exemple d'application fonctionnant sur Android

JavaFX sur iOS et Android

Ressources de développement:

Android :

Création et déploiement d'applications JavaFX sur Android

iOS:

Le support NetBeans pour JavaFX pour iOS est sorti!

Développez une application JavaFX + iOS avec les outils de clipage RoboVM + e (fx) en 10 minutes

Si vous comptez développer des applications sérieuses, voici quelques informations supplémentaires

Divers:

À l'heure actuelle, pour JavaFX, la liste des priorités d'Oracle est Desktop (Mac, Windows, Linux) et Embedded (Raspberry Pi, Beagle Board, etc.) . n'est pas une JVM d'Oracle pour ios / android. La communauté rassemble tout en remplissant la pièce manquante (JVM) pour ios / android, la communauté a bien progressé dans l'exécution de JavaFX sur ios ( RoboVM) / android ( DalvikVM ). Si vous le souhaitez, vous pouvez également contribuer à la communauté en parrainant ( Devenir un sponsor RoboVM ) ou commencer à développer des applications et signaler des problèmes.

Modifier le 23/06/2014:

Johan Vos a créé un site Web pour les ports javafx JavaFX sur mobile et tablettes , vérifiez ceci pour obtenir des informations mises à jour.

invariant
la source
3
RoboVM a le meilleur logo JAMAIS. C'est un oiseau, c'est un coup de pouce, non c'est un avion!
Aleksandr Dubinsky
Vous pouvez ajouter ce lien: youtube.com/watch?v=a3dAteWr40k&feature=youtu.be ;-)
assylias
@invariant dans quelle mesure l'intégration et l'accès au microphone, à l'accéléromètre, au GPS, à la caméra, etc. sont-ils efficaces pour les différents appareils?
mmm
Le premier lien est mort. Version archivée: web.archive.org/web/20141008171951/http://…
Miscreant
4

Bureau: support de première classe

Oracle JavaFX de Java SE prend en charge uniquement OS X (macOS), GNU / Linux et Microsoft Windows . Sur ces plates-formes, les applications JavaFX sont généralement exécutées sur JVM à partir de Java SE ou OpenJDK.

Android: devrait fonctionner

Il existe également un projet JavaFXPorts , qui est un projet open source sponsorisé par un tiers . Il vise à porter la bibliothèque JavaFX sur Android et iOS.

Sur Android, cette bibliothèque peut être utilisée comme n'importe quelle autre bibliothèque Java; le bytecode JVM est compilé en bytecode Dalvik . C'est ce que les gens veulent dire en disant que "Android exécute Java".

iOS: état non clair

Sur iOS, la situation est un peu plus complexe, car ni Java SE ni OpenJDK ne prennent en charge les appareils mobiles Apple. Jusqu'à récemment, la seule option raisonnable était d'utiliser le compilateur Java RoboVM à l' avance pour iOS. Malheureusement, le 15 avril 2015, le projet RoboVM a été arrêté .

Une alternative possible est le moteur multi-OS d' Intel . Jusqu'à récemment, c'était une technologie propriétaire, mais le 11 août 2016, elle était open-source . Bien qu'il soit possible de compiler une application JavaFX iOS à l'aide de l'implémentation JavaFX de JavaFXPorts, il n'y a aucune preuve de cela jusqu'à présent. Comme vous pouvez le voir, la situation change de manière dynamique et cette réponse sera, espérons-le, mise à jour lorsque de nouvelles informations seront disponibles.

Windows Phone: pas de support

Avec Windows Phone, c'est simple: il n'y a aucun support JavaFX d'aucune sorte.

cubuspl42
la source
2

Possible. Vous pouvez également faire du sport commercial.

JavaFXPorts est le nom du projet open source maintenu par Gluon qui développe le code nécessaire pour que Java et JavaFX fonctionnent correctement sur du matériel mobile et embarqué. Le but de ce projet est de contribuer autant que possible au projet OpenJFX, et lorsque cela n'est pas possible, de maintenir le nombre minimal de modifications nécessaires pour activer les objectifs de JavaFXPorts. Gluon prend le code source JavaFXPorts et le compile dans des binaires prêts à être déployés sur iOS, Android et le matériel embarqué. Les versions JavaFXPorts sont disponibles gratuitement sur ce site Web pour tous les développeurs.

http://gluonhq.com/labs/javafxports/

jeton
la source
-4
  1. oui, vous pouvez l'exécuter sur iOS et Android (Win8 n'est pas pris en charge!
  2. aucun déploiement en tant qu'application Web ne fonctionne pas
tomsontom
la source