Native iOS apps with Swift & SwiftUI.
2 topics
Swift is safe, fast, and expressive. Master: optionals (?, !, if let, guard let, ??), value types vs reference types, protocols (protocol-oriented programming), generics, closures, error handling (do/try/catch), async/await and actors, property wrappers, and result builders. Strong type system catches bugs at compile time.
2 resources
Modern concurrency: async/await for sequential async code, Tasks for launching work, TaskGroup for parallel execution, actors for thread-safe state, @MainActor for UI updates, Sendable for safe sharing, and AsyncSequence for streams. Replaces GCD and completion handlers with safer, clearer patterns.
Declarative UI: Views as structs, state (@State, @Binding, @ObservedObject, @StateObject, @EnvironmentObject), layout (VStack/HStack/ZStack, LazyVGrid), navigation (NavigationStack), lists (List, ForEach), modifiers, and Material 3 components. Works across all Apple platforms with shared code.
Custom view modifiers, preference keys, custom Layout protocol, animations (matchedGeometryEffect, TimelineView), gestures, UIKit interop (UIViewRepresentable), and @Observable macro (iOS 17+). Use Composable Architecture (TCA) for complex apps. Widgets with WidgetKit and app intents for Siri.
MVVM with SwiftUI: Views observe ViewModels (StateFlow), Repository pattern abstracts data sources, DI with Factory. For large apps: modularize with SPM, use coordinator pattern or NavigationStack state. The Composable Architecture provides comprehensive state management, side effects, and testing.
XCTest for unit tests, XCUITest for UI automation, snapshot testing for visual regressions. Distribution: Apple Developer Program, TestFlight for beta, App Store Connect for submission. Xcode Cloud for CI/CD. Monitor with Firebase Crashlytics and Analytics.