SlideShare uma empresa Scribd logo
Java ME simples e fácil com J2ME PolishMaurí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"> 	<requirementname="Identifier" value="Nokia/6600" /></deviceRequirements> <deviceRequirementsunless="test"> <requirementname="JavaPackage" value="nokia-ui" /> <requirementname="BitsPerPixel" value="4+" /></deviceRequirements>Definindo dispositivos e capacidades
//#if !basicInput && (polish.hasPointerEvents) doSomething(); //#ifpolish.BitsPerPixel >= 8 doSomethingColorful(); //#elsedoSomethingDull(); //#endif//#elifdefdoWildStuffdoWildStuff(); //#endifFazendo 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 =PMas nem tudo são flores...
JavaFXMobile;Adroid (Google);E o que ficou fora disso tudo?
Dúvidas?

Mais conteúdo relacionado

PPTX
1.introducao java
PPT
Prazer,Ruby On Rails
PDF
Vagrant - ambiente de desenvolvimento virtualizado
PPTX
Arduino - TDC 2011
PPTX
Introdução prática ao X3D
PDF
Node.JS - Campus Party Brasil 2011
PDF
Primeiros passos no iOS com Objective-C
PDF
Xdebug seus problemas acabaram - tdc floripa 2017
1.introducao java
Prazer,Ruby On Rails
Vagrant - ambiente de desenvolvimento virtualizado
Arduino - TDC 2011
Introdução prática ao X3D
Node.JS - Campus Party Brasil 2011
Primeiros passos no iOS com Objective-C
Xdebug seus problemas acabaram - tdc floripa 2017

Destaque (20)

PPTX
PDF
Java A Tope J2 Me (Java 2 Micro Edition)
PPTX
Introduction to Mobile programming(J2ME)
PPT
J2me Presentacion
PPT
Curso de J2ME - Parte 01 - Conceitos básicos
PPT
PPT
Introducao ao J2ME
PDF
Aplicativos Moveis Com J2ME
PPT
Introdução a JavaME
PDF
Programando pra Celular!? Java ME: o que é e como começar
DOCX
Project on squid proxy in rhel 6
PDF
Minicurso Java Me
PPTX
PDF
Tutorial: Desenvolvimento de aplicacoes moveis com Java
PPT
Curso de J2ME - Parte 03 - Desenvolvimento de aplicações
PPT
Java card technology
PPTX
Device Drivers
PPT
WAP- Wireless Application Protocol
PPT
Wap ppt
Java A Tope J2 Me (Java 2 Micro Edition)
Introduction to Mobile programming(J2ME)
J2me Presentacion
Curso de J2ME - Parte 01 - Conceitos básicos
Introducao ao J2ME
Aplicativos Moveis Com J2ME
Introdução a JavaME
Programando pra Celular!? Java ME: o que é e como começar
Project on squid proxy in rhel 6
Minicurso Java Me
Tutorial: Desenvolvimento de aplicacoes moveis com Java
Curso de J2ME - Parte 03 - Desenvolvimento de aplicações
Java card technology
Device Drivers
WAP- Wireless Application Protocol
Wap ppt
Anúncio

Semelhante a Java ME simples e fácil com J2ME Polish (20)

PDF
Introdução a Programação de Dispositivos Móveis
PDF
JavaME - Aula 1
PDF
Aplicações Móveis com J2ME
PDF
PDF
20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior
PDF
Java para dispositivos móveis
PDF
Apostila de J2ME versão 1.0.pdf
PDF
Apostila de J2ME versão 1.0.pdf
PDF
J2ME Myth Busters - JustJava 2008
PDF
Introdução a Java Micro Edition (Java ME)
PPTX
Programação Android - Básico
PDF
Java EE netbeans
PDF
Minicurso de TotalCross e Litebase
PDF
Desenvolvimento de Games e Aplicações para Dispositivos Móveis
PDF
18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis
PDF
Desenvolvimento aplicacoesdispositivosmoveis
PDF
18804691 java-for-s60-java-me-and-msa-for-smart-phones
PPT
Computacao Movel e Sem Fio
PDF
Apostila JavaME
PDF
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Introdução a Programação de Dispositivos Móveis
JavaME - Aula 1
Aplicações Móveis com J2ME
20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior
Java para dispositivos móveis
Apostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdf
J2ME Myth Busters - JustJava 2008
Introdução a Java Micro Edition (Java ME)
Programação Android - Básico
Java EE netbeans
Minicurso de TotalCross e Litebase
Desenvolvimento de Games e Aplicações para Dispositivos Móveis
18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis
Desenvolvimento aplicacoesdispositivosmoveis
18804691 java-for-s60-java-me-and-msa-for-smart-phones
Computacao Movel e Sem Fio
Apostila JavaME
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Anúncio

Mais de Maurício Linhares (20)

PPTX
Mercado de TI
PPTX
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
PPTX
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
PDF
Aprendendo ruby
PDF
Curso java 07 - exceções
PDF
Curso java 08 - mais sobre coleções
PDF
Curso java 06 - mais construtores, interfaces e polimorfismo
PDF
Curso java 05 - herança, classes e métodos abstratos
PDF
Curso java 04 - ap is e bibliotecas
PPTX
Curso java 01 - molhando os pés com java
PDF
Curso java 02 - variáveis
PDF
Curso java 03 - métodos e parâmetros
PDF
Extreme programming
PDF
Feature Driven Development
PDF
Migrando pra Scala
PPTX
Outsourcing e trabalho remoto para a nuvem
PDF
Mercado hoje
PDF
Análise de sistemas oo 1
PDF
Revisão html e java script
PPTX
Aulas de Java Avançado 2- Faculdade iDez 2010
Mercado de TI
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
Aprendendo ruby
Curso java 07 - exceções
Curso java 08 - mais sobre coleções
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java 05 - herança, classes e métodos abstratos
Curso java 04 - ap is e bibliotecas
Curso java 01 - molhando os pés com java
Curso java 02 - variáveis
Curso java 03 - métodos e parâmetros
Extreme programming
Feature Driven Development
Migrando pra Scala
Outsourcing e trabalho remoto para a nuvem
Mercado hoje
Análise de sistemas oo 1
Revisão html e java script
Aulas de Java Avançado 2- Faculdade iDez 2010

Último (16)

PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
COBITxITIL-Entenda as diferença em uso governança TI
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Processos na gestão de transportes, TM100 Col18
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Arquitetura de computadores - Memórias Secundárias
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...

Java ME simples e fácil com J2ME Polish

  • 1. Java ME simples e fácil com J2ME PolishMaurício Linhares
  • 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"> <requirementname="Identifier" value="Nokia/6600" /></deviceRequirements> <deviceRequirementsunless="test"> <requirementname="JavaPackage" value="nokia-ui" /> <requirementname="BitsPerPixel" value="4+" /></deviceRequirements>Definindo dispositivos e capacidades
  • 13. //#if !basicInput && (polish.hasPointerEvents) doSomething(); //#ifpolish.BitsPerPixel >= 8 doSomethingColorful(); //#elsedoSomethingDull(); //#endif//#elifdefdoWildStuffdoWildStuff(); //#endifFazendo 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 =PMas nem tudo são flores...
  • 25. JavaFXMobile;Adroid (Google);E o que ficou fora disso tudo?