java me simples e fácil com j2me polish
TRANSCRIPT
Java ME simples e fácil com J2ME Polish
Maurício Linhares
Write once, run anywhereÉ
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
<deviceRequirements if="test"> <requirement name="Identifier" value="Nokia/6600" />
</deviceRequirements>
<deviceRequirements unless="test"> <requirement name="JavaPackage" value="nokia-ui" /> <requirement name="BitsPerPixel" value="4+" />
</deviceRequirements>
Definindo dispositivos e capacidades
//#if !basicInput && (polish.hasPointerEvents) doSomething();
//#if polish.BitsPerPixel >= 8 doSomethingColorful();
//#else doSomethingDull();
//#endif //#elifdef doWildStuff
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...
JavaFX Mobile;
Adroid (Google);
E o que ficou fora disso tudo?
Dúvidas?