Aula 190: Implementando Deep Linking em Swift
Deep linking é uma funcionalidade poderosa que permite aos usuários navegar diretamente para conteúdos específicos dentro do seu aplicativo por meio de uma URL. Isso pode melhorar significativamente a experiência e o engajamento do usuário. Nesta aula, vamos explorar como implementar deep linking em um aplicativo iOS usando Swift.
O que é Deep Linking?
Deep linking se refere à prática de usar um hyperlink que leva diretamente a uma página ou conteúdo específico dentro de um aplicativo móvel, em vez de apenas à página inicial do aplicativo. Existem geralmente dois tipos de deep links:
-
Deep Links Básicos: Esses links funcionam apenas se o aplicativo já estiver instalado. Se o aplicativo não estiver instalado, o link normalmente redireciona o usuário para a loja de aplicativos.
-
Deep Links Diferidos: Esses links podem direcionar os usuários a conteúdos específicos no seu aplicativo, mesmo que eles precisem primeiro instalar o aplicativo. Uma vez instalado, o link os levará diretamente ao conteúdo desejado.
Configurando Deep Linking em um Aplicativo iOS
Neste exemplo, implementaremos uma funcionalidade básica de deep linking em um simples aplicativo iOS. Vamos cobrir os passos necessários e fornecer alguns códigos de exemplo ao longo do caminho.
Passo 1: Configurar Seu Aplicativo
- Abra seu projeto no Xcode.
- Selecione seu projeto no Navegador de Projetos.
-
Vá até a aba Info e, na seção URL Types, clique no botão de mais (
+
) para adicionar um novo tipo de URL.- Identificador: Um identificador único para seu aplicativo (pode ser o identificador do bundle).
- Esquemas de URL: Insira um esquema (ex:
meuapp
).
Passo 2: Lidar com URLs Recebidas
O próximo passo é lidar com as URLs recebidas no seu aplicativo. Sobrescreva o método application(_:open:options:)
no seu AppDelegate
.
Aqui está um exemplo de como você pode implementar isso:
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
// Verifique se o esquema da URL corresponde ao esquema do seu app
guard url.scheme == "meuapp" else { return false }
// Extraia o caminho e quaisquer parâmetros de consulta
let pathComponents = url.pathComponents
// Lide com o deep link com base no caminho
if pathComponents.count > 1 {
let viewControllerIdentifier = pathComponents[1]
navegarParaViewController(identificador: viewControllerIdentifier)
}
return true
}
private func navegarParaViewController(identificador: String) {
// Supondo que você tenha uma forma de obter o view controller raíz
guard let rootViewController = window?.rootViewController else { return }
if identificador == "perfil" {
// Navegar para o ProfileViewController
let perfilVC = ProfileViewController() // Instancie seu VC
rootViewController.present(perfilVC, animated: true, completion: nil)
} else if identificador == "configuracoes" {
// Navegar para o SettingsViewController
let configuracoesVC = SettingsViewController() // Instancie seu VC
rootViewController.present(configuracoesVC, animated: true, completion: nil)
}
// Lide com outros identificadores conforme necessário.
}
}
Passo 3: Testando Deep Linking
Para testar a funcionalidade de deep link, você pode usar o Terminal ou o Safari no seu dispositivo ou simulador.
-
Abra o Terminal e use o comando
xcrun
para simular um deep link:xcrun simctl openurl booted meuapp://perfil
-
Substitua
perfil
por qualquer caminho válido que você tenha configurado na lógica de tratamento de links.
Alternativamente, você pode simplesmente inserir a URL no Safari do seu dispositivo:
meuapp://perfil
Conclusão
Deep linking é uma funcionalidade essencial que pode melhorar significativamente a experiência do usuário no seu aplicativo. Ao seguir os passos descritos nesta aula, você pode implementar deep linking básico em sua aplicação iOS usando Swift. Isso facilita para os usuários navegarem diretamente para conteúdos específicos, incentivando o engajamento e a retenção.
Sinta-se à vontade para expandir a funcionalidade com deep links diferidos à medida que você se sentir mais confortável com o básico. Bons códigos!