iOS is Apple's mobile operating system powering iPhone, iPad, and iPod Touch, providing developers with frameworks like UIKit and SwiftUI to build native applications using Swift or Objective-C. Modern iOS development centers on declarative UI with SwiftUI, the Observation framework (@Observable) for lightweight state management, async/await structured concurrency, and Swift Package Manager for dependencies, while UIKit remains essential for complex custom interfaces and backward compatibility. Understanding iOS means mastering the entire Apple ecosystem: app lifecycle management, memory handling through ARC, design patterns like MVVM, integration with platform services, and Swift 6's strict concurrency model built around Sendable and actor isolation.
What This Cheat Sheet Covers
This topic spans 25 focused tables and 216 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: UI Frameworks
Every iOS app is built on top of one of these layout systems, and the central choice is SwiftUI versus UIKit — declarative state-driven views against the older imperative view-controller world. The rest are the building blocks each camp gives you for navigation and lists: modern type-safe NavigationStack and split layouts on the SwiftUI side, and the battle-tested UINavigationController, table, and collection views on the UIKit side that still power the most demanding interfaces.
| Framework | Example | Description |
|---|---|---|
struct ContentView: View { var body: some View { Text("Hello") }} | • Declarative UI framework (iOS 13+) • Swift-only syntax with automatic state updates and cross-platform support across all Apple devices. | |
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() }} | • Imperative, event-driven framework using view controllers • provides fine-grained control for complex interactions and broad backward compatibility. | |
NavigationStack(path: $path) { List { NavigationLink("Detail", value: item) } .navigationDestination(for: Item.self) { ... }} | • SwiftUI's modern navigation (iOS 16+) • type-safe, programmatic routing with value-based navigation and state-driven paths. | |
NavigationSplitView { SidebarView()} detail: { DetailView()} | • SwiftUI multi-column layout (iOS 16+) for iPad and large screens • automatically collapses to NavigationStack in compact size classes. | |
let navController = UINavigationController(rootViewController: vc)navController.pushViewController(nextVC, animated: true) | UIKit container managing a stack-based navigation hierarchy with back/forward navigation and a navigation bar. |