¿Es posible ejecutar aplicaciones JavaFX en iOS, Android o Windows Phone 8?

105

¿Se puede desarrollar una aplicación completa usando JavaFX y ejecutarla en iOS, Android o Windows Phone 8, sin escribir código específico de la plataforma?

mmm
fuente
1
No lo creo. Mire aquí: news.kynosarges.org/2013/10/10/javafx-on-ios-android
Viktor K.
1
Oracle desarrolla ADF móvil. Mira este. Es compatible con iOS y Android.
Alexander Kirov
Simplemente busque la palabra javafxports en www. La mayoría de las funciones de javafx funcionan bien en Windows / Android / iOS. En este momento, hay algunas características que aún no funcionan en Android, como: Task.cancel () o caracteres Unicode internacionales, o el reproductor multimedia fx, etc.
Amin

Respuestas:

61

Antecedentes

La respuesta de Invariant es un buen recurso sobre cómo se inició todo y cuál era el estado de JavaFX en dispositivos integrados y móviles a principios de 2014. Pero mucho ha cambiado desde entonces y los usuarios que se topan con este hilo no obtienen la información actualizada.

La mayoría de mis puntos están relacionados con la respuesta de Invariant, por lo que sugeriría que la revise primero.

Estado actual de JavaFX en dispositivos móviles / integrados

Algunas malas noticias primero:

Ahora, buenas noticias:

  • JavaFX todavía se ejecuta en Android, iOS y la mayoría de los dispositivos integrados
  • El SDK de JavaFXPorts para Android, iOS y dispositivos integrados se puede descargar desde aquí
  • El proyecto JavaFXPorts sigue prosperando y es más fácil que nunca ejecutar JavaFX en dispositivos móviles, todo gracias a la complementos IDE que se construyen sobre estos SDK y le permiten comenzar en unos minutos sin la molestia de instalar ningún SDK.
  • JavaFX 3D ahora es compatible con dispositivos móviles
  • GluonVM para reemplazar RoboVM habilitando Java 9 soporte para desarrolladores móviles. Sí, has escuchado bien.
  • Oracle ha lanzado Mobile Project para admitir JDK en las principales plataformas móviles. También debería ser compatible con JavaFX;)

Cómo empezar

Si no eres del tipo de bricolaje, te sugiero que instales el complemento IDE en tu IDE favorito y empieces.

La mayor parte de la documentación sobre cómo empezar se puede encontrar aquí y algunos de los ejemplos se pueden encontrar aquí .

Itachi Uchiha
fuente
No estoy seguro de cuándo usó JavaFX por última vez, pero se han realizado muchas mejoras en JavaFX 8. También han cambiado muchas cosas desde JavaFXPorts inicial a Gluon Mobile.
ItachiUchiha
Gracias por esta actualización. Pregunta rápida, ¿JavaFXPorts es de uso gratuito con fines comerciales (usar la biblioteca, no alterarla)? Tengo una base de código JavaFX que espero integrar en Android de alguna manera. Gluon Mobile ofrece una prueba gratuita, pero necesito una solución permanente. ¿Es JavaFXPorts (no Gluon Mobile) la solución? Por favor aclare
Nova
@Nova Hola. Sí, JavaFXPorts está bajo la excepción GPLv2 + CLASSPATH, por lo que puede usarlo en su proyecto sin preocuparse. Pero, dado que JavaFXPorts solo le brinda un soporte mínimo (sin soporte IDE + sin controles móviles), sería escéptico para elegirlo por algo comercial. Gluon Mobile es de uso gratuito, solo tiene una pantalla Nag cuando se inicia la aplicación (para la versión gratuita). Pero, puede deshacerse de él cuando su aplicación sea famosa pagando una tarifa :)
ItachiUchiha
@ItachiUchiha ¡eso suena prometedor! Una última pregunta: la comparación de los productos Gluon Mobile que se encuentran aquí muestra que la pantalla de queja es la única diferencia entre el nivel gratuito y el nivel Indie. ¿Es seguro asumir que puedo usar la versión gratuita para uso comercial, por tiempo ilimitado? ¿Sin fecha de vencimiento? Puedo manejar la pantalla de la queja hasta que lleguen los fondos :) Gracias por aclarar
Nova
1
Lo siento, una pregunta más: Mi código JavaFX está completo en un 90% con más de 20,000 líneas de código. ¿Puedo integrar Gluon Mobile en mi base de código ... o debo usarlo desde el principio, antes de escribir una sola línea? Thx
Nova
75

Sí, puede ejecutar la aplicación JavaFX en iOS, Android, escritorio, RaspberryPI (aún sin Windows8 Mobile).

Trabajo en acción:

¡Lo hicimos! Proyecto multimedia JavaFX8 en iPad, Android, Windows y Mac!

JavaFX en todas partes

Demostración de Android Ensemble8 Javafx8

Mi aplicación JavaFX de muestra que se ejecuta en Raspberry Pi

Mi aplicación de muestra que se ejecuta en Android

JavaFX en iOS y Android

Recursos de desarrollo:

Android:

Creación e implementación de aplicaciones JavaFX en Android

iOS:

¡El soporte de NetBeans para JavaFX para iOS está fuera!

Desarrolle una aplicación JavaFX + iOS con las herramientas de clipse de RoboVM + e (fx) en 10 minutos

Si va a desarrollar aplicaciones serias, aquí hay más información.

Misc:

En la actualidad, para JavaFX, la lista de prioridades de Oracle es Desktop (Mac, Windows, Linux) y Embedded (Raspberry Pi, beagle Board, etc.). Para iOS / Android, Oracle realizó la mayor parte del trabajo duro y las exportaciones de Java de estas plataformas como parte de OpenJFX, pero no no es una JVM de Oracle para ios / android.Community está juntando todo al completar la pieza faltante (JVM) para ios / android, Community hizo un buen progreso en la ejecución de JavaFX en ios ( RoboVM) / android ( DalvikVM ). Si lo desea, también puede contribuir a la comunidad patrocinando ( Conviértase en patrocinador de RoboVM ) o comience a desarrollar aplicaciones e informar problemas.

Editar 23/06/2014:

Johan Vos creó un sitio web para puertos javafx JavaFX en dispositivos móviles y tabletas , verifique esto para obtener información actualizada.

invariante
fuente
3
RoboVM tiene el mejor logo NUNCA. Es un pájaro, es un pulgar hacia arriba, ¡no, es un avión!
Aleksandr Dubinsky
Puede agregar ese enlace: youtube.com/watch?v=a3dAteWr40k&feature=youtu.be ;-)
assylias
@invariant ¿Qué tan bien es la integración y el acceso al micrófono, acelerómetro, gps, cámara, etc. para los distintos dispositivos?
mmm
El primer enlace está muerto. Versión archivada: web.archive.org/web/20141008171951/http://…
Miscreant
4

Escritorio: soporte de primera clase

Oracle JavaFX de Java SE solo es compatible con OS X (macOS), GNU / Linux y Microsoft Windows . En estas plataformas, las aplicaciones JavaFX se ejecutan normalmente en JVM desde Java SE u OpenJDK.

Android: debería funcionar

También hay un proyecto JavaFXPorts , que es un proyecto de código abierto patrocinado por un tercero . Su objetivo es portar la biblioteca JavaFX a Android e iOS.

En Android, esta biblioteca se puede utilizar como cualquier otra biblioteca de Java; el código de bytes de JVM se compila en el código de bytes de Dalvik . Es lo que la gente quiere decir cuando dice que "Android ejecuta Java".

iOS: estado no claro

En iOS, la situación es un poco más compleja, ya que ni Java SE ni OpenJDK son compatibles con dispositivos móviles de Apple. Hasta hace poco, la única opción sensata era utilizar el compilador Java avanzado de RoboVM para iOS. Desafortunadamente, el 15 de abril de 2015, el proyecto RoboVM se cerró .

Una posible alternativa es la de Intel motor Multi-OS de . Hasta hace poco, era una tecnología patentada, pero el 11 de agosto de 2016 era de código abierto . Aunque puede ser posible compilar una aplicación iOS JavaFX usando la implementación JavaFX de JavaFXPorts, no hay evidencia de eso hasta ahora. Como puede ver, la situación está cambiando dinámicamente y, con suerte, esta respuesta se actualizará cuando haya nueva información disponible.

Windows Phone: sin soporte

Con Windows Phone es simple: no hay soporte para JavaFX de ningún tipo.

cubuspl42
fuente
2

Posible. También puedes conseguir deporte comercial.

JavaFXPorts es el nombre del proyecto de código abierto mantenido por Gluon que desarrolla el código necesario para que Java y JavaFX funcionen bien en hardware móvil e integrado. El objetivo de este proyecto es contribuir en la mayor medida posible al proyecto OpenJFX siempre que sea posible, y cuando no sea posible, mantener el número mínimo de cambios necesarios para habilitar los objetivos de JavaFXPorts. Gluon toma el código fuente de JavaFXPorts y lo compila en binarios listos para su implementación en iOS, Android y hardware integrado. Las compilaciones de JavaFXPorts están disponibles gratuitamente en este sitio web para todos los desarrolladores.

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

Jeton
fuente
-4
  1. sí, puede ejecutarlo en iOS y Android (¡Win8 no es compatible!
  2. ninguna implementación como aplicación web no funciona
tomsontom
fuente