Sobes.tech
Junior — Middle

Tem experiência prática na utilização do Swift Concurrency em projetos?

sobes.tech IA

Resposta da IA

Sim, o Swift Concurrency permite escrever código assíncrono de forma mais legível e segura, usando async/await, tarefas (Task) e atores (Actors) para gerir o estado e o acesso concorrente.

Exemplo de uso de async/await para carregar dados:

func fetchUserData() async throws -> User {
    let url = URL(string: "https://api.example.com/user")!
    let (data, _) = try await URLSession.shared.data(from: url)
    let user = try JSONDecoder().decode(User.self, from: data)
    return user
}

Task {
    do {
        let user = try await fetchUserData()
        print("Nome do utilizador: \(user.name)")
    } catch {
        print("Erro ao carregar o utilizador: \(error)")
    }
}

Também se usam atores para proteger os dados contra condições de corrida durante o acesso paralelo.