← All Courses
Learn Swift logo

Learn Swift

Coming Soon

iOS, macOS, and server-side development

Swift SwiftUI iOS macOS Vapor

Coming Soon

The language of Apple’s ecosystem. iOS apps, macOS applications, watchOS, tvOS, and server-side Swift (Vapor) — all with a modern, safe, and expressive language designed for performance.

This course covers Swift from fundamentals through SwiftUI and UIKit to building and shipping apps on the App Store.

Start Here — Learning Roadmap

A suggested path from zero to mastery. Follow these steps in order:

  1. Learn Swift Basics — Start with variables, types, optionals, control flow, and functions using The Swift Programming Language guide or Swift Playgrounds
  2. Understand Swift’s Type System — Master structs vs classes, enums with associated values, protocols, and generics
  3. Start with SwiftUI — Learn declarative UI with views, modifiers, state management (@State, @Binding, @Observable), and previews
  4. Build Simple Apps — Create a to-do app, weather app, or calculator to practice navigation, lists, forms, and user input
  5. Learn Data Persistence — Use SwiftData (or Core Data), UserDefaults, and the Codable protocol for JSON handling
  6. Study App Architecture — Understand MVVM, dependency injection, and how to structure a maintainable SwiftUI app
  7. Handle Networking — Build apps that consume REST APIs using URLSession, async/await, and proper error handling
  8. Explore Advanced SwiftUI — Master animations, custom views, Canvas, gestures, and platform-specific adaptations
  9. Learn UIKit (Optional) — Understand UIKit for legacy codebases and features not yet in SwiftUI (camera, MapKit customization)
  10. Ship to the App Store — Configure signing, TestFlight distribution, App Store Connect, and handle App Review guidelines

Official & Core Documentation

GitHub Awesome Lists & Curated Collections

  • awesome-swift — Collaborative list of awesome Swift libraries and resources, well-maintained and comprehensive
  • awesome-ios — Massive curated list of the iOS ecosystem including Objective-C and Swift projects
  • awesome-swiftui — Curated resources, articles, and libraries specifically for SwiftUI development
  • awesome-swift-playgrounds — Curated list of Swift Playgrounds for learning and experimentation
  • open-source-ios-apps — Collaborative list of open-source iOS, watchOS, and tvOS apps for learning
  • awesome-ios-architecture — Curated list of iOS architecture patterns, approaches, and best practices

Interactive Courses & Hands-On Platforms

Free Courses

University & MOOC Courses

Practice & Challenges

Video Courses & YouTube Channels

Structured Course Playlists

Individual Creators & Channels

  • Sean Allen — Swift and iOS development tutorials, career advice, and app reviews (Beginner)
  • Stewart Lynch — In-depth SwiftUI tutorials and deep dives into Apple frameworks (Intermediate)
  • Kavsoft — Beautiful SwiftUI UI recreations and animation tutorials (Intermediate)
  • Swiftful Thinking — SwiftUI tutorials with bootcamp-style progressive learning (Beginner)
  • Vincent Pradeilles — Swift language features and iOS development tips (Intermediate)
  • Letsbuildthatapp — Full iOS app builds from design to deployment (Intermediate)
  • Azam Sharp — SwiftUI, SwiftData, and modern iOS development patterns (Intermediate)
  • iOS Academy — iOS development tutorials covering UIKit, SwiftUI, and real app builds (Beginner)
  • CodeWithChris — Beginner-friendly iOS and SwiftUI tutorials with project-based learning (Beginner)
  • WWDC Sessions (yearly) — All sessions from Apple’s Worldwide Developer Conference, free to watch (All levels)

Books & Long-Form Reading

Free Online Books

Essential Paid Books

Community, Practice & News

Forums & Discussion

Newsletters & Blogs

Package Registries & Ecosystems

  • Swift Package Index — Discover and evaluate Swift packages for your projects
  • CocoaPods — Dependency manager for Swift and Objective-C projects (legacy but widely used)
  • Swift Package Manager — Apple’s official dependency management tool built into Xcode

Tools & Environments

  • Xcode — Apple’s official IDE for Swift development with Interface Builder, simulators, and profiling
  • Swift Playgrounds — Interactive learning environment for Swift on iPad and Mac
  • VS Code + Swift Extension — Lightweight editor with Swift LSP support for cross-platform development
  • Instruments — Apple’s performance analysis and testing tools built into Xcode
  • SwiftLint — Enforce Swift style and conventions with configurable lint rules
  • SwiftFormat — Automatic code formatting for Swift following configurable rules
  • Periphery — Detect unused code in Swift projects to keep codebases clean
  • Proxyman — macOS app for debugging HTTP/HTTPS network requests from your iOS apps
  • Tuist — Project generation and management tool for Xcode projects at scale
  • Fastlane — Automate iOS builds, testing, screenshots, and App Store deployment
  • TestFlight — Apple’s beta testing platform for distributing pre-release builds