Local Notifications — Swift 5.0

Cassia Barbosa
Apple Developer Academy | Mackenzie
3 min readJan 29, 2021

Esse tutorial é para você que está querendo deixar seu aplicativo mais profissional. Você vai aprender a configurar o envio de notificações para que o usuário possa manipular o app apenas por ações.

  1. O primeiro passo é abrir o Xcode e criar um novo projeto em branco mesmo, e nomeá-lo como desejar.
  2. Abra o storyboard e coloque os elementos necessários para a interface do seu aplicativo e resolva as constraints; no meu caso, o aplicativo deve mandar a notificação de acordo com os dados que o usuário coloca. Além disso, ele deve configurar se haverá som e badge (o famoso numerozinho em cima do ícone).

3. Abra o Delegate e coloque o seguinte código:

Essa função serve para que o usuário permita, logo na primeira vez que o app for aberto, que as notificações sejam mandadas.

4. Na classe da sua View Controller, faça o seguinte:

Na linha 7, nós estamos dizendo que essa view é seu próprio delegate.

5. No meu app, a notificação só será enviada quando um botão for clicado, para tanto, eu coloquei o botão de criar notificação, nomeei-o no código como BotaoDeNotificacao e puxei do storyboard para a view como uma action que recebe como parâmetro _ sender : Any. Como eu tenho outros elementos, como switch e text fields, puxei todos do storyboard também, mas como outlets, pois o conteúdo deles serão usados mais tarde.

  • A linha 3 é para fazer o controle da notificação;
  • Da linha 8 até a linha 17, serve para dizer o que deve fazer caso o usuário tenha permitido ou não que o app mande notificações.
  • As linhas 5, 6, 7 e 8 são as "actions", ou seja, o que vai aparecer dentro da notificação quando ela for puxada para baixo.

Note que na linha 12 eu chamei uma função chamada mandaNotificacao(), ela é responsável por caracterizar todo o escopo da notificação, ou seja, o que vai aparecer nela.

6. Agora é o momento em que chamo a minha função.

A variável conteudoDaNotiticacao é a notificação em si: tem o seu identificador único, título, corpo, trigger, som e bagde. Nesse ponto, a bagde é muito importante, pois se a notificação for enviada, a bagde tem que aparecer, mas quando o usuário clicar de novo para abrir o app, ela tem que sumir. Então, para configurar isso, eu devo ir até o delegate mais uma vez e fazer o seguinte:

func applicationDidBecomeActive(_ application: UIApplication) {
application.applicationIconBadgeNumber = 0
}

7. Observe que dentro da função mandaNotificacao() há uma variável chamada "trigger", ela serve para disparar a notificação e nela você deve colocar quando ou de quanto em quanto tempo ela ocorrerá.

8. A última função que eu devo implementar na classe onde estou construindo a minha view do app é essa didReceive, apresentada abaixo.

Essa função coordenará as actions da notificação. Uma vez que o usuário clique arraste para baixo, aparecerá as actions e cada action representa uma ação. Neste caso, se apertar em "Repetir" a notificação será mandada novamente de acordo com o tempo estipulado, já se apertar "Tela" uma outra tela aparecerá e você poderá voltar à tela inicial do app pelo botão "Done".

9. Essa outra tela a que me referi no passo anterior pode ser simplesmente escrita como mostra o código abaixo. Ela deverá ser uma UIViewController também, deverá ter o protocolo de UNUserNotificationCenterDelegate e ser o seu próprio delegate.

10. Aqui você pode ver o resultado final do app.

Como você pode ver, aqui temos como o aplicativo ficou. Esse foi um teste simples e rápido para você aprender a usar Local Notifications!

--

--