:: 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:

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.

Instalando as Ferramentas de Programação

  1. Baixe e instale o Netbeans IDE versão 4.0 ou superior.
  2. Baixe e instale o NetBeans Mobility Pack 4.0 ou superior. Para fazer o download do Mobility Pack fica junto com o do NetBeans, então siga o processo de download do NetBeans e na penúltima tela opte pelo Mobility Pack. Para saber mais detalhes sobre Mobilty Pack e sua integração com os emuladores da Nokia, leia o artigo "Using UEI Emulators". O Mobility Pack deve ser instalado após a instalação da IDE do NetBeans.
  3. Baixe e instale a versão mais recente do Series 60 MIDP SDK para Symbian OS diretamente do site da Nokia.Este pacote contém um emulador genérico da plataforma Série 60. Em tese, você poderia usá-lo para desenvolver para qualquer dispositivo dessa mesma série. Eu recomendo, no entanto, que você use os emuladores do próximo pacote, pois são mais novos e específicos para cada série e alguns até mesmo para determinados modelos.
    Da época da elaboração deste guia, havia a versão 1.2 distribuída por meio do pacote nS60_jme_sdk_v1_2_1.zip. Veja o guia de instalação do SDK se precisar de mais informações.
    Nota: Certifique-se que está usando um SDK de mesma edição do Symbian que está em seu celular. Exemplo: o Nokia 3650 tem o Symbian 6.0 instalado e portanto o SDK apropriado para ele é o que contém a primeira edição. Já para aparelhos como o Nokia 6660 pegue a segunda edição, pois eles usam versões mais novas do Symbian. Na dúvida acesse o Forum Nokia e veja as especificações do seu dispositivo. Na figura abaixo há uma captura da página da Nokia onde mostra os detalhes sobre a especificação do Nokia 3650 e os SDKs sugeridos.
    Nokia device specification
  4. Baixe e instale o Nokia Developer's Suite for the Java(TM) 2 Platform, Micro Edition for Windows.Este pacote contém novos e específicos emuladores de plataforma, tanto para a Série 60, quanto para outras séries. Na hora de usar, dê preferência a estes emuladores, eles são melhores.
  5. Abra o Netbeans e clique no item Java Platform Manager do menu Tools.
    Abrindo o Java Platform Manager
  6. Uma tela se abrirá. Clique então no botão Add Platform.
    Tela de abertura do Java Platform Manager no Netbeans
  7. Em seguida navegue até o diretório onde instalou o NDS - Nokia Developer's Suite - e busque por algum dos emuladores que ele instalou. Na instalação do NDS 2.2 o diretório com os emuladores é o Device. Nele há três emuladores. Selecione o da Série 60 e em seguida clique Next.
    Adicionando uma nova plataforma J2ME no Netbeans
  8. Ele irá automaticamente detectar o emulador e instalá-lo.
    Após o Netbeans ter identificado o novo emulador e plataforma.
  9. Clique Finish e verá que ele instalou a nova plataforma.
    O Netbeans detecta e instala automaticamente a nova plataforma J2ME
    Pronto! Agora já podemos fazer programas para os celulares da Série 60!

Tutorial: O Primeiro MIDlet (olá!)

  1. No menu File, clique em New Project.
    Criando um novo projeto no Netbeans
  2. Na tela que se abrirá em seguida, clique na categoria Mobile e selecione um projeto tipo Mobile Application. Em seguida clique Next.
    Escolhendo o tipo de aplicação
  3. Na próxima tela informe o nome do projeto e o local onde ele será salvo e em seguida clique Next
    Observe que o caminho não poderá conter acentos ou espaços, sob pena de não funcionamento do emulador.
    Nomeando e escolhendo um diretório para o projeto.
  4. Selecione adequadamente o emulador da plataforma. Como este tutorial se dedica a Série 60 é ela que devemos escolher. Ao escolher o emulador, verifique a plataforma correta de acordo com o modelo do celular que irá desenvolver. Nos testes que fiz usei um Nokia 3650, portanto as mesmas configurações que escolhi podem não ser as melhores, ou mesmo, apropriados para o seu modelo. Verifique também, a versão do MIDP e CLDC que seu celular suporta.
    Escolhendo o emulador da plataforma, dispositivo, configuração J2ME e perfil.
  5. Após isso o assistente irá criar automaticamente um novo projeto com um Midlet de template já preenchido com um código do simples do tipo HelloWorld. Agora é só rodar o projeto. Para isso, pressione F6 ou clique no botão que é destacado na figura abaixo.
    Executando o novo projeto com o MIDlet do tipo "Hello World!"
  6. Se tudo estiver certo você verá o emulador em ação. Irá aparecer uma janela com o emulador. Normalmente a janela terá a aparência de um celular.
    Você poderá interagir com o celular virtual do emulador. Poderá clicar nos botões e usá-lo como um celular real. Obviamente não poderá discar para ninguém...
    No display do celular há o MIDlet que criou. Selecione-o para vê-lo em ação.
    Rodando o emulador com nosso projeto.       O MIDlet em ação.
  7. Teste agora o mesmo applet mudando apenas o dispositivo. Em seguida faça o teste mudando a plataforma. Repita o processo até ter noção dos variados tipos de dispositivos e comportamentos peculiares a cada um. Para isso, clique com o botão direito em cima do nome do projeto e escolha Properties. Na janela que aparecer você poderá mudar o emulador de plataforma e dispositivo. Após efetuar a mudança, dê Ok e execute novamente o projeto (F6).
    Alterando o emulador de plataforma do projeto.
  8. Abaixo a imagem de outros dispositivos para a mesma plataforma que foi usada anteriormente. Note que você pode usar o teclado do seu computador desktop ao invés do teclado do celular virtual.
    O mesmo MIDlet em ação noutro emulador de plataforma.

Documentos de Referência