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

  1. -
  2. -
  3. Trabalho do lado do servidor necessário para implementar notificações push
  4. -
  5. Não há maneira direta de saber se a notificação push foi entregue com sucesso
  6. Dimensionar a entrega de notificações push pode ser uma dor

Pesquisa Pró Push / Contra

  1. O trabalho é removido do dispositivo
    • Menor uso de largura de banda
    • Menor uso da bateria
    • Aplicativo e dispositivo mais responsivos
  2. A carga do servidor é reduzida porque os dispositivos não pesquisam a cada x segundos, mesmo que nada tenha mudado (DDOS)
  3. -
  4. Push é mais rápido (mais responsivo) do que 5 segundos (temporizador atual)
  5. A prova de entrega de notificação push é trivial de implementar com uma pesquisa de uma URL remota (aqui faz sentido)
  6. 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?
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top