A linguagem XML expressa a informação utilizando marcações que permitem a descrição dos dados contidos nelas. Isso faz com a que a XML seja muito utilizada na integração de ferramentas. Neste sentido, este artigo apresenta os benefícios da integração do XML com aplicativos Android demonstrando estes benefícios utilizando o framework Simple.
Em que situação o tema é útil:
O tema é útil para desmistificar a utilização de XML em aplicativos Android mostrando seus benefícios e como é possível manipular estes dados dentro da orientação a objetos.
Resumo DevMan:
Em se tratando de aplicações para smartphones, principalmente nos referindo ao Android, é bastante comum termos a preocupação com o desempenho do aplicativo durante a troca de informações por XML. Neste sentido, a discussão apresentada neste artigo demonstra na prática que a utilização de XML para integrar aplicativos Android pode ser sim uma solução viável do ponto de vista técnico, desmistificando um pouco o preconceito e porque não dizer o receio de utilizar uma integração que possa gerar problemas de desempenho.
É comum pensar no desenvolvimento de um aplicativo para smartphone que tenha como requisito se comunicar com outras soluções para trocar informações entre aplicações locais, exportar dados ou trafegá-los pela web.
Quando temos como requisito no desenvolvimento de software trocar informações entre soluções é importante pensarmos em viabilizar a implementação escolhendo formas que permitam trafegar dados independente da plataforma ao qual estamos desenvolvendo. Isto nos permite prover uma solução com baixo acoplamento oferecendo uma gama de vantagens ao desenvolvimento orientado a objetos. É neste cenário que o XML se torna um poderoso recurso viabilizando o baixo acoplamento entre soluções.
O fato de documentos XML serem usados não apenas para armazenar dados mas também, por exemplo, para manter informações de configuração de ambientes e semântica de um determinado domínio, implica na necessidade de defini-los de forma mais criteriosa. Entretanto, a linguagem XML se limita a definir o que podemos fazer, por exemplo: criar novas marcações, atributos, especificar relações de hierarquia. Não define como utilizar estes elementos em conjunto para termos um documento estruturado consistente com suas necessidades. Assim, além da preocupação com a sintaxe (regras de formação de um documento XML) é preciso estar atento à sua modelagem pois é justamente nesta etapa que decisões importantes deverão ser tomadas.
Atualmente existem inúmeras soluções de integração que foram desenvolvidas ao longo dos anos baseadas em XML, como Web Services por exemplo.
A utilização do XML para integração tem algumas vantagens entre outras opções, principalmente no que se refere à validação da estrutura e de seus dados, além de ser uma solução bastante madura agregando confiabilidade à solução que o utilize como recurso.
Em se tratando de aplicações para smartphones, principalmente nos referindo ao Android, é bastante comum termos a preocupação com o desempenho do aplicativo durante a troca de informações por XML, seja pela web ou documento serializado, por ser um formato mais volumoso, tornando o processo de leitura e criação mais oneroso computacionalmente comparado com JSON (ler Nota do DevMan 1), por exemplo.
JSON é um formato para intercâmbio de dados computacionais. Ele é um subconjunto da notação de objeto de JavaScript embora seu uso não necessite do JavaScript necessariamente. O JSON é tipicamente utilizado em ambientes onde o tamanho do fluxo de dados entre o cliente e o servidor é importante (daí seu uso por Google, Yahoo, etc., os quais servem milhões de usuários). É importante também saber que, embora às vezes colocados com padrões opostos para integração de dados, não é incomum ver JSON e XML sendo usados na mesma aplicação.
Esta preocupação é bastante válida, principalmente quando nos referimos a soluções para smartphones. Mesmo com o avanço do hardware destes dispositivos, não deixa de ser uma preocupação válida já que a economia de processamento gera diretamente economia de energia aumentando a vida útil do dispositivo.
Neste artigo iremos apresentar que podemos utilizar XML de uma forma bem otimizada em soluções para aplicativos Android e trabalhar com estes dados utilizando amplamente os conceitos de marshaling e unmarshaling dos dados trafegados em formato XML.
Estes conceitos serão demonstrados através do framework Simple, que não é um framework criado especificamente para smartphones com Android, porém foi desenvolvido em Java e possui características que se enquadram perfeitamente nos requisitos para desenvolvimento em smartphones.
Apresentando o framework Simple
O framework Simple foi criado utilizando a linguagem de programação Java com o intuito de prover um mecanismo otimizado para serializar dados armazenados em formato XML.
Como o nome do projeto já diz, o Simple é um framework bastante simples que não necessita de quaisquer configurações adicionais para funcionamento e baseia sua utilização fortemente no uso de anotações.
Diferentemente de outros frameworks, o Simple permite serializar dados em formato XML utilizando os conceitos de marshalling e unmarshaling, vide Nota do DevMan 2. A utilização destes conceitos traz uma série de benefícios ao desenvolvimento, pois é possível trabalhar com os dados tanto no fluxo de XML para objetos quanto de objetos para XML utilizando os mecanismos de serialização altamente otimizados disponibilizados framework.
Marshalling é o processo de transformação da representação em memória de um objeto para um formato de dados adequado para o armazenamento ou transmissão que é tipicamente usado quando os dados devem ser movidos entre diferentes partes de um software ou de um software para o outro. Marshalling simplifica a comunicação complexa, usando objetos personalizados para se comunicar em vez de tipos primitivos. O oposto é chamado unmarshalling (ou demarshalling, semelhante a desserialização) onde o principal objetivo é transformar os dados contidos em objeto em memória para um formato adequado.
Sua utilização se assemelha bastante com outro framework Java conhecido como JAXB, que também tem como objetivo efetuar marshalling e unmarshalling dos dados, porém não se adéqua às características necessárias para desenvolvimento de aplicativos para Android.
O mecanismo de persistência implementando pelo framework Simple pode lidar com estruturas de dados contidas em objetos complexos baseando sua implementação em chamadas recursivas para serializar os dados. Isso garante que o processo de desserialização destes dados pode recuperar todas as referências de um objeto serializado.
...