SlideShare une entreprise Scribd logo
1  sur  26
Java ME simples e fácil com J2ME Polish Maurício Linhares
Writeonce, runanywhere É verdade!  Eu juro!
Tem telas de tamanhos diferentes... Conjuntos de cores diferentes... Toolkits gráficos diferentes... Teclados diferentes... Conexões a rede diferentes... Os celulares...
Bibliotecas disponíveis diferentes... Capacidades de memória diferentes... Dispositivos diferentes... Usuários diferentes... Os celulares tem...
E você tem um chefe... Essa coisa tem que rodar em 30 celulares diferentes!
...e a aplicação vai ficar horrível; ...e você vai ter que escrever um monte de código pra fazer besteiras (ArrayList? Esqueça); ...e você vai ter que cuidar pra não usar nenhum dispositivo (Áudio? Vídeo? GPS? Esqueça); ...e quem garante que isso vai resolver? Talvez você ainda tenha que fazer um build por celular... Você pode fazer tudo usando só MIDP 1.0
Olha só que beleza!
A quem eu vou vender isso?
Mas não tenha medo! É, uma tartaruga, sacou?
E o que é o J2ME Polish? Um conjunto de bibliotecas open source e ferramentas para facilitar o desenvolvimento de aplicações Java ME;
Baseada no Ant (são scripts do Ant); Seleção de dispositivos a serem utilizados; Pré-processamento (diretivas de compilação); Compilação de pre-verificação; Ofuscadores de código; Geração de arquivos JAD e JAR para CADA dispositivo de forma automática; Ferramenta de build
<deviceRequirementsif="test">  	<requirement name="Identifier" value="Nokia/6600" /> </deviceRequirements>  <deviceRequirementsunless="test">  <requirement name="JavaPackage"  value="nokia-ui" />  <requirement name="BitsPerPixel"  value="4+" /> </deviceRequirements> Definindo dispositivos e capacidades
//#if !basicInput && (polish.hasPointerEvents)  doSomething();  //#ifpolish.BitsPerPixel >= 8 doSomethingColorful();  //#else doSomethingDull();  //#endif //#elifdefdoWildStuff doWildStuff();  //#endif Fazendo compilação condicional
Contém a maior parte dos dispositivos com suporte a Java ME; Guarda as características de cada dispositivo; Você pode utilizar o dispositivo junto com as diretivas de compilação; Banco de dados de dispositivos
Estilos definidos com CSS; A aplicação funciona com “temas” que podem ser alterados sem a necessidade de alterar o código; Funcionam em MIDP 1.0 e 2.0 (e você ainda pode usar os componentes do 2.0 no 1.0, como os CustomItems); Biblioteca de componentes gráficos
Uma nova fonte, a BitMapFont; Fundos animados, menus animados, “canvas” em tela cheia, novos componentes; Otimizados para dispositivos específicos; Biblioteca de componentes gráficos
Quer ver uma aplicação gráfica?
Você pode usar a engine de jogos do MIDP 2.0 em dispositivos MIDP 1.0; A engine tem diversas otimizações específicas para melhorar a performance; Você não precisa reescrever o código para diferentes dispositivos; Engine de jogos
Suporte completo a I18N sem nenhum overhead para o celular; A localização pode ser feita diretamente no código antes de ser compilado ou pode ser alterada dinamicamente na aplicação; Imagens, sons, formatações, tudo pode ser incluído na localização; Biblioteca de internacionalização e localização
Salve objetos como se eles fossem serializados, sem toda a complicação do RMS; Para tornar um objeto serializável basta defini-lo como Serializable; Todo o código necessário para fazer a serialização e carregar o objeto novamente é gerado automaticamente; Serialização de objetos em dispositivos com suporte a RMS
Usar generics em qualquer uma das coleções disponíveis; Usar o loop for-each; Usar enums; Suporte a auto-boxing; Suporte a sintaxe do Java 5
Você pode invocar métodos em objetos remotos como se estivesse utilizando RMI; Só é necessário ter um servidor web Java comum; Todas as chamadas são feitas via HTTP pelo celular; No servidor você simplesmente implementa um servlet; Invocação remota de métodos
BitMapFont; ArrayList; Suporte a ponto flutuante em celulares CLDC 1.0; TextUtil – Utilitários para Strings; Classes utilitárias e complementos
As novidades do J2ME Polish ocupam espaço e trazem novas classes para a máquina virtual do dispositivo; A licença básica é GPL, você pode pagar pela licença comercial ou entrar em um modo de licença cooperativa; É um bocado de coisa pra se aprender =P Mas nem tudo são flores...
JavaFXMobile; Adroid (Google); E o que ficou fora disso tudo?
Dúvidas?

Contenu connexe

En vedette

Introduction to Mobile programming(J2ME)
Introduction to Mobile programming(J2ME)Introduction to Mobile programming(J2ME)
Introduction to Mobile programming(J2ME)
Wambua Wambua
 
J2me Presentacion
J2me PresentacionJ2me Presentacion
J2me Presentacion
vivian7894
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2ME
João Longo
 
Tutorial: Desenvolvimento de aplicacoes moveis com Java
Tutorial: Desenvolvimento de aplicacoes moveis com JavaTutorial: Desenvolvimento de aplicacoes moveis com Java
Tutorial: Desenvolvimento de aplicacoes moveis com Java
Paulo César M Jeveaux
 

En vedette (20)

J2ME
J2MEJ2ME
J2ME
 
Java A Tope J2 Me (Java 2 Micro Edition)
Java A Tope  J2 Me (Java 2 Micro Edition)Java A Tope  J2 Me (Java 2 Micro Edition)
Java A Tope J2 Me (Java 2 Micro Edition)
 
Introduction to Mobile programming(J2ME)
Introduction to Mobile programming(J2ME)Introduction to Mobile programming(J2ME)
Introduction to Mobile programming(J2ME)
 
J2me Presentacion
J2me PresentacionJ2me Presentacion
J2me Presentacion
 
Curso de J2ME - Parte 01 - Conceitos básicos
Curso de J2ME - Parte 01 - Conceitos básicosCurso de J2ME - Parte 01 - Conceitos básicos
Curso de J2ME - Parte 01 - Conceitos básicos
 
J2ME
J2MEJ2ME
J2ME
 
J2ME
J2MEJ2ME
J2ME
 
Introducao ao J2ME
Introducao ao J2MEIntroducao ao J2ME
Introducao ao J2ME
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2ME
 
Introdução a JavaME
Introdução a JavaMEIntrodução a JavaME
Introdução a JavaME
 
Programando pra Celular!? Java ME: o que é e como começar
Programando pra Celular!? Java ME: o que é e como começarProgramando pra Celular!? Java ME: o que é e como começar
Programando pra Celular!? Java ME: o que é e como começar
 
Project on squid proxy in rhel 6
Project on squid proxy in rhel 6Project on squid proxy in rhel 6
Project on squid proxy in rhel 6
 
Minicurso Java Me
Minicurso Java MeMinicurso Java Me
Minicurso Java Me
 
J2ME
J2MEJ2ME
J2ME
 
Tutorial: Desenvolvimento de aplicacoes moveis com Java
Tutorial: Desenvolvimento de aplicacoes moveis com JavaTutorial: Desenvolvimento de aplicacoes moveis com Java
Tutorial: Desenvolvimento de aplicacoes moveis com Java
 
Curso de J2ME - Parte 03 - Desenvolvimento de aplicações
Curso de J2ME - Parte 03 - Desenvolvimento de aplicaçõesCurso de J2ME - Parte 03 - Desenvolvimento de aplicações
Curso de J2ME - Parte 03 - Desenvolvimento de aplicações
 
Java card technology
Java card technologyJava card technology
Java card technology
 
Device Drivers
Device DriversDevice Drivers
Device Drivers
 
WAP- Wireless Application Protocol
WAP- Wireless Application ProtocolWAP- Wireless Application Protocol
WAP- Wireless Application Protocol
 
Wap ppt
Wap pptWap ppt
Wap ppt
 

Similaire à Java ME simples e fácil com J2ME Polish

Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e Litebase
Nécio de Lima Veras
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
PrinceGuru MS
 
Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010
Maurício Linhares
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java Fundamentos
Wilson Lima
 

Similaire à Java ME simples e fácil com J2ME Polish (20)

Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVM
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e Litebase
 
JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
 
Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google Android
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
 
Desenvolvimento Mobile Web e o PHP
Desenvolvimento Mobile Web e o PHPDesenvolvimento Mobile Web e o PHP
Desenvolvimento Mobile Web e o PHP
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Desenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeDesenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o Forge
 
FISL11: Análise de binários ELF
FISL11: Análise de binários ELFFISL11: Análise de binários ELF
FISL11: Análise de binários ELF
 
Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2py
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java Fundamentos
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android Embarcado
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
 
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB
 
Usando vitual box parte 1
Usando vitual box   parte 1Usando vitual box   parte 1
Usando vitual box parte 1
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
 

Plus de Maurício Linhares

Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleções
Maurício Linhares
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismo
Maurício Linhares
 
Curso java 05 - herança, classes e métodos abstratos
Curso java   05 - herança, classes e métodos abstratosCurso java   05 - herança, classes e métodos abstratos
Curso java 05 - herança, classes e métodos abstratos
Maurício Linhares
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecas
Maurício Linhares
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
Maurício Linhares
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
Maurício Linhares
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010
Maurício Linhares
 

Plus de Maurício Linhares (20)

Mercado de TI
Mercado de TIMercado de TI
Mercado de TI
 
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropUnindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
 
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
 
Aprendendo ruby
Aprendendo rubyAprendendo ruby
Aprendendo ruby
 
Curso java 07 - exceções
Curso java   07 - exceçõesCurso java   07 - exceções
Curso java 07 - exceções
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleções
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismo
 
Curso java 05 - herança, classes e métodos abstratos
Curso java   05 - herança, classes e métodos abstratosCurso java   05 - herança, classes e métodos abstratos
Curso java 05 - herança, classes e métodos abstratos
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecas
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
 
Curso java 02 - variáveis
Curso java   02 - variáveisCurso java   02 - variáveis
Curso java 02 - variáveis
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
 
Migrando pra Scala
Migrando pra ScalaMigrando pra Scala
Migrando pra Scala
 
Outsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvemOutsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvem
 
Mercado hoje
Mercado hojeMercado hoje
Mercado hoje
 
Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
 
Revisão html e java script
Revisão html e java scriptRevisão html e java script
Revisão html e java script
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010
 

Dernier

Dernier (8)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Java ME simples e fácil com J2ME Polish

  • 1. Java ME simples e fácil com J2ME Polish Maurício Linhares
  • 2. Writeonce, runanywhere É verdade! Eu juro!
  • 3. Tem telas de tamanhos diferentes... Conjuntos de cores diferentes... Toolkits gráficos diferentes... Teclados diferentes... Conexões a rede diferentes... Os celulares...
  • 4. Bibliotecas disponíveis diferentes... Capacidades de memória diferentes... Dispositivos diferentes... Usuários diferentes... Os celulares tem...
  • 5. E você tem um chefe... Essa coisa tem que rodar em 30 celulares diferentes!
  • 6. ...e a aplicação vai ficar horrível; ...e você vai ter que escrever um monte de código pra fazer besteiras (ArrayList? Esqueça); ...e você vai ter que cuidar pra não usar nenhum dispositivo (Áudio? Vídeo? GPS? Esqueça); ...e quem garante que isso vai resolver? Talvez você ainda tenha que fazer um build por celular... Você pode fazer tudo usando só MIDP 1.0
  • 7. Olha só que beleza!
  • 8. A quem eu vou vender isso?
  • 9. Mas não tenha medo! É, uma tartaruga, sacou?
  • 10. E o que é o J2ME Polish? Um conjunto de bibliotecas open source e ferramentas para facilitar o desenvolvimento de aplicações Java ME;
  • 11. Baseada no Ant (são scripts do Ant); Seleção de dispositivos a serem utilizados; Pré-processamento (diretivas de compilação); Compilação de pre-verificação; Ofuscadores de código; Geração de arquivos JAD e JAR para CADA dispositivo de forma automática; Ferramenta de build
  • 12. <deviceRequirementsif="test"> <requirement name="Identifier" value="Nokia/6600" /> </deviceRequirements> <deviceRequirementsunless="test"> <requirement name="JavaPackage" value="nokia-ui" /> <requirement name="BitsPerPixel" value="4+" /> </deviceRequirements> Definindo dispositivos e capacidades
  • 13. //#if !basicInput && (polish.hasPointerEvents) doSomething(); //#ifpolish.BitsPerPixel >= 8 doSomethingColorful(); //#else doSomethingDull(); //#endif //#elifdefdoWildStuff doWildStuff(); //#endif Fazendo compilação condicional
  • 14. Contém a maior parte dos dispositivos com suporte a Java ME; Guarda as características de cada dispositivo; Você pode utilizar o dispositivo junto com as diretivas de compilação; Banco de dados de dispositivos
  • 15. Estilos definidos com CSS; A aplicação funciona com “temas” que podem ser alterados sem a necessidade de alterar o código; Funcionam em MIDP 1.0 e 2.0 (e você ainda pode usar os componentes do 2.0 no 1.0, como os CustomItems); Biblioteca de componentes gráficos
  • 16. Uma nova fonte, a BitMapFont; Fundos animados, menus animados, “canvas” em tela cheia, novos componentes; Otimizados para dispositivos específicos; Biblioteca de componentes gráficos
  • 17. Quer ver uma aplicação gráfica?
  • 18. Você pode usar a engine de jogos do MIDP 2.0 em dispositivos MIDP 1.0; A engine tem diversas otimizações específicas para melhorar a performance; Você não precisa reescrever o código para diferentes dispositivos; Engine de jogos
  • 19. Suporte completo a I18N sem nenhum overhead para o celular; A localização pode ser feita diretamente no código antes de ser compilado ou pode ser alterada dinamicamente na aplicação; Imagens, sons, formatações, tudo pode ser incluído na localização; Biblioteca de internacionalização e localização
  • 20. Salve objetos como se eles fossem serializados, sem toda a complicação do RMS; Para tornar um objeto serializável basta defini-lo como Serializable; Todo o código necessário para fazer a serialização e carregar o objeto novamente é gerado automaticamente; Serialização de objetos em dispositivos com suporte a RMS
  • 21. Usar generics em qualquer uma das coleções disponíveis; Usar o loop for-each; Usar enums; Suporte a auto-boxing; Suporte a sintaxe do Java 5
  • 22. Você pode invocar métodos em objetos remotos como se estivesse utilizando RMI; Só é necessário ter um servidor web Java comum; Todas as chamadas são feitas via HTTP pelo celular; No servidor você simplesmente implementa um servlet; Invocação remota de métodos
  • 23. BitMapFont; ArrayList; Suporte a ponto flutuante em celulares CLDC 1.0; TextUtil – Utilitários para Strings; Classes utilitárias e complementos
  • 24. As novidades do J2ME Polish ocupam espaço e trazem novas classes para a máquina virtual do dispositivo; A licença básica é GPL, você pode pagar pela licença comercial ou entrar em um modo de licença cooperativa; É um bocado de coisa pra se aprender =P Mas nem tudo são flores...
  • 25. JavaFXMobile; Adroid (Google); E o que ficou fora disso tudo?