Artigo no estilo: Curso

De que se trata o artigo:

Este artigo apresenta como criar aplicativos para o Android OS da Google, concentrando-se principalmente em demonstrar o compartilhamento de funcionalidades entre aplicações e o modo como os dados são armazenados.


Em que situação o tema é útil:

O Android é um sistema operacional móvel que vem ganhando adeptos no mundo inteiro. O tema é útil para o profissional que deseja aprender uma tecnologia nova que tem grandes perspectivas de mercado.

Resumo DevMan:

Neste segundo artigo sobre o Android abordaremos como as funcionalidades podem ser compartilhadas entre aplicativos usando as classes Intent e IntentFilter. Além disso, veremos como persistir e manipular dados com o SQLite.

O Android é um sistema operacional móvel baseado no kernel do Linux que vem chamando a atenção da comunidade de TI por se tratar de uma plataforma que preza pela liberdade no desenvolvimento de aplicações. Com ela, os desenvolvedores têm fácil acesso aos recursos de hardware que o dispositivo oferece, conseguem usufruir dos mesmos frameworks utilizados nas aplicações principais do Android, além de escreverem softwares utilizando a popular linguagem de programação Java.

Com base neste contexto, na primeira parte desta série foram apresentados conceitos básicos para o desenvolvimento de aplicações Android, enfatizando principalmente a criação de Interfaces Gráficas e a comunicação de dados entre activities.

Neste artigo analisaremos o que fazer para usufruir de funcionalidades de aplicativos externos no nosso próprio sistema, através das classes Intent e IntentFilter. Esse recurso é viável graças à inovadora arquitetura do Android, que permite que os sistemas instalados no dispositivo se comuniquem com muita facilidade entre si.

Também será abordado o SQLite, uma tecnologia usada para persistir dados que funciona como um mini SGBD (ler Nota DevMan 1). Trata-se de uma ferramenta open source bastante utilizada no desenvolvimento de software, por se tratar de uma tecnologia leve e segura. O SQLite se adequou perfeitamente à estrutura do Android, atendendo muito bem às necessidades de armazenamento de dados que surgem no decorrer da criação de aplicações.

Nota DevMan 1. SQL Lite

O SQLite se trata de uma poderosa biblioteca de banco de dados baseado em SQL (Structured Query Language) que atua como um “mini-SGBD”, capaz de controlar diversos bancos de dados que podem conter diversas tabelas. O desenvolvedor pode criar o banco de dados e as tabelas, assim como manipular seus dados através dos comandos DDL (Data Definition Language) e DML (Data Manipulation Language) do SQL padrão. Isso traz um ganho considerável de produtividade, pois o desenvolvedor agora pode apenas focar nas regras de negócio, tendo em vista que os serviços para persistência de dados são fornecidos pelo SQLite. Entretanto, o SQLite é muitas vezes utilizado para armazenar dados simples, como conteúdo de campos, configurações do aplicativo e pequenas quantidades de dados, o que não é a situação ideal.

Como se comunicar com outros aplicativos

Os prazos apertados para a construção de softwares é sem sombra de dúvida um problema partilhado pela maioria das empresas de tecnologia no Brasil e no mundo. Obviamente qualquer tecnologia que incentive o reuso e a colaboração será muito bem aceita pelo universo das fábricas de software devido ao tempo que pode ser economizado na etapa de desenvolvimento e análise do sistema.

Foi pensando nesse cenário que a arquitetura do Android foi desenhada, permitindo que as aplicações se comuniquem entre si, mesmo pertencendo a criadores diferentes. Para isso, basta que o autor da aplicação disponibilize “filtros” que permitam o acesso a recursos do seu próprio sistema por aplicações de terceiros.

Mas antes de nos aprofundarmos nessa questão, vamos analisar a forma com a qual os aplicativos instalados se comportam no Android. Superficialmente temos a impressão de que os aplicativos instalados não possuem qualquer ligação entre si, porém não é isso o que realmente ocorre. Quando um aplicativo é instalado em um dispositivo Android, ele se integra automaticamente aos outros sistemas que ali estavam, como se todos se transformassem em um só.

As vantagens geradas por esse modelo são inúmeras. Para compreender este conceito, imagine uma situação em que você precise de um leitor de código de barras integrado a sua aplicação. Felizmente já existe um sistema que tem este tipo de funcionalidade, porém seria um incomodo para o usuário sair da aplicação, abrir a outra que possui este recurso, ler o código de barras, anotar em um papel e em seguida entrar com os dados no seu aplicativo novamente.

No Android é possível fazer a integração entre os dois sistemas de forma simples e transparente para o usuário. Para isso, basta que a aplicação do terceiro disponibilize um filtro (IntentFilter) para que os outros sistemas possam fazer uso dele.

Conforme visto no primeiro artigo, as IntentFilters são registradas geralmente no arquivo de configuração da aplicação, o AndroidManifest.xml, e servem para interceptar ações que são disparadas pelas Intents.

Quando disparamos uma intent, é como se enviássemos uma mensagem para o sistema operacional solicitando que alguma ação aconteça. Essa solicitação percorrerá todos os aplicativos instalados procurando por uma IntentFilter específica, e caso ela seja encontrada, a ação desejada será executada.

Essa ação geralmente implica na exibição de alguma Activity ou o início de algum serviço. No decorrer do artigo esse tópico será mais bem explicado. Portanto, o exemplo exposto acima se comportaria da seguinte maneira: quando existir a necessidade de ler um código de barras, uma Intent da sua aplicação será disparada solicitando um leitor de código de barras. A mensagem disparada pela Intent da sua aplicação percorrerá as outras aplicações instaladas até encontrar a IntentFilter do aplicativo de código de barras, que então será executado. Após a captura do código de barras, uma String que representa o código lido será enviada de volta para a aplicação de origem, que poderá processar essa informação como bem desejar.

Filtrando Solicitações – IntentFilter

Antes de analisarmos um exemplo prático, vamos detalhar um pouco mais o que é a estrutura IntentFilter. Já sabemos que a classe IntentFilter tem o objetivo de filtrar requisições provocadas pelas Intents e geralmente são registradas no ...

Quer ler esse conteúdo completo? Tenha acesso completo