SwiftUI Foundations
Build Brew Log — Your First Real SwiftUI App
A free, anti-vibe-coding SwiftUI course. 18 lessons, every component you need, and a real coffee-tracking app called Brew Log that ends the course persistent, accessible, and ready for the App Store. Built without AI shortcuts — just the right way to write SwiftUI.
Start Learning18
Lessons
9
Modules
FREE
No paywalls
~3h
Reading time
Curriculum
Course Content
Module 1
Setting the Stage
The mental model that makes SwiftUI click — views as values, body as a function — and a clean Brew Log project structure with the first model in place.
2 lessons
Module 2
Views, Modifiers, Layouts
Text, Image, Color, modifier order, stacks and spacers, the layout protocol, ScrollView, ignoresSafeArea — everything that turns three primitives into a real screen.
- 3
Text, Image, Color — and Why Modifier Order Matters
10 min read
- 4
Stacks and Spacers — Compose Without Nesting Forever
9 min read
- 5
Layout, Scrolling, and the Modifiers Everyone Underestimates
11 min read
3 lessons
Module 3
Data Flow
@State for owned mutable, @Binding for borrowed, @Observable for structured, @Environment for shared. The 2026 SwiftUI data architecture from one screen to many.
- 6
@State and @Binding — Owning vs Borrowing Mutable Data
11 min read
- 7
@Observable and @Bindable — When State Outgrows the View
10 min read
- 8
Environment — Dependency Injection Without the Ceremony
10 min read
3 lessons
Module 4
Controls
Buttons, Menus, Pickers, plus the form-control toolbox — Toggle, Slider, Stepper, DatePicker, ColorPicker, ProgressView.
- 9
Buttons, Menus, and Pickers — The Three Controls You'll Use Every Day
10 min read
- 10
Form Controls — DatePicker, ColorPicker, ProgressView
9 min read
2 lessons
Module 5
Collections & Forms
List, Section, ContentUnavailableView, AsyncImage, and the input toolkit — Form, TextField, TextEditor, @FocusState — to compose a real brew with notes.
- 11
Lists, Empty States, and AsyncImage — Real Data on Screen
12 min read
- 12
Forms, TextField, and @FocusState — Real Input
11 min read
2 lessons
Module 6
Navigation & Overlays
NavigationStack with value-based links, sheet/alert/confirmationDialog/popover, and the decision tree of which to use when.
- 13
NavigationStack — Pushing, Popping, and Programmatic Paths
11 min read
- 14
Sheets, Alerts, Popovers, and Confirmation Dialogs
11 min read
2 lessons
Module 7
Visual Toolbox
Shapes, gradients, materials, the everyday effect modifiers, plus TabView, .toolbar, and LazyVGrid — the structural visual pieces.
- 15
Shapes, Gradients, Materials, and Visual Effects
10 min read
- 16
TabView, Toolbar, and LazyVGrid
10 min read
2 lessons
Module 8
Persistence
SwiftData — @Model, @Query, ModelContainer — so brews actually survive app restarts.
1 lesson
Module 9
Polish & Capstone
Accessibility, Dynamic Type, dark mode, app icon, and the App Store ship checklist. Brew Log v1 is ready.
1 lesson
Comments
Leave a comment