olá, fiz um aplicativo e to querendo coloca notificação nesse aplicativo, so que não queria usar o firebase, acabei achando um jeito mas não consigo eu mesmo manda essa notificação tem que espera o app ser aberto pra começa a manda notificação, alguem que sabe mexe em flutter e pode me ajudar, GitHub - techwithsam/flutter-push-notification-without-firebase: Flutter push notification without firebase with background services feature usei esse projeto mas tive que mexe pq o versão do flutter tava antiga mas consegui ajeita.
Sem o uso de um serviço externo, a única alternativa que te sobra é agendar notificações ou criar um serviço em plano de fundo… Porem acaba não sendo muito dinâmico, tem limitações por impactar a bateria do usuário.
Você pode usar flutter_local_notifications em conjunto com plugins específicos para Android e iOS. Por exemplo, no caso do iOS você usaria background_fetch.
Correto! Reforço que não é aconselhável esse tipo de gambiarra. Não será saudável para bateria do usuário final. OneSignal também é uma opção para realizar esse serviço. Mas por que você não quer usar o firebase? Firebase e Flutter se casam muito bem, ambos são bem perfomáticos juntos. Forte abraço.
todo sistema de notificação fica tentando ver cara, ou tu acha que o servidor sabe o celular que vai manda e qual ip ele ta?, o firebase mesmo que vc usar um celular com root que fica tentando a cada 10 segundos verificar ser tem uma notificação no tokem dele, por isso que quando vc faz o teste as vezes demora um pouco.
Amigo, push notifications via serviços já são construídos para ser o mais eficiente possível, você não vai chegar nem perto tendo que puxar toda uma working thread dedicada, só para ficar gerenciando e gerando mensagens in loco de tempos em tempos. O dispositivo do seu cliente nunca vai conseguir permanecer em estados de baixo consumo de energia desse jeito.
O serviço interno do sistema com toda certeza vai gastar umas 100x menos energia. Existem vários fatores que você não pode resolver localmente, seja por não ter um servidor trabalhando para você, ou por seu app não ter todo o nível de acesso necessário ao hardware para fazer isso da forma mais eficiente possível.
De resto, sim a infraestrutura de serviços como o Firebase mantem uma conexão persistente com o dispositivo, onde o dispositivo se registra no servidor como um cliente que deve ser notificado. A questão é que fica a cargo do servidor gastar toda a energia necessária para ficar acordando threads em user space e ficar verificar quando ha algo para ser enviar, não do dispositivo.
Isso possibilita níveis bem mais baixos de uso de energia do lado do dispositivo, já que tal mecanismo de pool de notificação pode rodar de forma segura em kernel mode, sendo infinitamente mais simples que diversos serviços acordando threads toda hora para ficar chamando pilhas e pilhas de Framework para fazer algo tão simples, não precisa gerar uma thread por serviço, sair do modo de baixo consumo, etc.
Eu também acho que não preciso dizer que ficar spamando o cliente não é uma boa ideia, muito menos erguer uma thread inteira a cada n segundos para não fazer nada na prática, se nenhuma mensagem no fim for gerada.