3. Tem telas de tamanhos diferentes... Conjuntos de cores diferentes... Toolkits gráficos diferentes... Teclados diferentes... Conexões a rede diferentes... Os celulares...
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
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
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
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...