Ligações e mensagens de forma nativa via app — Swift

Fabrício Guilhermo
Apple Developer Academy | Mackenzie
2 min readApr 16, 2020

É interessante sempre que formos fazer um aplicativo que possua algum número informativo, ter a opção de poder clicá-lo para fazer ligação ou enviar uma mensagem. Assim, o usuário não precisa sair do nosso app para fazer tal tarefa.

Para esse projeto eu desenvolvi uma interface simples, que contem apenas um text field e dois botões que aparecem conforme o número for sendo digitado, um para ligação e o outro para mensagem. Mas, vamos por partes!

Ligações

Essa é a parte mais simples, iremos verificar se existe um número no nosso campo de texto e iremos abrir o aplicativo de ligações com esse número.

Linhas 2 e 3: verifico se o campo de texto não está vazio e se é possível abrir o app de ligações com o número digitado, respectivamente.

Lembre-se: sempre muito importante tratar os possíveis erros do seu aplicativo para que o usuário entenda em qual estado ele se encontra atualmente. Eu, particularmente, gosto de fazer isso com UIAlerts, são simples de implementar e poderosos para passar a mensagem.

Mensagens

Agora, por essa parte ser um pouco mais robusta, eu decidi implementá-la em um arquivo diferente. Então vamos lá:

Aqui ficou um pouco maior, mas ainda se mantém simples.

Linha 1: importa a biblioteca necessária para usarmos o componente de mensagens.
Linha 6: cria uma classe que recebe um número como parâmetro (em String) e retorna a view de mensagem.
Linha 7: verifica se o dispositivo pode enviar mensagens.
Linha 8: instancia a view de mensagens.
Linha 9: passa o número para essa view.
Linha 10: aponta quem é o delegate desse componente. No caso esse delegate é implementado na extension abaixo (linha 19) e serve para dar dismiss na view assim que termrinarmos a ação.

Por fim, voltamos a nossa view onde implementaremos a ação de mandar mensagem e apresentamos nosso componente:

De forma simples e rápida é possível termos um resultado bem legal:

Deixo aqui o link do projeto implementado no meu GitHub. Qualquer dúvida ou dica é só entrar em contato!

--

--

Fabrício Guilhermo
Apple Developer Academy | Mackenzie

Cientista da computação, desenvolvedor iOS e apaixonado por novas tendências tecnológicas.