Por que eu devo ler este artigo:Este artigo é útil por encapsular todos os conceitos mais importantes sobre a implementação de Push Notifications em Android através da API do Parse.com, uma das mais usadas para tal finalidade.

Ao final deste você estará apto a decidir quais os melhores fluxos de implementação de notificações off-line, aquelas que são exibidas mesmo quando as aplicações estão fechadas no dispositivo; aprenderá a lidar com o sistema de gerenciamento de mensageria web do framework, a como disparar eventos e fazê-los ser enxergados por qualquer dispositivo, bem como os passos para facilmente adaptar suas soluções para outros sistemas operacionais.

Com isso, você se verá livre de todo o aparato de configurações e códigos extensos que são cobradas por outras soluções, como a padrão do Android: o Google Cloud Messaging.

Um push notification é uma mensagem ou alerta entregue por um servidor centralizado a um dispositivo final. Em outras palavras, a notificação push, também chamada de notificação de envio do servidor, é a entrega de informações de uma aplicação de software para um dispositivo de computação sem um pedido específico do cliente.

Ao contrário das famosas pull notifications, em que o cliente deve solicitar informações de um servidor, as notificações push são originárias do próprio servidor.

Normalmente, o usuário final deve optar por receber os alertas, opção essa que normalmente ocorre durante o processo de instalação do serviço. Além disso, também são fornecidas maneiras de gerenciar tais alertas aos usuários finais caso eles mudem de ideia mais tarde.

Uma das grandes vantagens das notificações push na computação móvel (já que ela também existe para as demais plataformas: iOS, BlackBerry, Windows Phone, etc.) é que não é necessário ter nenhum aplicativo em específico aberto no dispositivo para que as mensagens de notificação sejam recebidas.

Isso permite que um smartphone, por exemplo, possa receber alertas de texto em mídias sociais mesmo quando a tela do dispositivo estiver bloqueada e as mesmas aplicações de mídia fechadas.

É esse tipo de recurso que permite que você possa receber notificações na ActionBar do seu dispositivo Android sobre as últimas publicações no Twitter ou sobre os últimos likes na sua foto do Facebook.

Quando se inicia o desenvolvimento de uma aplicação que deva atendar a todos os públicos móveis, pensar em estratégias de push notification para todos pode ser um desafio. Para o universo iOS, os desenvolvedores devem aprender a lidar com a API da Apple Push Notification Service; no Android usamos o Google Cloud Messaging, e assim por diante.

Uma outra alternativa para resolver isso é utilizar o backend dos seus aplicativos móveis como um serviço, o que chamamos de mobile BaaS (mobile Backend As A Service): trata-se de uma arquitetura de computação que conecta aplicações móveis a serviços de cloud computing no servidor, possibilitando acesso assíncrono a todos os recursos lá hospedados (banco, servidores, armazenamento, etc.).

O Google Cloud Messaging, ou GCM, é um serviço disponibilizado gratuitamente pela empresa que possibilita que os servidores enviem mensagens assíncronas para aplicações Android, Chrome ou extensões do browser.

Ele conta com todo um aparato arquitetural nos servidores do Google para limitar a quantidade e tamanho das mensagens para cada aplicação, dessa forma garante-se que o serviço seja usado somente para notificações simples, ações simples.

Por exemplo, quando você acessa a loja do Google Play via website no browser, existe uma opção de solicitar a instalação de um aplicativo lá, selecionando em qual dispositivo deseja o fazer. Assim que você finaliza a ação, o Google automaticamente instala o mesmo app no seu dispositivo (se existir conexão apropriada).

O que acontece nesse processo é que uma notificação push foi gerada e enviada diretamente para o aplicativo Play do seu dispositivo, tudo através do GCM. Essa funcionalidade é suportada em todas as versões do Android SDK superiores à 2.2 (Froyo).

Desde o seu lançamento, em 2012, o GCM conquistou frameworks independentes que conseguem facilitar o seu processo de instalação e uso. Como exemplo mais usado, temos o Parse.com. Trata-se de um serviço online que fornece recursos backend para aplicações diversas, que façam uso de tecnologias como iOS, Android, OS X, JavaScript, dentre outras. Sua interface de gerenciamento é bem intuitiva e, logo que você criar uma conta já será redirecionado para o processo de criação da sua primeira aplicação Parse.

Neste artigo trataremos de explorar as principais funcionalidades do Parse.com em integração direta com aplicações Android. Veremos como customizar o sistema padrão de push notifications do Android, lidar com recebimento de mensagens em formato JSON, além de entender como funciona toda a interface do serviço para criar os nossos testes de envio de mensagens.

Construiremos uma aplicação simples de login que solicita ao usuário informar um email que, por sua vez, será usado para personalizar as mensagens individualmente. Uma vez logado, o usuário será redirecionado para a tela de home screen onde verá todas as mensagens exibidas em uma list view.

Configuração do ambiente

O primeiro passo para usar o Parse.com é criar uma aplicação, tal como fazemos quando queremos integrar APIs de redes sociais (Facebook API, Twitter API, etc.) em nossos projetos. Essa aplicação vai fornecer as URLs dos serviços que o nosso aplicativo Android irá consumir.

Para isso, acesse o endereço disponível na seção Links, crie uma conta (ou logue com alguma mídia: Facebook, Google, etc.) e você será redirecionado para a tela de criação da sua primeira aplicação Parse. Dê o nome “login-devmedia” e aguarde até que ele te leve para a página demonstrada na Figura 1.

Figura 1. Tela de detalhes da aplicação Parse.com.

Essa tela traz duas informações que precisaremos para o nosso exemplo:

1. Application ID: chave que especifica exclusivamente o seu aplicativo. Ela é emparelhada com outra chave criptográfica para fornecer aos seus clientes acesso aos dados do seu aplicativo;

2. Client Key: esta chave deve ser usada em clientes consumidores, como o iOS ou Android SDKs. É ela quem gerencia o objeto de níveis de permissão na aplicação.

Guarde os valores dessas chaves. Caso você não os tenha salvo e saia dessa tela, basta acessar o menu “Settings > Keys” dentro da tela de gerenciamento do Parse.com e você as terá exibidas novamente.

O próximo passo é baixar a biblioteca do SDK para o seu sistema operacional. Para isso, acesse a URL de download disponível na seção Links e baixe a versão mais recente do Android SDK (1.9.3).

O download trará um arquivo zip com vários arquivos e pastas internos (relatórios de erros, versões corrigidas, javadocs, etc.), mas só precisaremos especificamente do arquivo “Parse-1.9.3.jar”, portanto, extraia-o num diretório de sua preferência.

Para o desenvolvimento do exemplo, também precisaremos do Android Studio IDE e do Android SDK, ambos em suas versões mais recentes. O leitor pode optar por usar o emulador padrão do Android Studio ou usar o da Genymotion, que é bem mais rápido.

Aplicação de Login

Para estabelecer a comunicação entre a aplicação Android e a do Parse, faremos uso de JSON. A estrutura que usaremos para o exemplo pode ser visualizada na Listagem 1, e ela varia de aplicação para aplicação dependendo dos requisitos.

Trata-se de um “dado” que conterá apenas um ...

Quer ler esse conteúdo completo? Tenha acesso completo