SlideShare una empresa de Scribd logo
1 de 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?

Más contenido relacionado

Destacado

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)Mauro Gomez Mejia
 
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 Presentacionvivian7894
 
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ásicosLeonardo Melo Santos
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEJoão Longo
 
Introdução a JavaME
Introdução a JavaMEIntrodução a JavaME
Introdução a JavaMEfrgo
 
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çarLucas Torri
 
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 6Nutan Kumar Panda
 
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 JavaPaulo César M Jeveaux
 
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çõesLeonardo Melo Santos
 
WAP- Wireless Application Protocol
WAP- Wireless Application ProtocolWAP- Wireless Application Protocol
WAP- Wireless Application ProtocolSenthil Kanth
 

Destacado (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
 

Similar a J2ME Polish: desenvolvimento Java ME simples e fácil

Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVMWilliam Gouvea
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"Stefan Horochovec
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseNécio de Lima Veras
 
Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google AndroidIury Teixeira
 
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 & DockerGiovanni Kenji Shiroma
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
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 ForgeEder Magalhães
 
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 ELFFernando Mercês
 
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 2010Maurício Linhares
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 
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 web2pyGilson Filho
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Rodrigo Urubatan
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java FundamentosWilson Lima
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android EmbarcadoOdair Sousa
 
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 2013javamanrj
 
[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 + MongoDBVinicius de Sá
 
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 PerformanceFelipe Ribeiro
 

Similar a J2ME Polish: desenvolvimento Java ME simples e fácil (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
 

Más de Maurício Linhares

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 OfficeDropMaurício Linhares
 
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 OfficeDropMaurí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çõesMaurí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 polimorfismoMaurí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 abstratosMaurí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 bibliotecasMaurí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 javaMaurí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âmetrosMaurício Linhares
 
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 nuvemMaurí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 2010Maurício Linhares
 

Más 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
 

J2ME Polish: desenvolvimento Java ME simples e fácil

  • 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?