Apple Platforms

This content was generated with the assistance of AI and should be verified against the official documentation before being relied on in production; see the section bibliography for the reference material consulted while preparing these pages.

Welcome to the Apple Platforms reference. It documents how to build native apps for Apple devices — iPhone, iPad, Mac, Apple Watch and Apple Vision Pro — with Apple’s own tools, frameworks and language: Xcode, Swift, SwiftUI and the system frameworks underneath. The result runs directly on each platform’s UI toolkit and system services, with no cross-platform layer in between.

This section documents the 27 releases: iOS, iPadOS, macOS, watchOS and visionOS 27, built with Xcode 27 and Swift 6.4. Every example targets a deployment minimum of 26, the previous year’s releases, so an app built this way still runs on devices that have not updated yet; APIs that exist only in the 27 SDKs are called out as "new in 27" in the prose and guarded with if #available(iOS 27, macOS 27, watchOS 27, visionOS 27, *) in code. Apple’s operating systems use year-based version numbers since 2025, so the releases after 18 are 26 (2025) and 27 (2026); there is no iOS 19. macOS 26 is Tahoe and macOS 27 is Golden Gate.

SwiftUI is the primary UI framework on every page, because it is the only one that runs on all five platforms. UIKit (iOS, iPadOS, tvOS and visionOS) and AppKit (macOS) are documented where an app still needs them: for existing codebases, for features SwiftUI does not cover yet, and for mixing the two. This section does not re-explain the Swift language itself — for optionals, generics, protocols, macros, result builders, concurrency and the rest, see the Swift Reference, and for the Objective-C side of mixed codebases, the Objective-C Reference.

How Apple app development got here

Year What changed

2008

The iPhone SDK opened the phone to third-party apps, written in Objective-C against Cocoa Touch and its UI framework, UIKit — the mobile sibling of the Mac’s Cocoa and AppKit. The App Store launched the same year.

2014

Swift was introduced as a safer, modern language for Apple platforms, able to mix with Objective-C in the same app target.

2019

SwiftUI brought a declarative UI framework that runs on every Apple platform, with state-driven views instead of view controllers and manual updates.

2021

Swift concurrency arrived: async/await, structured tasks and actors, with @MainActor for UI code and SwiftUI’s .task modifier tying work to a view’s lifetime.

2023

The Observation framework (@Observable) replaced ObservableObject as the way to drive SwiftUI from model data, SwiftData added Swift-native persistence, and visionOS was announced.

2025

Operating system versions became year-based, jumping to 26 on every platform. The 26 releases introduced the Liquid Glass design language across all platforms and the Foundation Models framework for on-device Apple Intelligence.

2026

The 27 releases: in Xcode 27 @State is a macro, ContentBuilder replaces the type-specific result builders, apps built with the 27 SDK must adopt the UIKit scene-based life cycle, and Swift 6.4 ships with Xcode 27.

Much of what older books, tutorials and forum answers describe predates this timeline: NavigationView, ObservableObject-first data flow, app-delegate-only life cycles, completion-handler concurrency, ClockKit complications and pre-Liquid Glass bar styling. These pages document the current approach and name the older one only where a reader is likely to meet it in an existing codebase.

New here? Read in this order

That path takes you from an empty Xcode project to a structured, navigable SwiftUI app. From there, pick the groups below in whatever order your app needs them: data and networking once the app has something to store, the platform-specific pages once it runs on more than one device family, and the quality and distribution pages before the first TestFlight build.

The FieldNotes app

Every code example across these pages is a slice of one running app, FieldNotes: a notes app that keeps notes grouped into notebooks, with tags, pinning, search and, later in the section, persistence, sync, widgets, Siri and Shortcuts actions, and on-device summaries. It lives in one Xcode project, FieldNotes.xcodeproj, with a multiplatform FieldNotes app target for iOS, iPadOS, macOS and visionOS, a separate FieldNotesWatch target for watchOS, a FieldNotesWidgets widget extension and a FieldNotesTests target for Swift Testing. Its bundle identifiers start with com.example.fieldnotes, and the app and its extensions share data through the App Group group.com.example.fieldnotes.

The code is split into local Swift packages: FieldNotesKit holds the FieldNotesModel module (the Note and Notebook types) and the FieldNotesServices module (the @Observable NoteStore and the service protocols such as NoteSyncing and SummaryGenerating), and FieldNotesUI holds the shared views and styles. The FieldNotesApp entry point creates the store once and injects it into the environment; ContentView is a three-column NavigationSplitView of notebooks, notes and the selected note, and the macOS and visionOS builds add a Settings window, a menu bar extra and an immersive map space. The data, system and device pages then grow it further: SwiftData persistence with CloudKit sync behind a NotePersisting layer, a pinned-notes widget, a Control Center control and a field-trip Live Activity, App Intents for Siri and Shortcuts, on-device summaries with Foundation Models, location and photo attachments, Keychain and passkey sign-in, and a FieldNotes Pro subscription. The platform, quality and distribution pages finish it: resizable note windows and keyboard commands on iPad, a tag inspector utility window and a menu bar extra on the Mac, a watch app that talks to the phone through WatchConnectivity and shows a next-field-trip complication, and a field-site volume on Apple Vision Pro; FieldNotesTests and FieldNotesUITests targets driven by the FieldNotes.xctestplan test plan; and a release pipeline that signs, uploads to TestFlight, notarizes the Mac build and runs in Xcode Cloud. Because every page extends the same codebase, the pages compose into one coherent app rather than a set of unrelated snippets.

What’s covered

Foundations & tooling

  • Getting Started with Apple Platforms — the five platforms and their UI frameworks, year-based versions and the 27 baseline, developer account types, installing Xcode 27, and running FieldNotes on a simulator and a device.

  • Xcode Projects, Targets, Schemes and Previews — workspaces, projects, targets and schemes, build configurations and .xcconfig files, the concurrency build settings, #Preview and #Playground, and Device Hub.

  • Swift Packages and Modularizing an App — remote dependencies, splitting an app into local packages, Package.swift targets and resources, explicit modules and mergeable libraries.

  • App Structure and Life Cycle (SwiftUI, UIKit, AppKit) — the SwiftUI App and its scene types, scene phases, delegate adaptors, the now-mandatory UIKit scene life cycle, and AppKit’s NSApplication.

  • App Architecture the Apple Way — model-driven SwiftUI with @Observable models and the environment, a fair comparison with MVVM, injectable services, and the Swift API Design Guidelines.

  • Swift Concurrency in Apps — MainActor-by-default isolation, @concurrent, .task(id:) and cancellation, bridging callback APIs, the Swift 6.4 additions, and where Combine stands.

  • One Codebase for iOS, iPadOS, macOS, watchOS and visionOS — a multiplatform target, conditional compilation and availability checks, platform-specific scenes, and choosing between native macOS, Mac Catalyst and "Designed for iPad".

  • Mixing Swift, Objective-C and C++ in an App — bridging headers and the generated -Swift.h header, annotations that shape the imported API, C++ interoperability, and migrating Objective-C code step by step.

SwiftUI, UI & design

  • SwiftUI Views and Modifiers — the View protocol, why modifier order matters, custom ViewModifiers, ContentBuilder, view identity, and custom environment values with @Entry.

  • SwiftUI Layout — the propose-size-place negotiation, stacks and grids, alignment, ViewThatFits, the custom Layout protocol, adaptive layout and scroll APIs, and ArrangementView for iPhone Duo.

  • State and Data Flow with Observation — one source of truth, @State as a macro, @Binding, @Observable and @Bindable, the environment, and migrating from ObservableObject.

  • Lists, Tables and Collections — List and ForEach, selection and editing, swipe actions and reordering, Table, lazy scroll views, search, refresh and custom containers.

  • Navigation and Presentation — NavigationStack and NavigationPath, NavigationSplitView, TabView, sheets, popovers and inspectors, alerts, zoom transitions and toolbars.

  • Controls, Forms, Text, Images and SF Symbols — forms and controls, focus, rich text and text input, images and AsyncImage, SF Symbols and Dynamic Type.

  • Drawing, Animation and Gestures — shapes, Canvas and shaders, implicit and explicit animation, springs, transitions and phase and keyframe animators, and composing gestures.

  • Liquid Glass, Materials and Icons — Liquid Glass as the functional layer above content, custom glass effects in SwiftUI, UIKit and AppKit, accessibility settings, and layered app icons with Icon Composer.

  • UIKit and AppKit Essentials, and Mixing Them with SwiftUI — view controllers, diffable data sources and the trait system, windows and menus in AppKit, hosting SwiftUI and wrapping UIKit and AppKit views as representables.

  • Human Interface Guidelines in Practice — how the HIG is organized, its design principles and key foundations, and what each "Designing for …" platform page asks of an app.

  • Accessibility — VoiceOver labels, values and traits, accessibility elements and actions, Dynamic Type, display accommodations, auditing and testing, and Accessibility Nutrition Labels.

  • Localization with String Catalogs — String Catalogs, localized string types, plural and device variations, generated symbols, format styles, right-to-left layout, and the XLIFF export and import round trip.

Data & networking

  • Persisting Models with SwiftData — @Model and its attributes and relationships, containers and contexts, @Query, schema migrations, background model actors, history, and CloudKit sync.

  • Core Data, CloudKit and iCloud — the Core Data stack for existing apps, NSPersistentCloudKitContainer and sharing, CloudKit used directly, key-value storage, and migrating to SwiftData.

  • Preferences, Files and Document-Based Apps — UserDefaults and @AppStorage, the sandbox container layout and App Group containers, file coordination, and document-based apps with the new document protocols.

  • Networking: URLSession, Network Framework and ATS — async URLSession, decoding and retries, background sessions, path monitoring, the Network framework, App Transport Security and certificate pinning.

Background work & system integration

Intelligence & devices

  • Apple Intelligence and Machine Learning — the Foundation Models framework and its 27 additions, Core AI and Core ML, Vision, Natural Language, Speech and Translation, and system features such as Writing Tools.

  • Location and Maps — authorization sessions, live location updates, monitoring and geofences, and MapKit for SwiftUI.

  • Camera, Media and Photos — PhotosPicker and PhotoKit, AVFoundation capture and playback, the Now Playing framework, and ARKit on iOS.

  • Health, Motion and Accessories — HealthKit and workouts, Core Motion, Core Bluetooth and AccessorySetupKit, Core NFC, and which capability runs on which platform.

Security & commerce

  • Security and Privacy — the Keychain, biometric authentication, CryptoKit, Sign in with Apple and passkeys, entitlements and the sandbox, privacy manifests, App Tracking Transparency and App Attest.

  • In-App Purchases and Subscriptions with StoreKit 2 — products and purchases, verified transactions and entitlements, merchandising views, StoreKit testing in Xcode, and App Review’s payment rules.

  • Augmented Reality with ARKit and RealityKit — RealityKit’s entity-component-system model and RealityView, ARKit on iOS and on visionOS, and Reality Composer Pro assets.

Platform specifics

Quality

Distribution

Reference

  • Cheat Sheets (PDF) — three downloadable one-page A4 summaries for quick memorization: SwiftUI & App Essentials; Data, Services & Shipping; and Platform Differences at a Glance.

This section builds on material documented elsewhere on this site, and links to it rather than repeat it. The Swift Reference covers the language every example is written in — including async/await and tasks, actors, isolation and Sendable, properties and @Observable, macros, result builders, the Swift Package Manager and testing — and the Objective-C Reference covers the language of older Apple codebases, with Swift interoperability seen from the Objective-C side. Android is the native counterpart on Google’s platform — covering classic Views/Fragments/Activities and Jetpack Compose UI, app architecture, data and networking, system integration, quality, and building, signing and publishing, the Android equivalents of this section’s own groups — Kotlin Multiplatform shares Kotlin code with SwiftUI apps (and, with Compose Multiplatform, UI), and React Native is the cross-platform alternative that targets iOS and Android from one TypeScript codebase. Native and Mobile Apps is the OAuth protocol reference behind this section’s sign-in, universal-link and Keychain material, and Couchbase Lite is an offline-first sync option beside SwiftData and CloudKit. Web Accessibility covers WCAG, the standard that Accessibility maps onto Apple’s APIs; E2E Testing in Real Browsers is the browser-side counterpart to this section’s UI tests; and Architectural Patterns covers the general theory — MVC, MVVM, layered and modular designs — that App Architecture the Apple Way applies to SwiftUI.

Bibliography

Apple Developer Documentation (primary source for every page and every code example)

The primary source for every page and every code example. Each topic page cites the specific symbol and article pages it uses; the entries below are the framework roots and the articles those pages are built on.

Apple tutorials, sample code and release notes

2026

2025

2024

Older

App Store, distribution and account help

Swift language references

Other official sources

Consulted reference books

These were consulted for the concept narrative and the practitioner’s perspective, never as the source of any code example. They are copyrighted works and are not reproduced here; their publisher pages are linked instead.

  • Bello, Antonio, Bill Morefield, Audrey Tam & Sarah Reichelt. SwiftUI by Tutorials, 4th edition. Kodeco (raywenderlich.com), November 2021 — see the publisher’s book page, with the official code bundle at kodecocodes/sui-materials. The narrative source for the SwiftUI views, layout, navigation, controls, drawing and animation, accessibility and macOS/multiplatform material, targeting Xcode 13.1 and Swift 5.5; it teaches ObservableObject/@StateObject and the deprecated NavigationView, both predating the @Observable macro and NavigationStack, and uses XCTest rather than Swift Testing.

  • Cacheaux, René & Josh Berlin. Advanced iOS App Architecture. Kodeco (raywenderlich.com), 2019 — see the publisher’s book page, with the official code bundle at kodecocodes/arch-materials. The narrative source for the MVVM and Redux-style architecture material in App Architecture the Apple Way, targeting Xcode 10.2 and Swift 5; its manual view-controller wiring and hand-rolled Redux state management are UIKit-era and predate the @Observable macro, which now provides much of the same state plumbing for free.

  • Cacheaux, René & Josh Berlin. Advanced iOS App Architecture, 2022 edition. Kodeco (raywenderlich.com), 2022 — see the publisher’s book page, with the official code bundle at kodecocodes/arch-materials. The updated edition of the above, additionally consulted for UIKit and AppKit Essentials and State and Data Flow with Observation, targeting Xcode 13.2.1 and Swift 5.5.2; its proprietary "Elements" layering pattern is a book-specific construct, not a documented Apple or industry-standard architecture, and is not reproduced here.

  • Catalan, Juan C. SwiftUI Cookbook, 3rd edition. Packt Publishing, December 2023. ISBN 978-1-80512-173-2 — see the publisher’s book page, with the official code bundle at PacktPublishing/SwiftUI-Cookbook-3rd-Edition. The narrative source for recipes across SwiftUI layout, lists, navigation, controls, drawing, persistence, security, widgets and multiplatform material, targeting Xcode 15 and Swift 5.9; it is the only book in this library that covers the @Observable macro, though it still leads with ObservableObject first.

  • Clayton, Craig & Donny Wals. Complete iOS 12 Development Guide. Packt Publishing, March 2019. ISBN 978-1-83864-379-9 — see the publisher’s book page, with the official code bundle at PacktPublishing/Complete-iOS-12-Development-Guide. The narrative source touched by the largest number of pages in this section — app architecture, concurrency, UIKit, Core Data, networking, background execution, notifications, App Intents, Apple Intelligence, location, camera, health, AR and distribution — targeting Xcode 10, Swift 4.2 and iOS 12; its GCD-only concurrency, pre- BGTaskScheduler background fetch, SiriKit intents extension and Core ML/Vision-only machine learning chapters are all superseded by the current APIs this section documents.

  • Ferrer García, Raúl. iOS Architecture Patterns. Apress, 2023. ISBN 978-1-4842-9068-2 (print), 978-1-4842-9069-9 (ebook) — see the publisher’s book page, with the official code repository at Apress/iOS-Architecture-Patterns. Consulted in its entirety for the MVC/MVP/MVVM/VIPER/VIP architecture comparison in App Architecture the Apple Way; its description of The Composable Architecture is a 2023 snapshot of a fast-evolving third-party library and is likely dated.

  • Gardner, Scott, Shai Mishali, Florent Pillet & Marin Todorov. Combine: Asynchronous Programming with Swift. Kodeco (raywenderlich.com), 2019 (updated 2020) — see the publisher’s book page, with the official code bundle at kodecocodes/comb-materials. Consulted in its entirety for Swift Concurrency in Apps, targeting Xcode 11 and the iOS 13 SDK; it presents Combine as the async solution for SwiftUI apps, a framing this section’s == Where Combine Stands section replaces with async/await/AsyncSequence as the default and Combine as a still-supported, no-longer-primary tool.

  • Grosch, Scott. watchOS With SwiftUI by Tutorials. Kodeco (raywenderlich.com), 2021 — see the publisher’s book page, with the official code bundle at kodecocodes/wos-materials. Consulted in its entirety for watchOS: App Structure, Connectivity, Workouts and the Smart Stack, plus its background-execution, notifications, widgets, health and security chapters, targeting Xcode 13.1 and Swift 5.5; it predates the Double Tap gesture, the Smart Stack, the @Observable macro, passkeys and WidgetKit-based complications, still describing complications through the superseded ClockKit framework.

  • Moon, Keith, Chris Barker, Daniel Bolella & Nathan Lawlor. Swift Cookbook, 3rd edition. Packt Publishing, May 2024. ISBN 978-1-80323-958-3 — see the publisher’s book page, with the official code bundle at PacktPublishing/Swift-Cookbook-Third-Edition. The narrative source for recipes touching concurrency, networking, UIKit interop, testing, ObservableObject-based observation, Apple Intelligence, AR and visionOS, targeting Swift 5.9; it predates Swift 6 strict-concurrency checking, uses XCTest rather than Swift Testing, and its visionOS chapter predates matured native volumetric APIs.

  • Neuburg, Matt. iOS 15 Programming Fundamentals with Swift, 8th edition. O’Reilly Media, October 2021. ISBN 978-1-098-11850-1 (print), 978-1-098-11849-5 (ebook) — see the publisher’s book page, with the official code repository at mattneub/Programming-iOS-Book-Examples. The narrative source for App Structure and Life Cycle and parts of Mixing Swift, Objective-C and C++ in an App and UIKit and AppKit Essentials, targeting Xcode 13 and Swift 5.5; its life-cycle chapter is UIApplicationDelegate-only and predates the scene-based life cycle, and its nib-file material predates SwiftUI-first guidance.

  • Pillet, Florent, Junior Bontognali, Marin Todorov & Scott Gardner. RxSwift: Reactive Programming with Swift, 1st edition. Kodeco (raywenderlich.com), 2017 — see the publisher’s book page, with the official code bundle at kodecocodes/rxs-materials. Consulted for the app-architecture, UIKit-table-view, networking, location and gesture material it parallels, targeting Xcode 8 and Swift 3.x; RxSwift/RxCocoa is a third-party reactive library whose adoption has declined sharply since Combine and async/await became available, so this section documents Apple’s own tools instead.

  • Sahar, Ahmad. iOS 17 Programming for Beginners, 8th edition. Packt Publishing, October 2023. ISBN 978-1-83763-056-1 (print), 978-1-83763-989-2 (ebook) — see the publisher’s book page, with the official code bundle at PacktPublishing/iOS-17-Programming-for-Beginners-Eighth-Edition. The narrative source for a broad span of beginner-level material — getting started, Xcode projects, SwiftUI views, lists, UIKit interop, SwiftData, preferences, networking, location, camera, visionOS, signing and App Store Connect — targeting Xcode 15, Swift 5.9 and iOS 17; its distribution chapter centres on the manual archive-and-upload flow to App Store Connect and introduces Xcode Cloud only briefly.

  • Scalzo, Giordano & Edgar Nzokwe. SwiftUI Cookbook, 2nd edition. Packt Publishing, October 2021. ISBN 978-1-80323-445-8 — see the publisher’s book page, with the official code bundle at PacktPublishing/SwiftUI-Cookbook-2nd-Edition. The narrative source for recipes across Xcode projects, concurrency, multiplatform apps, SwiftUI layout and navigation, Core Data, widgets, macOS and security, targeting Xcode 13 and iOS 15; its widget recipes predate widget interactivity and Live Activities, and its NavigationView-based navigation predates NavigationStack.

  • Selander, Derek. Advanced Apple Debugging & Reverse Engineering. Kodeco (raywenderlich.com), November 2017 — see the publisher’s book page, with the official code bundle at kodecocodes/dbg-materials. Consulted in its entirety for Debugging with Xcode and LLDB and, for its malloc/leak-logging chapter, Performance and Instruments, targeting Xcode 9.1 and 2017-era LLDB; its Python-scripting-API chapters need adaptation for the Python 3 LLDB shipped with Xcode 27, and its DTrace chapters describe a technique largely blocked today by System Integrity Protection, for which Instruments is Apple’s modern replacement.

  • Tsadok, Avi. The Ultimate iOS Interview Playbook, 1st edition. Packt Publishing, August 2023. ISBN 978-1-80324-631-4 (print), 978-1-80324-720-5 (ebook) — see the publisher’s book page. Consulted narrowly for its Apple-specific chapters — Swift packages and modularization, app architecture, UIKit interop, Core Data and preferences, and SwiftUI state and data flow — with no fixed target Xcode/Swift/iOS version; its interview and career-process chapters, and its generic (non-Apple) design-pattern review, are out of scope for this section.

On any discrepancy between this documentation and Apple’s docs, Apple’s current official documentation is authoritative; every code example in this section’s 48 pages targets Xcode 27, Swift 6.4 and the 27-generation SDKs (iOS/iPadOS/macOS/watchOS/visionOS 27) and was verified against that toolchain directly — not transcribed from any of the consulted books.