Mandando notificações pelo CloudKit

A forma mais fácil de mandar notificação que você vai ver na vida

Felipe Kaça Petersen
2 min readApr 21, 2020

Para esse tutorial, vou usar perguntas que você, leitor, pode ter durante esse processo. Se gostar desse modo de artigo, por favor, mande uma resposta aqui que tentarei trazer mais nesse formato!

Já tenho CloudKit no meu aplicativo, e agora?

Muito bom! Porque a proposta aqui não é ensinar como colocar cloudKit, e sim só as notificações.

Beleza! E como que eu coloco as notificações?

Primeira coisa a fazer é habilitar Push Notifications ao projeto. Conseguimos fazer isso dentro do AppDelegate, na função de didFinishLauchingWithOptions (é uma função que já tem no AppDelegate, só coloca isso lá, eu espero aqui)

OK! Tudo certo então? Posso continuar fazendo minhas coisas?

Calma lá! Ainda tem alguns passos, como definir como serão nossas notificações, e em qual momento elas devem ser mandadas. Pra isso, devemos colocar o delegate do UNUserNotificationCenter. Então, também dentro do didFinishLauchingWithOptions, colocamos:

Ótimo! Agora vamos criar uma extensão do AppDelegate para conformar com o UNUserNotificationCenterDelegate

Tá, já to pronto para receber notificação, mas cadê a notificação?

Vamos criar ela agora mesmo! Usando o CloudKit, temos que fazer um “subscription” para ver alterações que foram feitas no CloudKit. Ou seja, quando algo é alterado na nuvem (seguindo alguns parametros) podemos receber uma notificação dessas alterações.

Agora vamos por partes:

recordType: Qual o record do CloudKit que desejamos observar.

predicate: O “filtro” que queremos usar na hora de receber notificações, ou seja, não precisamos receber tudo que vem do cloudKit, mas sim só aquilo que vem do predicate. Se quisermos TODAS as alterações, podemos usar o format: “TRUEPREDICATE”. Para entender mais de predicates, aí vai um site f*da: https://nspredicate.xyz/#predicate-format-and-arguments

options: Diz respeito a ação executada no CloudKit para receber a notificação. No caso, .firesOnRecordCreation é disparado quando criamos um novo record no CloudKit. Outro caso famoso que podemos usar, é o .firesOnRecordUpdate, que é quando o record é alterado.

Agora, vamos criar o formato da nossa notificação. Criamos um NotificationInfo() para colocar o que desejamos na notificação, e depois passamos de volta para o subscription.

Por fim, registramos nossa subscription para o CloudKit, e estamos prontos! :)

Pronto! Agora você já tem tudo que é necessário para lidar com notifications no iOS!

Obrigado por ler!

Referências

https://www.hackingwithswift.com/read/33/8/delivering-notifications-with-cloudkit-push-messages-ckquerysubscription

--

--

Felipe Kaça Petersen

Desenvolvedor por 4 anos, sendo 2 dedicados a Flutter e 2 dedicados a iOS, com passagens também como UI/UX em projetos pontuais.