web-dev-qa-db-fra.com

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

Peut-on développer une application complète à l'aide de JavaFX et l'exécuter sur iOS, Android ou Windows Phone 8, sans écrire de code spécifique à la plate-forme?

101
momomo

Contexte

Réponse de l'invariant est une bonne ressource pour savoir comment tout a été démarré et quel était l'état de JavaFX pour Embedded et Mobile début 2014. Mais, beaucoup a changé depuis et les utilisateurs qui trébuchent sur ce fil ne reçoivent pas les informations mises à jour.

La plupart de mes remarques sont liées à la réponse de l'Invariant, je vous suggère donc de l'examiner en premier.

Statut actuel de JavaFX sur mobile/incorporé

Quelques mauvaises nouvelles d'abord:

Maintenant, quelques bonnes nouvelles:

  • JavaFX fonctionne toujours sur Android, iOS et la plupart des périphériques intégrés
  • JavaFXPorts SDK pour Android, iOS et les appareils intégrés peuvent être téléchargés à partir de ici
  • Le projet JavaFXPorts est toujours en plein essor et il est plus facile que jamais de faire fonctionner JavaFX sur des appareils mobiles, tout cela grâce au plugins IDE qui est construit sur ces SDK et vous permet de démarrer en quelques minutes sans tracas d'installer un SDK
  • JavaFX 3D est maintenant pris en charge sur les appareils mobiles
  • GluonVM pour remplacer RoboVM permettant le support Java 9 pour les développeurs mobiles. Oui, vous avez bien entendu.
  • Projet mobile a été lancé par Oracle pour prendre en charge JDK sur toutes les principales plates-formes mobiles. Il devrait également supporter JavaFX;)

Comment commencer

Si vous n'êtes pas du genre DIY, je vous suggère d'installer le plug-in IDE sur votre IDE favori et de commencer.

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

55
ItachiUchiha

Oui, vous pouvez exécuter une application JavaFX sur iOS, Android, un ordinateur de bureau, RaspberryPI (pas encore de Windows 8 mobile).

Travail en action:

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

JavaFX Everywhere

Ensemble8 Javafx8 Android Démo

Mon exemple d'application JavaFX s'exécutant sur Raspberry Pi

Mon exemple d'application fonctionnant sur Android

JavaFX sur iOS et Android

Ressources de développement:

Android:

Construction et déploiement d'applications JavaFX sur Android

iOS:

Le support NetBeans pour JavaFX pour iOS est sorti!

Développer une application JavaFX + iOS avec les outils Clipse RoboVM + e (fx) en 10 minutes

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

Divers:

Actuellement, la liste des priorités pour JavaFX Oracle est Desktop (Mac, Windows, Linux) et intégré (Raspberry Pi, Beagle Board, etc.) .Pour iOS/Android, Oracle a fait la plupart des javafxports acharnés et opnésourisés de ces plates-formes dans le cadre d’OpenJFX, mais il n’existe pas de machine virtuelle Java d’Oracle pour ios/Android. 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 les problèmes.

Éditer 23/06/2014:

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

74
invariant

Desktop: support de première classe

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

Android: devrait fonctionner

Il existe également un projet JavaFXPorts , qui est un projet à source ouverte parrainé par un tiers . Son objectif est de 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 le bytecode de la JVM est compilé en bytecode de Dalvik . C'est ce que les gens entendent par "Android exécute Java".

iOS: statut pas clair

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

Une alternative possible est le Multi-OS Engine d'Intel. Jusqu'à récemment, il s'agissait d'une technologie propriétaire, mais le 11 août 2016, elle était en source ouverte . Bien qu'il soit possible de compiler une application JavaFX iOS à l'aide de l'implémentation JavaFX de JavaFXPorts, rien ne permet de le prouver à ce jour. Comme vous pouvez le constater, la situation évolue de manière dynamique et cette réponse sera mise à jour, espérons-le, lorsque de nouvelles informations seront disponibles.

Windows Phone: pas de support

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

4
cubuspl42

Possible. Vous pouvez aussi faire du sport commercial.

JavaFXPorts est le nom du projet open source maintenu par Gluon qui développe le code nécessaire à l'exécution de Java et de JavaFX sur les matériels mobiles et incorporés. Le but de ce projet est de contribuer autant que possible au projet OpenJFX dans la mesure du possible, et lorsque cela n’est pas possible, de maintenir le nombre minimal de modifications nécessaires à la réalisation des objectifs de JavaFXPorts. Gluon prend le code source JavaFXPorts et le compile en binaires prêts à être déployés sur iOS, Android et du matériel intégré. Les versions de JavaFXPorts sont disponibles gratuitement sur ce site Web pour tous les développeurs.

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

2
jeton