Por que eu devo ler este artigo:Push Notifications são a maneira mais rápida, simples e direta para comunicar algo a um usuário do seu aplicativo no iOS. As notificações podem vir na forma de mensagens, alertas e aumentar o badge (aquela área circular vermelha em destaque no ícone do aplicativo no celular). Ao mesmo tempo que é fácil, é um recurso relativamente limitado. Veremos ao longo do artigo que há um limite de tamanho da mensagem enviada e não há garantia de entrega; por exemplo, se o aparelho ficar desligado por muito tempo, o serviço de envio de notificações da Apple (APNs) só garante a entrega da última notificação. No exemplo prático, serão ilustradas maneiras de enviar uma simples mensagem e de abrir uma determinada tela a partir da mensagem.

O envio de Push Notifications já pode ser considerado, há tempos, uma prática consolidada no mundo mobile. Após quase 9 anos do lançamento do primeiro iPhone, é possível observar que muitos produtos conquistaram grande espaço e projeção no mercado através do envio de notificações. O livro “Hooked: How to build habit-forming products”, de Nir Eyal, aborda como as notificações são capazes de “disparar um gatilho” no cérebro humano, de maneira que, com o tempo, o usuário passe a checar o aplicativo por livre e espontânea vontade (ver BOX 1).

É fundamental que o leitor tenha em mente que as Push Notifications são consideradas pela Apple muito importantes para a experiência do usuário. É necessário fazer uso de notificações respeitando o guideline da Apple. Falaremos sobre algumas recomendações típicas e importantes posteriormente, como evitar o uso de botões destrutivos nas custom actions de uma notificação — o usuário pode tomar uma ação da qual ele irá se arrepender com muita facilidade.

A entrega das notificações é feita pela APNs — Apple Push Notification service. Uma notificação remota nunca é entregue de um provedor de aplicação para um dispositivo iOS diretamente. Ao invés disso, as notificações são enviadas para a Apple Push Notification service, que encaminha a mensagem para o dispositivo correto. Sendo assim, podemos determinar três atores importantes para o envio das notificações, que serão abordados em detalhes: o provedor de aplicação, as APNs e o aplicativo iOS instalado no dispositivo receptor.

No iOS 8, foram introduzidas as notificações interativas. São notificações que possibilitam aos usuários tomar ações diretamente da Central de Notificações, como aceitar um convite, excluir uma mensagem, curtir um conteúdo ou tomar qualquer outro tipo de ação.

É notável que Push Notifications são um tópico extenso do desenvolvimento iOS. Estando presente na plataforma desde o iOS 3, é uma funcionalidade que vem sendo melhorada há tempos e traz muitos detalhes para serem explorados e abordados. É o que faremos neste artigo e, para isso, foram disponibilizados dois projetos: um inicial (para edição conjunta com o artigo) e um final (funcionando como deveria ao fim do artigo).

BOX 1. Estratégias para desenvolver produtos que criam hábitos

Eventualmente, o leitor já deve ter pensado o quão importante são as Push Notifications enviadas por um aplicativo além de seu simples propósito de notificar o usuário de alguma coisa. Nir Eyal, em seu livro "Hooked: How to build habit-forming products" ("Como construir produtos que criam hábitos"), apresenta um framework cujo objetivo é fazer os usuários ficarem presos, ou mesmo viciados, em seu produto. E as Push Notifications desempenham um papel muito importante nesse framework, apresentado como "Hook Model".

Visão geral e arquitetura

Conforme comentado na introdução do artigo, Push Notifications têm a finalidade de enviar alertas, contadores de badges e mensagens para um usuário ou grupo de usuários de dispositivos iOS. Os alertas devem respeitar o tamanho máximo de 2kb e não possuem garantia de entrega. A APNs só guarda a última notificação antes de enviar a um dispositivo que ficou desligado por muito tempo. Para receber notificações, os usuários precisam autorizar (desde o iOS 8) que o aplicativo as enviem, e podem alterar as configurações a qualquer momento.

Dado esse cenário de incerteza, temos da documentação da Apple que "a entrega das notificações não é garantida, portanto não se deve utilizar de notificações para entregar informações críticas ou que não possam ser recuperadas de outra maneira".

As notificações não podem ser enviadas diretamente do provedor da aplicação para o dispositivo. Ao invés disso, elas são enviadas para a Apple Push Notification service, que se torna responsável por entregar a mensagem ao dispositivo. A APNs então se encarrega de entregar a mensagem, tratando alguns casos de erro, como dispositivo desligado ou sem conexão à internet ativa (ver Figura 1).

Quer ler esse conteúdo completo? Tenha acesso completo