Olá, eu vi que nos outros cursos está se usando async await que eu entendi que substitui o uso do completion e do dispatchqueue, porque nesse curso que parece ser mais recente voltou a usar closure?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, eu vi que nos outros cursos está se usando async await que eu entendi que substitui o uso do completion e do dispatchqueue, porque nesse curso que parece ser mais recente voltou a usar closure?
Olá Gisele! Como vai?
Entendi sua dúvida sobre a escolha entre DispatchQueue e async/await. A decisão de usar um ou outro pode depender de vários fatores, incluindo a compatibilidade com versões anteriores do Swift e o design do curso em questão.
O async/await é uma maneira moderna e mais legível de lidar com operações assíncronas introduzida no Swift 5.5. Ele simplifica o código, tornando-o mais linear e fácil de entender, eliminando a necessidade de closures complexas e o uso explícito de DispatchQueue para gerenciar threads.
Por outro lado, o uso de DispatchQueue ainda é muito comum, especialmente em projetos que precisam ser compatíveis com versões mais antigas do Swift ou que seguem um padrão de design específico, como o uso de delegates e protocolos, que é o foco do curso que você está fazendo.
No contexto do curso, o uso de DispatchQueue.main.async é necessário para garantir que as atualizações de interface do usuário ocorram na thread principal, o que é uma prática comum em desenvolvimento iOS. Isso não impede o uso de async/await, mas aprender padrões de design, como o uso de delegates, é fundamental para entender a arquitetura de aplicativos iOS.
É sempre bom estar familiarizada com ambos os métodos, pois cada um tem suas vantagens e pode ser mais adequado dependendo do contexto do projeto em que você está trabalhando.
Espero ter ajudado!
Siga firme nos seus estudos e conte com o fórum sempre que precisar!
Abraços :)
Obrigada. Delegate não tem no SwiftUI, né?