Clique aqui para ler todos os artigos desta edição

Desenvolvimento em Java com as plataformas Nokia

 

A Nokia é a líder mundial no mercado de telefones celulares. Dentre as opções de modelos disponibilizadas pela empresa, a grande maioria permite a instalação de aplicativos escritos por desenvolvedores em diversas tecnologias, como: C++, Java, Flash Lite, Python, entre outras.

Neste artigo, serão apresentadas as opções de desenvolvimento utilizando a tecnologia Java MicroEdition (JME), que está presente em diversos tipos e séries de modelos, pelo fato de esta ser a tecnologia mais utilizada mundialmente para desenvolvimento de aplicativos móveis. A Nokia contribui regularmente para o desenvolvimento do JME, sendo líder em diversas especificações do Java Community Process (http://www.jcp.org), como: 234 (Advanced Multimedia Supplements API), 256 (Mobile Sensor API), 180 (SIP API para J2ME), 184 (Mobile 3D Graphics API), 179 (Location Based Services), entre outras.

 Você conhecerá as ferramentas de desenvolvimento, os SDKs (Software Devleopment Kits), emuladores e utilitários. Serão também apresentadas aplicações de exemplo para que você entenda a utilização da tecnologia para o desenvolvimento de aplicações reais.

O sucesso da plataforma Nokia

Desde o início da implantação do conceito de plataformas, que veremos mais adiante em detalhes, a Nokia já lançou no mercado mundial mais de 140 dispositivos compatíveis com algumas das plataformas de desenvolvimento oferecidas. Até junho de 2005, haviam sido vendidos mais de 350 milhões destes modelos, no mercado mundial.

Para o desenvolvedor, isto significa duas coisas: um amplo mercado-alvo para o consumo de suas aplicações, e a possibilidade de utilizar uma tecnologia aberta, padronizada e de fácil utilização, como Java MicroEdition, para reduzir custos e tempo de desenvolvimento. Além do mais, o fato de a tecnologia ser multiplaforma permite a você escrever aplicativos compatíveis com centenas de modelos, inclusive de outros fabricantes, o que reduz a necessidade de porte das aplicações, permitindo um time-to-market mais eficiente.

O sucesso da plataforma Java

Os números globais da tecnologia Java MicroEdition são o atestado do sucesso da mesma no mundo das aplicações móveis.

São mais de 1 bilhão de dispositivos habilitados com alguma versão da tecnologia JME vendidos mundialmente até o mês de dezembro de 2005. Destes, 613 milhões foram vendidos apenas no ano de 2005. Portanto, podemos projetar um crescimento ainda maior do mercado de dispositivos Java para 2006 e para os anos seguintes.

A Figura 1 apresenta mais alguns números interessantes sobre essa plataforma.

 

Figura 1. Dados da adoção da tecnologia JME no mundo.

Tais estatísticas mostram um ecossistema ativo, em crescimento, e com oportunidades inigualáveis para desenvolvedores de aplicativos móveis.

Se focalizarmos apenas a plataforma Nokia, temos um faturamento estimado em 340 milhões de euros com venda de aplicativos JME para dispositivos da companhia. Nas regiões da Europa e Ásia, mais da metade do faturamento das empresas que vendem aplicativos vem do download de aplicações em dispositivos fabricados pela empresa.

Em suma, a mensagem que pode ser passada para o desenvolvedor é de que vale a pena investir no desenvolvimento móvel com Java, pois se trata de uma tecnologia amplamente disseminada, popular, segura e de fácil utilização. O mercado-alvo é gigantesco, e as oportunidades fornecidas já são muitas e estão em crescimento. Nos tópicos seguintes veremos como você poderá desenvolver aplicativos para as dezenas de dispositivos Nokia habilitados com alguma versão de JME, para que você possa utilizar o seu conhecimento com o objetivo de gerar negócios com a plataforma líder mundial em desenvolvimento para dispositivos móveis.

Plataformas Nokia

Um conceito técnico muito importante a ser aprendido quando se começa a desenvolver aplicações móveis para dispositivos Nokia é o conceito de plataforma.

A tecnologia JME foi criada pela Sun para trazer a facilidade de uso e principalmente a portabilidade do Java para o mundo dos dispositivos móveis. É o que se chama de premissa “Write Once, Run Anywhere”. Entretanto, nós, os programadores do mundo real, sabemos que por várias razões isto nem sempre acontece.

Problemas de portabilidade ocorrem entre aplicações Java rodando em Windows e Linux, e alguns ajustes sempre são necessários em ordem para fazer uma aplicação funcionar com sucesso em ambos os sistemas operacionais. Ainda assim, é óbvio que se trata de um grande avanço em relação às tecnologias anteriores, nas quais seria necessário reescrever uma grande parte ou mesmo a totalidade do código. Podemos estimar que cerca de 95% do código pode ser mantido inalterado, dependendo da aplicação. Isso pode ser considerado um resultado fantástico.

No mundo móvel, infelizmente as notícias não são tão boas. As especificações básicas e de máquina virtual (configurações, das quais a mais popular é a CLDC) são implementadas de maneira bastante parecida, ou seja, não há diferença entre usar um Thread, uma String ou a class Math (todas membros da CLDC) em dispositivos Nokia ou de outros fabricantes: o comportamento será praticamente o mesmo.

Entretanto, quando chegamos às especificações verticais (profiles, dos quais os mais populares são MIDP 1.0 e 2.0) e especialmente às APIs opcionais, como Mobile Media API, Mobile 3D Graphics API, FileConnection API, entre outras, as coisas ficam mais complicadas. São dois os fatores que contribuem para isto: as especificações são bastante abstratas, deixando detalhes de implementação a cargo dos fabricantes dos aparelhos; algumas APIs possuem vários componentes opcionais, o que causa diferentes comportamentos em tempo de execução, apesar de o código compilado ser o mesmo.

Como exemplo do primeiro fator, podem citar o exemplo da Mobile 3D Graphics API. Como os detalhes da implementação são delegados aos fabricantes, temos comportamentos distintos quando executamos uma aplicação JME em um dispositivo Nokia S60, na qual a implementação é feita sobre a Open GL ES (versão especial para dispositivos móveis da popular API de programação gráfica Open GL), e em um dispositivo de outro fabricante, o qual pode disponibilizar a mesma API implementada sobre um framework nativo.

Já o segundo fator pode ser exemplificado pela Mobile Media API. Esta disponibiliza vários componentes opcionais, como acesso à câmera fotográfica do aparelho, ou o suporte a determinados formatos de áudio. Uma aplicação que faça uso destas funcionalidades terá que consultar várias propriedades de sistema e fazer testes em tempo de execução para determinar o que fazer a seguir.

Este misto de comportamentos distintos de implementação e existência ou não de componentes opcionais de uma determinada API é chamado de fragmentação. Justamente para combater, ou ao menos minimizar a fragmentação das APIs, a Nokia criou o conceito de plataforma.

Uma plataforma é um conjunto de dispositivos que compartilham um mesmo grupo de características, tais como: sistema operacional, tamanhos de tela, métodos de entrada de dados, formato do aparelho, e por compartilharem essas características, têm implementações e comportamentos semelhantes das APIs JME. A principal conseqüência disso é que se faz necessário apenas um conjunto de ferramentas (composto de bibliotecas, documentação e um emulador) para todos os dispositivos pertencentes a uma determinada plataforma. Do contrário, seria necessário praticamente um toolkit para cada modelo de dispositivo, o que seria impraticável para o desenvolvimento rápido e em grande escala de aplicações móveis.

A Figura 2 mostra as plataformas de desenvolvimento Nokia.

 

Figura 2. Plataformas de desenvolvimento Nokia.

Agora vamos ver em detalhes as características de cada uma na Tabela 1.

 

Tabela 1. Características das plataformas de desenvolvimento Nokia.

Plataforma

Descrição

...
Quer ler esse conteúdo completo? Tenha acesso completo