Skip to content
Commitwise
Menu

iOS Development

Build iPhone apps with Swift and SwiftUI: state, navigation, networking, concurrency, architecture and shipping to the App Store.

16 lessons
0 of 16 completed
  1. 01

    SwiftUI Basics

    Build your first SwiftUI screens from views, modifiers and stacks, understand why modifier order matters and how layout decides sizes, and make a screen react to taps.

    7–25 min beginner Junior & senior

  2. 02

    State and Data Flow

    Decide where each piece of SwiftUI state lives, with @State, @Binding, @Observable, @Bindable and @Environment, and avoid the bugs that reset or freeze your screens.

    5–35 min beginner Junior & senior

  3. 03

    Lists and navigation

    Show data with List and ForEach, navigate with NavigationStack and value-based links, edit lists safely, and drive navigation from state for deep links and restoration.

    5–30 min beginner Junior & senior

  4. 04

    Networking with URLSession and Codable

    Load JSON from an API with URLSession and async/await, decode it with Codable, and handle status codes, loading states, errors and cancellation in SwiftUI.

    5–30 min beginner Junior & senior

  5. 05

    Swift Concurrency: actors and Sendable

    Run work in parallel with async let and task groups, protect shared state with actors, keep UI code on the main actor, and understand Sendable and the Swift 6 data-race checks.

    6–30 min intermediate Junior & senior

  6. 06

    Persistence with SwiftData

    Save data on the device with SwiftData, from @Model classes and @Query in SwiftUI to filters, sorting, relationships and delete rules, plus the production parts: background imports with @ModelActor, unique attributes and schema migrations.

    4–30 min intermediate Junior & senior

  7. 07

    UIKit for SwiftUI developers

    Read and write the UIKit code most iOS apps still contain, with view controllers and their lifecycle, Auto Layout in code, collection views with diffable data sources, delegates and target-action, and bridge both ways with UIViewRepresentable and UIHostingController without update loops or leaks.

    4–25 min intermediate Junior & senior

  8. 08

    Architecture: MVVM, TCA and coordinators

    Choose an architecture for a SwiftUI app, from plain views with @Observable models to MVVM view models owned with @State, The Composable Architecture with reducers, effects and exhaustive tests, and a router or coordinator for navigation, with the trade-offs of each.

    4–20 min intermediate Junior & senior

  9. 09

    Dependency injection

    Give iOS code its dependencies instead of letting it reach for singletons, with protocols and initializer injection, a composition root in the App struct, SwiftUI's environment and the @Entry macro, structs of closures as lightweight clients, and libraries such as swift-dependencies, plus the crashes and leaks to avoid.

    4–25 min intermediate Junior & senior

  10. 10

    Testing with Swift Testing and UI tests

    Write fast unit tests for an iOS app with Swift Testing (@Test,

    4–25 min intermediate Junior & senior

  11. 11

    Performance and Instruments

    Find and fix what makes an iOS app slow, measuring release builds on a device with Instruments (Time Profiler, Hangs, the SwiftUI instrument, Allocations), keeping SwiftUI bodies cheap with stable identity, moving work off the main actor for real, speeding up launch, and catching regressions with signposts, XCTest metrics and MetricKit.

    4–25 min advanced Junior & senior

  12. 12

    Memory leaks and retain cycles

    Find and fix the retain cycles that keep iOS screens alive after they close, in closures, Combine subscriptions, timers, notification observers and long-running Tasks, and catch leaks with Xcode's memory graph, Instruments and a one-line test.

    4–25 min intermediate Junior & senior

  13. 13

    App lifecycle and background tasks

    Know when your iOS app is active, inactive, backgrounded, suspended or terminated, save at the right moment, finish work after the user leaves, and schedule background refreshes, processing and transfers that the system will actually run.

    4–30 min intermediate Junior & senior

  14. 14

    Push notifications

    Ask for notification permission at a moment users say yes, register with APNs and keep the device token current, show notifications in the foreground, open the right screen when one is tapped (even on a cold start), add actions, and enrich or decrypt content with a Notification Service Extension.

    4–25 min intermediate Junior & senior

  15. 15

    Accessibility

    Make a SwiftUI app work with VoiceOver, Dynamic Type, Voice Control and other assistive settings, with meaningful labels and traits, grouped elements and custom actions, layouts that grow with text size, color and motion that respect user settings, and audits that catch regressions automatically.

    4–25 min intermediate Junior & senior

  16. 16

    TestFlight and App Store release

    Ship an iOS app from Xcode to users, with signing certificates and provisioning profiles, build numbers, build configurations for staging and production, TestFlight internal and external testing, App Store review and its common rejections, privacy labels and manifests, and phased releases you can pause but not roll back.

    3–20 min intermediate Junior & senior

Esc

Type to search the whole site.