Concorrência em Swift (iOS/macOS)
Concorrência em Swift (iOS/macOS)
Resumo:
O livro "Concorrência em Swift (iOS/macOS)" é um guia abrangente sobre um dos aspectos mais complexos, porém críticos, do desenvolvimento para Apple. O autor, Alexei Zakharov, desenvolvedor iOS sênior com 10 anos de experiência, conduz o leitor desde conceitos básicos até padrões profissionais de programação paralela.
Sobre o que é este livro?
O livro aborda todas as ferramentas modernas de concorrência em Swift:
- Swift Concurrency (async/await): imersão completa no novo modelo de assincronia, incluindo concorrência estruturada, Task Groups e Continuations.
- Actors: proteção do estado compartilhado contra data races por meio do isolamento de dados.
- Grand Central Dispatch (GCD): trabalho com filas, tarefas síncronas/assíncronas e Dispatch Groups.
- OperationQueue: gerenciamento de dependências, prioridades e cancelamento de operações.
- Segurança de threads: práticas para evitar deadlock, livelock e race conditions.
- Testes: criação de testes confiáveis para código concorrente usando XCTestExpectation e Actors.
Para quem é este livro?
- Desenvolvedores iOS/macOS que desejam migrar de abordagens legadas (callback, delegate) para o moderno async/await.
- Profissionais Júnior e Pleno que buscam aprofundar seu entendimento sobre multitarefa.
- Líderes técnicos e arquitetos que projetam aplicações de alta demanda com UI fluida.
O que o leitor aprenderá?
Após estudar o livro, você será capaz de:
- Escrever código assíncrono sem callbacks e retain cycles.
- Gerenciar tarefas em segundo plano de forma eficiente, sem bloquear a thread principal.
- Projetar modelos de dados thread-safe usando Actors.
- Otimizar o desempenho de aplicações utilizando operações paralelas.
- Depurar e perfilar código concorrente através do Instruments.
O livro contém dezenas de exemplos reais para UIKit e SwiftUI, além de análises de erros comuns. Ideal tanto para estudo autodidata quanto para consulta de mesa.
Importante: o livro é voltado para Swift 5.9+ e Xcode 15. Pressupõe-se familiaridade básica com a linguagem Swift.