Apple's modern, declarative UI framework. You describe the UI as a function of state and SwiftUI re-renders when the state changes. Build views and previews, lay them out with stacks and modifiers, drive interactivity with @State and @Binding, use the common controls and forms, render lists and navigate with NavigationStack, and connect an observable data model to the UI.
Before you start
SwiftUI is written entirely in Swift — take the Swift course first (especially closures and value types). The iOS Development course covers the project and app that host your SwiftUI views.
Your First View
SwiftUI is declarative: instead of mutating view objects, you write a struct whose body describes the UI for the current state. Learn the View protocol, previews, and how views compose.
Layout: Stacks & Modifiers
Arrange UI with VStack, HStack, and ZStack, and shape every view with modifiers — the chainable system controlling padding, size, color, and more. Plus Spacer and frame for flexible layouts.
State & Binding
State makes UI interactive. @State holds a view’s own mutable state and triggers re-renders; @Binding shares that state with child views. Master these and the "value down, actions up" pattern.
Controls & Forms
SwiftUI ships the common controls — text, images, buttons, text fields, toggles, pickers — that look native out of the box. Assemble them, and use Form for settings-style grouped input.
Lists & Navigation
Render scrolling lists efficiently with List and ForEach, and move between screens with NavigationStack and NavigationLink — the backbone of a multi-screen iOS app, including passing data to a detail view.
Observable Models & Effects
Move real state out of views into an observable model the whole screen shares, run async work with the task modifier, pass data down the tree with the environment, and add animations.