a versão 4.1 do NetBeans Mobility Pack.
Das diversas novidades introduzidas nesta versão, o Visual Mobile Designer é uma das principais, e será o foco deste artigo. Com ele, o trabalho de criação, codificação e testes do layout, bem como da lógica de navegação dos diversos componentes de uma interface de usuário na plataforma J2ME, torna-se muito mais fácil e rápido.
Este artigo apresentará como construir uma aplicação J2ME, onde grande parte do trabalho de codificação é automatizado utilizando-se o Visual Mobile Designer.
Para os leitores iniciantes em J2ME, é recomendável a leitura do artigo “Introdução ao J2ME” publicado na edição 01 da Web Mobile. Também é recomendável que o leitor possua alguma experiência com o NetBeans, caso queira instalar e manipular a aplicação.
O estudo de caso a ser seguido
O estudo de caso que criaremos para demonstrar a utilização do NetBeans como editor Visual de uma aplicação J2ME é uma aplicação para cotações de moedas. O usuário informará as duas moedas e a aplicação fará a conversão de uma para outra, buscando as cotações disponibilizadas no site Yahoo Finance, e apresentando o resultado ao usuário.
Todos os arquivos que compõe o projeto criado pelo NetBeans para esta aplicação estão disponíveis no portal Web Mobile (www.portalwebmobile.com.br).
Mesmo sendo uma aplicação Java bastante simples, sua divisão em módulos principais com responsabilidades bem definidas é sempre uma boa prática que facilita tanto o desenvolvimento e testes, quanto as posteriores modificações e eventualmente até a reutilização de algum módulo.
A seguir está a solução adotada para este exemplo, baseada em três módulos:
- módulo 1: interface para entrada de dados e apresentação dos resultados ao usuário;
- módulo 2: busca das informações no site Yahoo Finance;
- módulo 3: formatação dos resultados.
Definindo as classes da aplicação
Uma vez definidos os módulos principais, podemos agora começar a pensar nas classes que precisaremos para implementar nossa aplicação. Para este estudo de caso, a solução adotada foi a implementação de cada um dos módulos em uma classe. Sendo uma aplicação J2ME, precisaremos de uma MIDlet (ver Nota 1) que será responsável pelo gerenciamento do ciclo de vida da aplicação, bem como pela funcionalidade definida no módulo 1. Para o módulo 2 precisaremos de uma classe que faça a comunicação via HTTP com o servidor do Yahoo Finance e traga as cotações. E, finalmente, para o módulo 3, precisaremos de uma classe utilitária que faça a formatação dos dados recebidos do servidor de acordo com as necessidades da nossa aplicação, pois o que o Yahoo Finance nos fornece como resposta é uma string do tipo CSV (Comma Separeted Values). A maneira como os dados serão exibidos é definida mais adiante, quando elaborarmos o esboço das telas da aplicação.
Nota 1. MIDlets
A especificação J2ME define uma plataforma Java para dispositivos portáteis. Uma das famílias de dispositivos (a mais comum hoje em dia) que esta especificação endereça é denominada MID (Micro Information Device).
Os componentes definidos pela especificação J2ME para os dispositivos MID são os seguintes:
- uma máquina virtual Java bastante reduzida e otimizada, denominada KVM (Kilobyte Virtual Machine);
- uma configuração, denominada CLDC (Connected, Limited Device Configuration), que define os padrões desta plataforma, tais como: características de hardware do dispositivo, o modelo de segurança implementado na plataforma Java, as diferenças nas implementações da linguagem Java e da máquina virtual Java (em comparação com a especificação J2SE), e as bibliotecas de programação Java inclusas;
- um perfil, denominado MIDP (Micro Information Device Profile), que define as características de hardware, porém agora de forma mais específica para os dispositivos MID, e as bibliotecas de programação Java, também específicas para os dispositivos MID, como: interface de usuário, comunicação em rede, armazenamento persistente, e gerenciamento de aplicação.
Veja na Figura 1 o diagrama mostrando a arquitetura da plataforma J2ME para os dispositivos MID:
Figura 1. Arquitetura da plataforma J2ME para dispositivos MID.
MIDlet, portanto, é o nome que se utiliza para definir uma aplicação java feita para ser executada num dispositivo MID.
Uma MIDlet, como CCMidlet no nosso exemplo, estende a classe javax.microedition.midlet.MIDlet, que é responsável pelo gerenciamento do ciclo de vida da aplicação (inicialização, execução, encerramento, pausa), e se comunica com o software gerenciador de aplicativos nativo do dispositivo MID.
Existem várias boas práticas no desenvolvimento de aplicações J2ME que fazem uso de conexões HTTP e que implementaremos aqui ao desenvolvermos o módulo 2 do nosso estudo de caso. Por exemplo, mostrar algum indicador de progresso da comunicação ao usuário e fazer a conexão em uma thread separada da thread principal da aplicação, dando ao usuário a chance de cancelar a comunicação caso seja necessário. Estas e outras práticas, bem como maiores detalhes sobre comunicação HTTP com J2ME podem ser consultados no artigo “Conexão HTTP com J2ME” publicado na edição 02 da Web Mobile.
Veja na Figura 2 o diagrama de classes da aplicação. CCMidlet é a MIDlet da aplicação, e como veremos adiante, os métodos initialize e get_
Figura 2. Diagrama de classes da aplicação.
Antes ainda de iniciarmos qualquer codificação, convém criarmos um esboço da interface de usuário, com seus elementos e navegação entre as telas. Isso nos auxilia na identificação dos tipos de componentes que precisaremos para esta interface. Veja o esboço na Figura 3, representando as telas e a navegação entre as mesmas para a operação Converter. As setas com linhas cheias representam ações iniciadas pelo usuário, enquanto a seta com linha tracejada representa uma ação iniciada automaticamente pela aplicação. A Figura 4 mostra o diagrama de seqüência para esta mesma operação, explicado a seguir:
1) O usuário informa os códigos das moedas a serem convertidas, como USD e BRL;
...
Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.