Mobile — iOS Native Development
Swift, SwiftUI, Xcode, and the full first-party iOS toolchain in 2026.
The iOS native stack in 2026 is settled: Swift 6 with strict concurrency, SwiftUI as the default UI layer (UIKit is now legacy-maintained), Swift Package Manager for dependencies, and SwiftData as the recommended persistence layer. For cross-platform paths see Mobile (Native) — RN/Expo, Flutter, Kotlin Multiplatform, and the Swift-to-Kotlin transpiler Skip. For wrapping a web app see Mobile Packaging.
The honest cost: Apple Developer Program is $99/yr to ship to the App Store or even TestFlight. Xcode itself is free, but you need a Mac.
Languages
- ★ Swift 6 — default language; strict concurrency mode (data-race safety) is on by default in new projects. Open source, Apache 2.0.
- Objective-C — still maintained for legacy interop and a handful of frameworks; almost no new code in 2026.
- C / C++ — interop for cross-platform cores; Swift's C++ interop matured significantly in Swift 5.9–6.
UI frameworks
- ★ SwiftUI — the default. Mature in 2026 after seven iOS releases; Observable framework (
@Observable) replacedObservableObjectfor state. Genuinely viable as the only UI framework in new apps. - UIKit — legacy-maintained; still required for some advanced gestures, custom transitions, deep
UICollectionViewuse, or apps that started before SwiftUI. - AppKit — macOS only; Catalyst lets you ship UIKit apps on Mac.
- Mac Catalyst — bring iPad apps to macOS with one extra target.
IDEs / editors
- ★ Xcode 16+ — Apple's IDE; required for App Store submission and final signing. Free.
- VS Code + Swift extension (Apple-published) — official LSP; great for headless / non-Apple-Silicon dev. Still need Xcode for signing and simulator.
- Cursor / VS Code forks + Swift LSP — popular for AI-assisted Swift in 2026.
- AppCode (JetBrains) — sunset 2022; do not start new projects on it.
- Tuist ★ — Swift-defined Xcode project generation; the most-recommended way to manage large multi-module Xcode projects without
.xcodeprojmerge conflicts. Free, MIT. - XcodeGen — older YAML-based project generation; still works.
Persistence / databases
- ★ SwiftData — Apple's Core Data successor (iOS 17+). The default for new apps in 2026. Macros over a Core Data backend; cleaner API; CloudKit sync built-in.
- Core Data — still fine for existing apps; not deprecated.
- ★ GRDB — best-in-class third-party SQLite library; reactive (
ValueObservation), type-safe, mature. Use this if SwiftData's constraints don't fit. MIT. - Realm — MongoDB-owned object database; free SDK, Atlas Sync is paid. Mature but hitch-prone on writes.
- SQLite.swift — simpler SQLite wrapper; fine for small apps.
- See Mobile — Databases & Storage for the full picture.
Networking
- ★ URLSession + async/await — the default since Swift 5.5. You rarely need anything else.
- Alamofire — classic HTTP library; less essential now that URLSession has async/await.
- Moya — declarative network layer on top of Alamofire; good for type-safe API clients.
Concurrency
- ★ Swift Concurrency (
async/await,Task, actors) — the default. Strict mode in Swift 6 catches data races at compile time. - Combine — Apple's reactive framework; still maintained but less used in new code now that AsyncSequence + Observation exist.
Distribution
- ★ TestFlight — beta distribution; up to 10k external testers; free with Apple Developer Program.
- App Store Connect — release management, analytics, metadata.
- Apple Developer Program — $99/yr for individuals & organizations; Enterprise is $299/yr (in-house only, no public store).
- EU DMA / AltStore PAL — since 2024 the EU permits third-party app stores; AltStore PAL is the most-watched alternative marketplace (€1.50/yr Core Technology Fee per install above 1M still applies as of 2026).
- Ad-Hoc / Enterprise — non-store distribution for limited devices or in-house apps.
Testing
- ★ Swift Testing (
@Test) — newer macro-based framework introduced in Xcode 16; replacing XCTest for many teams. Better parallelism, parametrized tests. - XCTest — still fully supported; required for UI tests via XCUITest.
- XCUITest — UI tests via accessibility identifiers.
- Quick + Nimble — BDD-style; less common in Swift Testing era.
- swift-snapshot-testing (Point-Free) — snapshot tests for SwiftUI / UIKit.
- See Mobile — Testing Frameworks and Mobile — Snapshot Testing.
Privacy / compliance
- Privacy Manifests (
PrivacyInfo.xcprivacy) — required since 2024 for SDKs and apps using "required reason APIs." Not optional. - App Tracking Transparency (ATT) —
AppTrackingTransparencyframework for any cross-app tracking. - App Privacy — declared in App Store Connect; data collection labels.
Build tools
- ★ Swift Package Manager (SPM) — the default for new projects in 2026; binary targets, plugins, resources, all stable.
- CocoaPods — legacy-maintained; the long-running
pod installis mostly being replaced. - Carthage — sunset path.
Pick this if…
- New iOS-only app: Swift 6 + SwiftUI + SwiftData + SPM, Xcode 16, TestFlight.
- Need shared logic with Android: see Kotlin Multiplatform or Skip.
- Multi-module / multi-target app: add Tuist.
- Existing UIKit app: stay on UIKit; adopt SwiftUI incrementally with
UIHostingController. - Don't want to pay $99/yr or own a Mac: consider Mobile Packaging or PWA — but App Store requires both.