O melhor dos mundos! Java para a Série 60 da Nokia com NetBeans
Guia Rápido de Programação Java para a Série 60 da Nokia
Índice
Introdução - História da Busca da Solução
Recentemente estive buscando soluções Java para o desenvolvimento de aplicativos para dispositivos handhelds como Palms, PocketPcs e celulares.Instalei uma porção de IDEs com esse intuito e testei cada uma delas. Este artigo é fruto do resultado de uma delas e essa experiência positiva que descrevo aqui. Pois me surpreendeu saber que das ferramentas que utilizei somente o NetBeans foi capaz de rodar sem complicações o teste simples que propus.Espero ajudar a outros desenvolvedores que passem por situação semelhante.
Ao pesquisar uma solução de desenvolvimento para J2ME que fosse simples, rápida, gratuita e eficiente, eu me deparei com três principais ferramentas. São elas:
- IBM WebSphere Studio Device Developer 5.7.1;
- Borland Mobile Studio 1.5 com o JBuilder X;
- NetBeans IDE 4.0 com Mobility Pack 4.0.
Ironicamente, só usei o NetBeans após ter testado todas as outras. Inclusive testei soluções que não listo acima, por não achar que sejam relevantes ou de maior utilidade. Inicialmente eu havia pensado que o NetBeans não estava preparado tão bem quanto seus concorrentes para trabalhar J2ME. Pensava que as outras fossem melhores e desconhecia a existência do Mobility Pack 4.0 para NetBeans. Então, antes, testei o WebSphere e depois o JBuilder.
Ao testar o WebSphere tive alguns problemas de configuração de variáveis de ambiente e conflitos com workspaces. Problemas que me demandaram muito tempo até que eu rodasse por muitos lugares e descobrir que todos esses problemas que tive, estavam bem documentados no releasenotes.txt que acompanha o WSDD. Após resolver os problemas com o WebSphere consegui fazer rodar os MIDlets, mas fiquei muito decepcionado com a complicação da configuração do ambiente e a lenta velocidade do linker da IBM. Para depurar, o WebSphere também não é bom. Ele é lento! Muito lento! Chega a ser antiprodutivo para quem compila e depura muito. Em contrapartida, o WSDD já vem com tudo que é necessário para desenvolver para diversos tipos de handhelds, inclusive com JVMs especificas.
As melhores JVMs que já experimentei são, sem dúvida, as JVMs da IBM para handhelds. Elas são estáveis, respeitam as especificações J2ME e são relativamente rápidas, além de terem o menor custo da categoria JVMs não-gratuitas. Para ter uma idéia, uma JVM para um Pocket PC iPAQ está por volta de USD$ 5 por dispositivo instalado. Uma boa notícia é que essas JVMs, normalmente acompanham o WSDD. Como o WSDD Trial tem duração de 90 dias, isso dá tempo suficiente para testar sua solução na JVM e decidir se compra ou não. Outra vantagem dessas JVMs é que você pode comprá-las unitariamente e diretamente do bom site (mas não menos monopolista) Handango.
O saldo do WSDD foi negativo, mas fiquei satisfeito com as JVMs da IBM. Atualmente estou recomendando usar o NetBeans como plataforma de desenvolvimento para J2ME e usar no dispositivo handheld JVM da IBM. Isso é receita para não ter problemas.
Quanto ao JBuilder só tenho algo a dizer: Nem Tente! Fique com o WebSphere ou preferencialmente o NetBeans.
Como resultado do sucesso que tive com o NetBeans, publico então um tutorial para quem está querendo começar a desenvolver para J2ME e está com dificuldade de achar um caminho. Lembro que este tutorial é dedicado para dispositivos celulares compatíveis com a Série 60, podendo ser da Nokia ou não. No entanto, eu fiz o teste em um Nokia 3650 e não posso garantir que isso fucionará outro dispositivo.
Ainda oportunamente, explico ao programador que não sabe o que é um MIDlet, seu significado. Um MIDlet é uma aplicação Java, regulado pelo perfil MIDP da especificação J2ME e é composto de um arquivo Jar contendo ao menos uma classe. A classe principal de um MIDlet é uma classe derivada de javax.microedition.midlet.MIDlet. Essa classe especifica alguns métodos que devem ser sobreescritos para prover a funcionalidade esperada de uma aplicação do tipo MIDlet. Os principais métodos são: startApp(), pauseApp(), and destroyApp(). No entanto, nem todos precisam ser sobreescritos. Geralmente o arquivo JAR é acompanhado de um arquivo JAD - Java Application Descriptor. Este é um arquivo simples que contém poucas linhas de texto que descrevem o contéudo do arquivo JAR. O objetivo é que o dispositivo possa saber informações acerca do JAR antes dele ser baixando, poupando com isso, a escassa banda de rede geralmente disponível para esses dispositivos. Caso deseje sabar mais sobre os MIDlets, leia "MIDlet Life Cycle". Sabendo disso, pode-se iniciar o tutorial.