Enquete vs.Push - Algum motivo para evitar notificações push?
-
21-12-2019 - |
Pergunta
Acabei de herdar um projeto de aplicativo Android como gerente de produto (técnico) que usa um Temporizador de 5 segundos para pesquisar um URL remoto para ver se algum trabalho iniciado pelo aplicativo foi concluído.A minha reacção inicial, claro, foi sugerir a substitua isso por um mecanismo push/notificações, de preferência Android integrado ao GCM, para que o trabalho seja removido do aplicativo no telefone e colocado no lado do servidor.
Surpreendentemente encontrei resistência da equipe de desenvolvimento.Um ex-gerente de produto (meu antecessor) parece ter solicitado explicitamente que a implementação funcionasse dessa forma.Infelizmente, ele não era grande em documentar as suas decisões, por isso agora tenho que tentar reconstituir quais as razões que poderiam ter levado a esta decisão para justificar uma mudança na implementação.Eu criei a seguinte lista de prós e contras:
Contra Push / Pesquisa Pro
- -
- -
- Trabalho do lado do servidor necessário para implementar notificações push
- -
- Não há maneira direta de saber se a notificação push foi entregue com sucesso
- Dimensionar a entrega de notificações push pode ser uma dor
Pesquisa Pró Push / Contra
- O trabalho é removido do dispositivo
- Menor uso de largura de banda
- Menor uso da bateria
- Aplicativo e dispositivo mais responsivos
- A carga do servidor é reduzida porque os dispositivos não pesquisam a cada x segundos, mesmo que nada tenha mudado (DDOS)
- -
- Push é mais rápido (mais responsivo) do que 5 segundos (temporizador atual)
- A prova de entrega de notificação push é trivial de implementar com uma pesquisa de uma URL remota (aqui faz sentido)
- O dimensionamento da entrega de notificações push é um problema resolvido com muitos projetos de código aberto e implementação trivial com fila de mensagens
- Existem outros motivos para evitar notificações push e usar pesquisas para este caso?
- Existem outros motivos para evitar pesquisas e usar notificações push para este caso de uso?
- Alguma outra coisa importante que esqueci?
Solução
Não há como saber se a notificação push foi entregue com sucesso
Claro que existe:faça com que o dispositivo atinja seu servidor após o recebimento da mensagem push.Talvez seja necessário fazer isso de qualquer maneira, se a carga útil for maior que 4K.
Dimensionar a entrega de notificações push pode ser uma dor
Funciona para bases de usuários bastante grandes (por exemplo, RememberTheMilk), e isso foi antes mesmo da solução de soquete persistente baseada em XMPP.
Existem outros motivos para evitar notificações push e usar pesquisas para este caso?
O GCM não tem garantia de nível de serviço.GCM é específico para Android;você pode considerar um wrapper, como o Amazon SNS, se estiver procurando por algo que lide com outros sistemas operacionais clientes.Soluções push envolvendo terceiros, como o Google, significam que a carga útil da sua mensagem push bruta ficará visível para os servidores desses terceiros;use criptografia adequada no nível do aplicativo se isso for uma preocupação (e deveria ser).
Existem outros motivos para evitar pesquisas e usar notificações push para este caso de uso?
Uma enquete de cinco segundos faz $BABY_DEITY
chorar.