Artigo WebMobile 9 - Fazendo backup da agenda de contatos na Web
Artigo Originalmente publicado na WebMobile 9.
Clique aqui para ler este artigo em PDF
Fazendo backup da agenda de contatos na web
Aprenda a utilizar a API de PIM para gravar e recuperar os contatos de um aparelho celular em um servidor Web
Após a satisfação pela aquisição de um novo aparelho celular vem sempre uma tarefa chata: a migração das informações do aparelho antigo para o novo. A tecnologia GSM, através dos chips SIM, resolveu parcialmente esse problema, pois as informações ficam gravadas nesse cartão. Contudo, caso o SIM Card seja danificado ou perdido, o usuário terá perdido estas informações de vez, tendo que informá-las novamente.
Uma possível solução para esse problema seria realizar o backup dessas informações em um local diferente do aparelho e possibilitar a importação desse backup quando necessário. Mas como por esta solução em prática? A API de PIM (Personal Information Management), que faz parte da JSR 75, existe para nos auxiliar nesta tarefa.
Este artigo tem como objetivo demonstrar a um desenvolvedor como funciona esta API. Através do desenvolvimento de uma aplicação J2ME vamos mostrar o que deve ser feito para realizar o backup da agenda de contatos de um aparelho celular em um servidor web usando um Servlet. Ao final, o desenvolvedor não só terá os conhecimentos necessários para trabalhar com a PIM API como também saberá como fazer uma MIDlet se comunicar com um Servlet.
Para a melhor compreensão deste artigo, o desenvolvedor deve ter conhecimentos básicos de J2ME e de desenvolvimento de servlets.
Introdução à JSR75 e à PIM API
A JSR 75 também conhecida por PDA Optional Packages for the J2ME Platform, ou apenas PDAProfile, foi uma das primeiras JSRs para a plataforma J2ME a ter uma implementação de referência (Nota 1) disponibilizada pela IBM em maio de 2004.
Definida como um perfil J2ME composto por duas APIs opcionais – FileConnection e PIM – ela oferece ao desenvolvedor meios para manipular o sistema de arquivos do celular e de gerenciar suas informações pessoais. Sendo estas últimas compostas por Contatos, Eventos e Tarefas. Como já foi dito, estas duas APIs são opcionais, ou seja, um dispositivo que diz implementar a JSR75 pode ter apenas uma delas, sendo necessário informar qual está disponível.
Nota 1. O que é uma implementação de referência?
Quando se obtém um documento de especificação final para uma JSR, normalmente algum dos participantes do Expert Group – grupo de usuários/entidades que participaram da especificação da JSR – toma a frente para implementar pela primeira vez a API. Esta implementação é conhecida como implementação de referência, pois deverá seguir estritamente os requisitos definidos na documentação e servirá de modelo para futuras implementações além de já servir aos desenvolvedores como API para desenvolvimento.
Juntamente com o lançamento da implementação de referência, ou logo após, o mesmo grupo que a criou lança um TCK (Technology Compatibility Kit), que, como sugere o próprio nome, é uma suite de testes focados na JSR em questão, baseando-se tanto na especificação quanto na implementação de referência.
A PIM API pode ser vista como uma das APIs de melhor visibilidade junto aos usuários comuns de telefones celulares. Afinal, para estes o aparelho serve apenas para falar e armazenar os números de telefones mais utilizados, não importando se ele é capaz de rodar jogos com gráficos 3D, ou de executar aplicativos com funções avançadas – controle de estoque, planilha de custos, etc. Dessa forma, desenvolver aplicações que façam uso desta API significa desenvolver aplicações com grandes chances de serem utilizadas por usuários comuns.
Apesar de o maior atrativo ser a manipulação dos Contatos, não devemos esquecer que também nos é dada a chance de manipular os Eventos e as Tarefas do aparelho. Entenda que a diferença entre as duas categorias é mínima, pois Eventos são Tarefas que possuem algum tipo de repetição, ou não. Além disso, os primeiros passam a idéia de algo que vai acontecer, e pode se repetir, enquanto que os últimos representam objetivos a serem cumpridos.
Na documentação da API você descobrirá que para representar cada item de uma dessas categorias – Contatos, Eventos e Tarefas – foram utilizados padrões já existentes e bem conhecidos: vCard para Contatos e vCalendar para Eventos e Tarefas. Estes padrões são utilizados pela maioria dos gerenciadores de informações pessoais, tais como Microsoft Outlook, KDEPim & KDEOrganizer e Mozilla Firebird. Você poderá encontrar maiores informações sobre estes padrões no site do IMC – Internet Mail Consortium, na seção Personal Data Interchange (ver Links). Para uma visão geral da API, observe a Figura 1.
Figura 1. PIM API.
Objetivos da aplicação
Para demonstrar as principais funcionalidades fornecidas por essa API, vamos descrever como implementar uma aplicação de exemplo que deverá fazer o backup da agenda de contatos de um aparelho celular em um servidor web.
A plataforma a ser utilizada no aparelho celular é bastante óbvia no nosso caso, que é J2ME, mas qual tecnologia usaremos no servidor web? Para começar, vamos pensar em como será esse acesso ao servidor. Ele deve ser simples, rápido e não precisa ter uma interface gráfica, afinal a comunicação será feita apenas entre a aplicação J2ME e o servidor, não necessitando a intervenção de usuário.
Dessa forma, podemos escolher o modelo de Servlets, pois ele supre todas essas nossas necessidades, como poderemos ver ao longo do artigo.
Mantendo uma visão de alto nível podemos pensar na seguinte forma de interação entre usuário e sistema: o usuário iniciará a aplicação, que poderá mostrar uma splash screen para só depois chegar à tela principal, a qual exibirá a listagem dos contatos além de disponibilizar duas opções de comandos, exportar e importar.
Após o usuário selecionar uma das opções, a MIDlet entrará em contato com o Servlet informando qual operação deverá ser executada e em seguida receberá uma resposta – sucesso ou falha – que será exibida para o usuário.
Pensando em um pouco mais de detalhes, podemos fazer a seguinte pergunta: será que só devemos ter essas duas opções para os contatos, exportar e importar? E quanto a detalhar e editar um contato? Nesse caso, devemos nos lembrar que estas funções já são providas pelo aparelho celular, e mesmo que nós as implementássemos de uma forma melhor que as nativas, dificilmente o usuário as utilizaria, dado o costume de uso. Pensando assim, podemos deixar essas funcionalidades de fora – ao menos desta versão – já que não seriam de suma importância para a aplicação e sairia um pouco do escopo deste artigo, que é de apresentar a API.
Após a definição acima, temos também que definir como se dará a comunicação MIDlet/Servlet. E tomando como base o artigo " [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo