Aprenda Swift
Esta lista contém diversos links com conteúdos para aprender a desenvolver usando a linguagem Swift. Pela escassez de conteúdo em Português, incluímos conteúdos em inglês na lista. Os conteúdos totalmente em PT-BR estão destacados com a uma tag [??].
Caso você tenha interesse em contribuir, fique à vontade para fazer um fork e submeter um PR. Quanto mais conteúdo, melhor ?.
Como contribuir?
Quer saber como contribuir para este projeto? Verifique nosso arquivo CONTRIBUTING.md
Sumário
- Aprenda Swift
- Sumário
- Conteúdos
- Tutoriais
- Linguagem
- Arquiteturas
- Padrões de Projeto
- Interface
- Geral
- SwiftUI
- Storyboard
- ViewCode
- UIKit
- Animações
- Networking
- Gerenciamento de Dependências
- Persistência
- Reatividade
- Segurança
- Acessibilidade
- Testes
- Backend
- Ferramentas e Recursos
- Utilidades
- Deploy e CI/CD
- Blogs e Plataformas
- Livros
- Canais no Youtube
- Playlists no Youtube
- Podcasts
- Playgrounds
- Cursos gratuitos
- Cursos pagos
- Roadmaps
- Comunidades
- Canais no Telegram
- Instagram
- Twitter
Conteúdos
Esta seção contém links sobre conteúdos específicos relacionados à linguagem Swift e ao ecossistema de desenvolvimento da Apple.
Tutoriais
- Como desenvolver seu próprio gerador de senha no iOS - Victor Catão [??]
- iOS App Dev Tutorials - Apple
- SwifUI Tutorial - Apple
- ? Xcode: Como criar um aplicativo iOS do zero (para iniciantes) - Tiago Aguiar [??]
- ? Como criar um app iOS no Xcode sem Storyboard - DevPoli [??]
- Criação de Apps para iOS com SWIFT 2023 - Bruno Santos [??]
Linguagem
- Variáveis e Constantes em Swift - ReisDev [??]
- O que são Classes e Struct, as diferenças e quando usar - Giovanna Moeller [??]
- Uso de Struct e Class em Swift - Amanda Paiva [??]
- Protocolos em Swift: Uma abordagem didática - Caio Santos [??]
- Propriedades em Swift - Pedro Menezes [??]
- Opcionais em Swift: como utilizar? - Giovanna Moeller [??]
- Optional em Swift - ReisDev [??]
- Entendendo o uso de Generics: Por quê e como utilizar? - Giovanna Moeller [??]
- Entendendo [weak self] no Swift - Jonatan Medina [??]
- Como funcionam os modificadores de acesso? - Giovanna Moeller [??]
- Como decodificar JSON em Swift - ReisDev [??]
- Conversão de Dados com Codable (Encodable e Decodable) - Giovanna Moeller [??]
- Decodificando JSON com Swift 4 - Mateus Silva [??]
- Decodificando JSON com Swift 4 (parte 2) - Mateus Silva [??]
- Gerenciamento de memória no iOS — weak, strong e unowned - Décio Montanhani [??]
- Desmistificando a programação orientada a protocolos - Marcos Lacerda [??]
- Você sabe o que são Property Wrappers? Parte 1 - Marcos Lacerda [??]
- Você sabe o que são Property Wrappers? Parte 2 - Marcos Lacerda [??]
- Timer — Manipulando o tempo utilizando o Timer(iOS) - Vinicius Mangueira [??]
- Concorrência em iOS: A Teoria por Trás do Grand Central Dispatch - Laura Pinheiro [??]
- Race Condition e Data Race: Criando Classes Threadsafe em Swift - Laura Pinheiro [??]
- ? Automatizando a detecção de vazamento de memória - Comitando [??]
- ? Swift na prática: Uso de protocolos (Parte 1) - Comitando [??]
- ? Swift na prática: Uso de protocolos (Parte 2) - Comitando [??]
- ? Como trabalhar com Closures - DevPoli [??]
- ? Desvendando o ARC do Swift - DevPoli [??]
- ? Struct ou Class, pra que serve? - DevPoli [??]
- ? Lazy Var e Computed Properties - Qual a diferença? - DevPoli [??]
Arquiteturas
- As 5 arquiteturas iOS mais utilizadas - Zup [??]
- Principais arquiteturas para aplicações iOS - Objective [??]
- Entendendo os padrões de modelagem MVC, MVP e MVVM - ENG [??]
- Qual a melhor arquitetura para aplicações iOS? MVC? - Geraldo Bastos [??]
- Qual a melhor arquitetura para aplicações iOS? MVVM? - Geraldo Bastos [??]
- Arquitetura MVVM - Pomo Docs [??]
- Arquitetura Limpa (CLEAN) - Rayana Prata [??]
- Benefícios mais comuns entre arquiteturas iOS - Yasmin Benatti [??]
- Um estudo comparativo entre padrões arquiteturais para o desenvolvimento de aplicativos para a plataforma iOS - Ícaro Lima [??]
- Implementando arquitetura MVP - Comitando [??]
- iOS Architecture: MVVM-C
- ? (Re)Começando com SwiftUI + MVVM - Cícero Camargo CODEMUS [??]
- ? Aplicando o padrão de projeto MVC em aplicativos iOS - Developer Academy PUC-Rio [??]
- ? Aproximando Arquiteturas do Negócio - Bruno Ramos [??]
- ? Como montar o MVVM no Swift - DevPoli [??]
- ? Migrando tela de MVC para VIP - Comitando [??]
- ? Aplicando MVVM - Pedro Lagosta [??]
Padrões de Projeto
- Protocol Delegate em Swift - Cassia Barbosa [??]
- Padrões de Projeto em Swift - Refactoring.Guru [??]
- Injeção de Dependência - Raúl Ferrer [??]
- Um pouco sobre injeção de dependência em iOS - Victor Brito [??]
- ? Aplicando Delegate Pattern - Pedro Lagosta [??]
- ? Criando Coordinator - Pedro Lagosta [??]
- ? Usando pop, injeção de dependência e Factory - Pedro Lagosta [??]
- Design Patterns em Swift
- iOS Good Practices
Interface
Geral
- Diferenças na construção de layout com Storyboard, XIB e View Code - Alura [??]
- ? Conhecendo UIView e Constraints no iOS - DevPoli [??]
- iOS do princípio com Swift: Básico de Auto Layout - Bart Jacobs [??]
SwiftUI
- SwiftUI irá substituir o Swift? - Cassiane de Freitas [??]
- SwiftUI: dicas para quem quer começar a desenvolver - Arthur Givigir [??]
- Layouts com SwiftUI - Alura [??]
- SwiftUI Notes
- ? Introdução ao SwiftUI - Construindo aplicativos iOS - Giovanna Moeller [??]
- ? Introdução Ao SwiftUI - Como Criar O Primeiro Aplicativo [Ponta-a-Ponta] - Irmandade Swift [??]
- ? SwiftUI: Como começar do zero no desenvolvimento iOS moderno - Tiago Aguiar [??]
- ? Aprenda a criar apps nativos de iPhone no Xcode - Guia Completo: SwiftUI - Irmandade Swift [??]
- ? SwiftUI para desenvolvedores UIKit - Hugo Silva [??]
- ? SwiftUI: Animações no iOS - Tiago Aguiar [??]
- ? Como Criar Um Aplicativo iOS no Xcode (Super Simples!) - SwiftUI Tutorial - Tiago Aguiar [??]
- Hacking with iOS: SwiftUI Edition
Storyboard
- Desmistificando Storyboards - equinociOS [??]
- UIKKit, Storyboard e Padrão delegate - Ândriu Felipe [??]
- Storyboard - Kodeco
- ? Como criar um app iOS usando Storyboard - Developer Academy PUC-Rio [??]
ViewCode
- View Code em Swift - Cassia Barbosa [??]
- Implementando interfaces iOS em View Code - ioasys-voices [??]
- Curso iOS: Módulo sobre view code - Thiago Lioy [??]
- Com quantas views se faz uma App? - equinociOS [??]
- Como começar com ViewCode no iOS - João Alexandre [??]
- Como criar um app iOS em ViewCode - ReisDev [??]
- ViewCode + AutoLayout - Kodeco
- ViewCode + SnapKit - Kodeco
- ? Como usar o ViewCode sem Storyboard - BackFront Academy [??]
- ? Como funciona a UIStackView - DevPoli [??]
- ? Como criar uma tela usando ViewCode - Swift para todos [??]
- ? Como criar componentes em Swift usando ViewCode - Swift para todos [??]
UIKit
- Primeiros passos com UIKit - Tuts+ [??]
- UIKit: Renderizando componentes no SwiftUI - ioasys-voices [??]
Animações
- Melhorando a experiência do seu app com animações — iOS - Leonardo Santos [??]
- ? SwiftUI: Animações no iOS - Como começar - Tiago Aguiar [??]
Networking
- Async/Await: Camada Network genérica com Swift 5.5 - Victor Catão [??]
- Usando Codables em Swift 5 para consumir uma API de filmes - Lucas Fernandez [??]
- Como fazer um GET em Swift 4.2 - Gois [??]
- Consumindo API com SwiftUI - Tamara Erlij [??]
- ? Buscando dados da API de forma SIMPLES - DevPoli [??]
- ? Consumindo dados de uma API em Swift - Pedro Cacique [??]
- ? Criando camada Service - Pedro Lagosta [??]
Gerenciamento de Dependências
- Instalação e uso do gerenciador de dependências CocoaPods - Giovanna Moeller [??]
- Gerenciadores de dependências iOS - tokenlab [??]
- Carthage: Um gerenciador de dependências para projetos Xcode - infoq [??]
Persistência
- Aprendendo CoreData com SwiftUI - Academy IFCE + Alley Pereira [??]
- CoreData - Uma introdução à Persistência em iOS - Guilherme Paciulli [??]
- Persistência de dados usando CoreData - equinociOS [??]
- ? Como utilizar o UserDefaults - Swift para Todos [??]
Reatividade
- Resumo básico de RxSwift - Hoff Silva [??]
- Swift Combine - Vinicius Mangueira [??]
- Comparando RxSwift e Combine - Anthony Gianeli [??]
- Como inserir RxSwift + programação funcional naquele seu projeto que está 90% concluído - Bruno Bilescky [??]
- The Ultimate Combine Framework Tutorial in Swift
Segurança
- Segurança em dispositivos iOS - Daiane Santos [??]
- Criptografia para dispositivos iOS - Vinicius Mangueira [??]
- Defesas anti-reversão para iOS
- SSL Pinning - Flawless App Stories
Acessibilidade
- Tornando o seu app acessível por todos no iOS - Gustavo Severo [??]
- Voice Over - Acessibilidade em iOS - Renan Germano [??]
- Criando uma solução acessível para o One Time Code - André Salla [??]
- Já parou para pensar se seu app é acessível? - iMasters [??]
- ? Como dar foco no ELEMENTO com ACESSIBILIDADE - BackFront Academy [??]
Testes
- iOS Teste Unitário e Teste de UI - Hoff Silva [??]
- Escrevendo testes unitários em cenários caóticos: uma abordagem prática - Renato Felício [??]
- Escrevendo Testes Unitários para uma ViewController com TableView - Leonardo Cunha [??]
- Testes unitários em Swift com MVVM - SoftDesign [??]
- Testes automatizados com XCTest Framework para teste de app iOS - Amanda Lacerda [??]
- Test Doubles em Swift (Ou o isolamento de testes unitários) - Matheus de Vasconcelos [??]
- iOS Tests 101 - Yasmin Benatti [??]
- ? Automação de testes NATIVA para iOS com XCUITest - qazando [??]
- ? Lidando com FileManager em testes unitários - Comitando [??]
- ? Escrevendo testes de UI - Comitando [??]
- ? Criando Testes Unitários - Pedro Lagosta [??]
- ? Criando Testes Unitários na prática - Pedro Lagosta [??]
- ? [Devpass Talks] Dominando Testes Unitários no iOS (Leonardo Santos) [??]
Backend
- VAPOR - A new type of web framework
- ? Build a RESTAPI in Swift using the Vapor Framework
- ? Getting Started with Vapor
- ? Getting Started With Vapor | Server Side Swift
- ? Server Side Swift Using Vapor Part 1 - Getting Started
- ? Vapor New: Урок 1 - Введение, создание проекта, модель продукта, миграция. Backend на Swift | сервер
Ferramentas e Recursos
Utilidades
- Swift Lint - Vinicius Mangueira [??]
- Formatação de data - NSDateFormatter
- Linting - SwiftLint
Deploy e CI/CD
- Gerando artefatos .ipa com GitHub Actions - Michel Lutz [??]
- Bitrise
- Jenkins
- Fastlane
- Judo - UI orientada a servidor
Blogs e Plataformas
- Primitive School - beta
- Recreate
- AppCoda
- Hacking With Swift
- Kodeco (antigo Raywenderlich)
- LearnAppMaking
- Daily Dose of Swift
- iOS Dev Weekly
- Create with Swift
- Awesome iOS
- The Swift Dev
- Holy Swift
- Swift with Majid
- Swift Senpai
- SerialCoder.dev
- Swift by Sundell
- WWDC Notes
- SwiftLee
- Yet Another Swift Blog
Livros
- Desenvolvendo para iPhone e iPad - Ricardo R. Lecheta
- Swift in Depth - Tjeerd in 't Veen
- Mastering Swift 5 - Jon Hoffman
- Livros Kodeco, vários níveis e tópicos
- Swift Book em Português(em tradução)
- Learn Swift - Aidan Finn
Canais no Youtube
- Attekita Dev [??]
- Back Front Academy [??]
- Cícero Camargo CODEMUS [??]
- CocoaHeadsBR [??]
- Codando Com Moa [??]
- Comitando [??]
- Developer Academy PUC-Rio [??]
- Michel Lopes [??]
- Pedro Lagosta [??]
- ReisDev [??]
- Raphael Oliveira [??]
- Tiago Aguiar [??]
- Thais Sadami [??]
- Swift para todos [??]
- Credo Academy
- Essential Developer
- iOS Academy
- Paul Hudson
- Rebeloper
- Sean Allen
- Vincent Pradeilles
- Kavsoft
- Stewart Lynch
- Karin Prater
Playlists no Youtube
- Curso de Swift - Hugo Vasconcelos [??]
- Aulas de Swift - Bruno Scheltzke [??]
- Desenvolvimento iOS - Desgourmetizando o conhecimento / Renato Matos [??]
- DESENVOLVIMENTO iOS - Tiago Aguiar [??]
- Curso de Swift - Programação - Tiago Aguiar [??]
- iOS Development with Swift Tutorials
- Curso grátis Swift e SwiftUI (stanford 2020)
- Apple Swift Programming Language Tutorial Series
- iOS Course Lectures Spring 2021 - Cornell AppDev
- TUTORIAIS iOS (LEGACY)
Podcasts
- Build Failed Podcast ??
- Swift by Sundell
- Swift Unwrapped
- Compile Swift
- Contravariance. A Swift Podcast
- Podcasts GigaHertz
Playgrounds
- Swift Online Playground
- Apple Swift Playgrounds
Cursos gratuitos
- Swift4Noobs [??]
- Aprendendo Swift do Iniciante ao Avançado - Udemy [??]
- iOS 13 & Swift 5 - Recriando o Tinder 2020 [??]
- Ensino de Programação - Apple
- CS193p - Developing Applications for iOS using SwiftUI - Stanford
- 100 Days of Swift
- 100 Days of SwiftUI
Cursos pagos
- Curso Carreira iOS - Comitando [??]
- Layouts com SwiftUI - Alura [??]
- Curso Completo Desenvolvimento iOS 11 Swift 4 - Eric Brito [??]
- Desenvolvimento de Aplicativos iOS12 em Swift4 - Rodrigo Guimarães [??]
- Swift - TDD, Clean Architecture, Design Patterns, SOLID, MVP - Rodrigo Manguinho [??]
- Desenvolvimento IOS 12 - Aprenda a criar 18 Apps - Jamilton Damasceno [??]
- Desenvolvedor iOS: Prepare-se para o Mercado de Trabalho - Wellignton Bezerra [??]
- The Complete iOS Development Bootcamp - Udemy
- Do Iniciante ao Avançado em Testes Unitários no iOS
Roadmaps
- A Jornada do Programador iOS - BackFront Academy [??]
- Plano de Estudos de Desenvolvimento iOS - Zup Innovation [??]
- iOS Roadmap - Escalando com Swift [??]
- Swift Developer Roadmap - Ronan Rodrigo Nunes
- Mobile Developer Roadmap - Jung Kim
- iOS Developer Skills Matrix - Bohdan Orlov
- iOS Roadmap to Professional Developer
Comunidades
- NSFlow - Telegram
- iOS DevDrops - Telegram
- iOS Dev BR - Slack
- iOS Brasil - Discord
Canais no Telegram
Instagram
- CocoaHeads Brasil
- Daily Dose of Swift
- DudaDev
- Lelê Developer
- Luiz Mello
- Mafê
- Raphael Oliveira
- ReisDev
- Rychillie
- Thais Sadami
Twitter
- Enid
- Swift Language
- Kavsoft
- Aviel
- Paul Hudson
- Xcode Releases
- Thomas Ricouard
- Donny Wals