SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
25.11.2024

Aula 130: App Clips e SwiftUI

Os App Clips são uma maneira leve de fornecer uma parte do seu aplicativo para os usuários rapidamente, permitindo que eles experimentem recursos-chave sem precisar baixar o aplicativo inteiro. Esse recurso é particularmente útil em casos de uso onde o acesso imediato é benéfico, como pedir comida, alugar bicicletas ou realizar check-in em eventos. Nesta aula, exploraremos como implementar App Clips usando SwiftUI.

O que é um App Clip?

Um App Clip é uma pequena parte do seu aplicativo completo que oferece uma função específica. Ele pode ser iniciado a partir de um link ou um código QR e não requer instalação da App Store. Após os usuários concluírem suas tarefas, eles podem optar por baixar o aplicativo completo ou continuar usando o App Clip.

Criando um App Clip no Xcode

  1. Abra seu aplicativo iOS existente ou crie um novo no Xcode.
  2. Adicione um novo alvo:
    • Selecione seu projeto no Navegador de Projetos.
    • Clique no botão "+" para adicionar um novo alvo.
    • Escolha "App Clip" nas opções de modelo e nomeie-o.
  3. Configure o App Clip:
    • Atualize o Info.plist do seu alvo App Clip para incluir as configurações necessárias, como NSUserActivityTypes ou UIApplicationSceneManifest.

Construindo a UI com SwiftUI

Agora, vamos criar um App Clip simples usando SwiftUI. Imagine que estamos criando um App Clip para um serviço de entrega de comida que permite aos usuários pedir um sanduíche rapidamente.

Passo 1: Ponto de Entrada do App Clip

No arquivo principal do seu App Clip, você precisa configurar a vista principal. Veja como:

import SwiftUI

@main
struct SandwichAppClip: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

Passo 2: Criar a ContentView

Na ContentView, criaremos uma interface simples que permite aos usuários selecionar um sanduíche e fazer um pedido.

import SwiftUI

struct ContentView: View {
    @State private var selectedSandwich = ""
    let sandwiches = ["Vegetariano", "Frango", "Carne"]

    var body: some View {
        NavigationView {
            VStack {
                Text("Selecione um sanduíche")
                    .font(.largeTitle)
                    .padding()

                List(sandwiches, id: \.self) { sandwich in
                    Button(action: {
                        self.selectedSandwich = sandwich
                        placeOrder()
                    }) {
                        Text(sandwich)
                    }
                }

                if !selectedSandwich.isEmpty {
                    Text("Você pediu um sanduíche \(selectedSandwich).")
                        .padding()
                }

                Spacer()
            }
            .navigationTitle("Pedir Sanduíche")
        }
    }

    func placeOrder() {
        // Lógica para realizar o pedido
    }
}

Usando Intenções de App para Ações

Para aproveitar funcionalidades específicas dentro do seu App Clip, você pode usar Intenções de App. Aqui está um exemplo de como criar uma intenção de pedido simples.

import Intents

class OrderIntent: INIntent {
    @nonobjc class func intent() -> OrderIntent {
        return self.init()
    }
}

class OrderIntentHandler: NSObject, OrderIntentHandling {
    func handle(intent: OrderIntent, completion: @escaping (OrderIntentResponse) -> Void) {
        // Aqui você pode colocar a lógica do pedido
        completion(OrderIntentResponse.success(order: "Seu pedido foi realizado!"))
    }
}

Gerenciando Atividade do Usuário em App Clips

Os App Clips podem ser ativados via atividades do usuário, como links universais. Você deve implementar onContinueUserActivity na sua view SwiftUI para lidar com atividades recebidas:

struct ContentView: View {
    // Outras propriedades...

    var body: some View {
        // Elementos da interface...
    }

    init() {
        NotificationCenter.default.publisher(for: .userActivity)
            .receive(on: RunLoop.main)
            .compactMap { $0.userInfo }
            .sink { userInfo in
                // Manipule as informações do usuário e ative a atividade
            }
            .store(in: &cancellables)
    }
}

Testando Seu App Clip

Para testar seu App Clip:

  1. Execute o alvo do App Clip no Xcode.
  2. Use um código QR ou um link que inicie seu App Clip para ver como ele se comporta.
  3. Certifique-se de que a funcionalidade de pedido e a interface do usuário funcionem como esperado.

Conclusão

Os App Clips oferecem uma maneira fantástica de aumentar o envolvimento do usuário ao oferecer acesso leve a funções críticas dentro do seu aplicativo. Utilizar SwiftUI para criar a interface do usuário proporciona uma experiência fluida e rápida implantação. Ao seguir os passos descritos nesta aula, você pode criar um App Clip adaptado ao seu caso de uso específico. Boa codificação!

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!