É possível executar aplicativos JavaFX no iOS, Android ou Windows Phone 8?

105

É possível desenvolver um aplicativo inteiro usando JavaFX e executá-lo no iOS, Android ou Windows Phone 8, sem escrever código específico para a plataforma?

mmm
fonte
1
Acho que não. Veja aqui: news.kynosarges.org/2013/10/10/javafx-on-ios-android
Viktor K.
1
Oracle desenvolve ADF mobile. Veja isso. Suporta iOS e Android.
Alexander Kirov
Basta procurar a palavra javafxports no www. A maioria dos recursos do javafx funcionam bem no windows / android / iOS. No momento, existem alguns recursos que ainda não estão funcionando no Android, como: Task.cancel () ou caracteres Unicode internacionais, ou o reprodutor de mídia fx, etc.
Amin

Respostas:

61

fundo

A resposta da Invariant é um bom recurso de como tudo foi iniciado e qual era o estado do JavaFX em embarcado e móvel no início de 2014. Mas, muito mudou desde então e os usuários que tropeçam neste tópico não obtêm as informações atualizadas.

A maioria dos meus pontos está relacionada à resposta do Invariant, então eu sugiro que você vá primeiro.

Status atual do JavaFX no celular / incorporado

Algumas más notícias primeiro:

Agora, algumas boas notícias:

  • JavaFX ainda funciona em Android, iOS e na maioria dos dispositivos Embedded
  • JavaFXPorts SDK para dispositivos Android, iOS e incorporados pode ser baixado aqui
  • O projeto JavaFXPorts ainda está prosperando e é mais fácil do que nunca executar o JavaFX em dispositivos móveis, tudo graças aos plug-ins IDE que são construídos sobre esses SDKs e permitem que você comece em alguns minutos sem o incômodo de instalar qualquer SDK
  • JavaFX 3D agora é compatível com dispositivos móveis
  • GluonVM para substituir RoboVM habilitando suporte Java 9 para desenvolvedores móveis. Sim, você ouviu direito.
  • O Mobile Project foi lançado pela Oracle para oferecer suporte ao JDK em todas as principais plataformas móveis. Deve ser compatível com JavaFX também;)

Como começar

Se você não for do tipo faça você mesmo, sugiro instalar o plug-in IDE em seu IDE favorito e começar.

A maior parte da documentação sobre como começar pode ser encontrada aqui e alguns dos exemplos podem ser encontrados aqui .

Itachi Uchiha
fonte
Não tenho certeza de quando você usou o JavaFX pela última vez, mas muitas melhorias foram feitas no JavaFX 8. Muitas coisas também mudaram de JavaFXPorts iniciais para Gluon Mobile.
ItachiUchiha
Obrigado por esta atualização. Uma pergunta rápida, o JavaFXPorts é gratuito para uso comercial (usar a biblioteca, não alterá-la)? Tenho uma base de código JavaFX que espero integrar ao Android de alguma forma. O Gluon Mobile oferece um teste gratuito, mas preciso de uma solução permanente. JavaFXPorts (não Gluon Mobile) é a solução? Esclareça
Nova
@Nova Hi. Sim, JavaFXPorts está sob a exceção GPLv2 + CLASSPATH para que você possa usá-lo em seu projeto sem se preocupar. Mas, uma vez que JavaFXPorts apenas oferece um suporte mínimo (sem suporte IDE + sem controles móveis), eu seria cético em escolhê-lo para algo comercial. O Gluon Mobile é de uso gratuito, ele só tem uma tela de Nag quando seu aplicativo é iniciado (para a versão gratuita). Mas, você pode se livrar dele quando seu aplicativo for famoso pagando uma taxa :)
ItachiUchiha
@ItachiUchiha isso parece promissor! Uma última pergunta: a comparação dos produtos Gluon Mobile encontrados aqui mostra que a tela nag é a única diferença entre a camada gratuita e a camada Indie. É seguro presumir que posso usar a versão gratuita para uso comercial, por tempo ilimitado? Tipo, sem data de validade? Eu posso lidar com a tela de nag até os fundos rolarem :) Obrigado por esclarecer
Nova
1
Desculpe, mais uma pergunta: Meu código JavaFX está 90% completo com mais de 20.000 linhas de código. Ainda posso integrar o Gluon Mobile em minha base de código ... ou preciso usá-lo desde o início, antes de escrever uma única linha? Thx
Nova
75

Sim, você pode executar o aplicativo JavaFX no iOS, Android, desktop, RaspberryPI (sem windows8 mobile ainda).

Trabalho em ação:

Conseguimos! Projeto de multimídia JavaFX8 no iPad, Android, Windows e Mac!

JavaFX Everywhere

Ensemble8 Javafx8 Android Demo

Meu aplicativo JavaFX de amostra em execução no Raspberry Pi

Meu aplicativo de amostra em execução no Android

JavaFX em iOS e Android

Recursos de desenvolvimento:

Android:

Criação e implantação de aplicativos JavaFX no Android

iOS:

O suporte do NetBeans para JavaFX para iOS foi lançado!

Desenvolva um aplicativo JavaFX + iOS com ferramentas de clipse RoboVM + e (fx) em 10 minutos

Se você vai desenvolver aplicativos sérios, aqui estão mais algumas informações

Diversos:

No momento, a lista de prioridades do Oracle para JavaFX é Desktop (Mac, Windows, Linux) e Embedded (Raspberry Pi, beagle Board etc) . não é um JVM da oracle para ios / android.Community está juntando tudo preenchendo a peça que faltava (JVM) para ios / android, Community fez um bom progresso na execução de JavaFX em ios ( RoboVM) / android ( DalvikVM ). Se você quiser, também pode contribuir com a comunidade patrocinando ( Torne-se um patrocinador do RoboVM ) ou comece a desenvolver aplicativos e relatar problemas.

Editar 23/06/2014:

Johan Vos criou um site para portas javafx JavaFX em celulares e tablets , verifique isso para obter informações atualizadas.

invariante
fonte
3
RoboVM tem o melhor logotipo de SEMPRE. É um pássaro, é um sinal de positivo, não, é um avião!
Aleksandr Dubinsky
Você pode adicionar esse link: youtube.com/watch?v=a3dAteWr40k&feature=youtu.be ;-)
assylias
@invariant quão bem está a integração e o acesso ao microfone, acelerômetro, GPS, câmera e assim por diante para os vários dispositivos?
mmm
O primeiro link está morto. Versão arquivada: web.archive.org/web/20141008171951/http://...
Miscreant
4

Desktop: suporte de primeira classe

O Oracle JavaFX do Java SE oferece suporte apenas para OS X (macOS), GNU / Linux e Microsoft Windows . Nessas plataformas, os aplicativos JavaFX normalmente são executados na JVM do Java SE ou OpenJDK.

Android: deve funcionar

Há também um projeto JavaFXPorts , que é um projeto de código aberto patrocinado por terceiros . Seu objetivo é portar a biblioteca JavaFX para Android e iOS.

No Android, essa biblioteca pode ser usada como qualquer outra biblioteca Java; o bytecode JVM é compilado para o bytecode Dalvik . É o que as pessoas querem dizer com "Android roda Java".

iOS: status não claro

No iOS, a situação é um pouco mais complexa, pois nem o Java SE nem o OpenJDK suportam dispositivos móveis da Apple. Até recentemente, a única opção sensata era usar o compilador Java RoboVM antecipado para iOS. Infelizmente, em 15 de abril de 2015, o projeto RoboVM foi encerrado .

Uma alternativa possível é o Multi-OS Engine da Intel . Até recentemente, era uma tecnologia proprietária, mas em 11 de agosto de 2016 era de código aberto . Embora seja possível compilar um aplicativo iOS JavaFX usando a implementação JavaFX do JavaFXPorts, não há evidências disso até agora. Como você pode ver, a situação está mudando dinamicamente e esta resposta será atualizada quando novas informações estiverem disponíveis.

Windows Phone: sem suporte

Com o Windows Phone é simples: não há suporte para JavaFX de nenhum tipo.

cubuspl42
fonte
2

Possível. Você também pode praticar esportes comerciais.

JavaFXPorts é o nome do projeto de código aberto mantido pela Gluon que desenvolve o código necessário para que Java e JavaFX funcionem bem em hardware móvel e embarcado. O objetivo deste projeto é contribuir ao máximo para o projeto OpenJFX sempre que possível e, quando não for possível, manter o número mínimo de mudanças necessárias para habilitar os objetivos do JavaFXPorts. Gluon pega o código-fonte JavaFXPorts e o compila em binários prontos para implantação em iOS, Android e hardware integrado. As compilações JavaFXPorts estão disponíveis gratuitamente neste site para todos os desenvolvedores.

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

Jeton
fonte
-4
  1. sim, você pode executá-lo no iOS e Android (Win8 não é compatível!
  2. nenhuma implantação, pois um aplicativo da web não funciona
tomsontom
fonte