§
§ · ios app development

iOS app development, five rings deep.

A Swift-6 + SwiftUI-first iOS practice for DTC, SaaS, fintech, and health brands shipping native iPhone, iPad, and visionOS apps with Live Activities, Widgets, App Clips, and the Apple platform surface done right.

§ 01 · five platform rings

Shipping on iOS is always about finding the right depth in Apple's stack.

Every iOS app lives somewhere on a five-ring stack. The outer ring is App Store submission and signing. Inside that, SwiftUI with the platform affordances only it exposes (WidgetKit, Live Activities, App Clips, visionOS volumes). Inside that, UIKit still bridges the edge cases. Deeper, Foundation and the specialized frameworks (HealthKit, StoreKit 2, CoreML, CloudKit). And at the core, your app's domain logic in Swift 6. Knowing which ring each feature lives in tells you how much of Apple's platform you are earning.

ring 01 · app store

Review queue, signing, provisioning, privacy labels, TestFlight. Every shipped iOS app passes this ring.

ring 02 · swiftui

Declarative UI, Widgets, Live Activities, App Clips, focus filters, visionOS volumes. Default for new builds.

ring 03 · uikit bridge

Still needed for complex collection views, legacy interop, some framework edges. Clean SwiftUI interop.

ring 04 · frameworks

HealthKit, StoreKit 2, CoreML, CoreLocation, CloudKit. Where Apple-platform apps earn their feel.

ring 05 · swift 6

Your domain. Strict concurrency, actors, async/await. Non-negotiable for 2026 builds.

the depth test

Count how many rings your app uses. Apps that use only rings 1-2 could be React Native. Apps using 3-5 are genuinely native.

§ 02 · swiftui vs uikit

SwiftUI first, UIKit where proven.

SwiftUI in 2026 has reached production maturity. Every Apple-platform affordance shipped since 2020 (Widgets, Live Activities, App Clips, visionOS, focus filters) is SwiftUI-only or SwiftUI-first. UIKit still handles specific edge cases cleanly through UIViewRepresentable and UIHostingController. The table below names when each framework wins.

needSwiftUI (default)UIKit (where)
navigationNavigationStack, NavigationSplitViewlegacy UINavigationController integration
lists + collectionsList, LazyVGrid, LazyVStackUICollectionViewCompositionalLayout edge cases
widgets + live activitiesSwiftUI onlynot applicable
app clipsSwiftUI onlynot applicable
visionOSSwiftUI + RealityKitnot applicable
complex video or ARSwiftUI + UIViewRepresentable wrappingAVKit, ARKit bridged
§ 03 · the platform rings, in motion

Five rings down. One app.

Fig. 1 · platform rings · five rings, one app
§ 04 · the apple platform surface

The features that make iOS apps feel native.

Every iOS app has an icon and a screen. What separates a port from a native-feeling app is the platform surface it uses. Live Activities on the Lock Screen. Widgets on Home Screen and Today View. App Clips for first-use-before-install. HealthKit for genuinely-owned health data. The list below is the platform surface we ship when a brand's use case earns it.

Editorial Apple platform framework map with concentric rings radiating outward from a central amber your-app core, through Foundation and CoreData, SwiftUI and UIKit, HealthKit and StoreKit and CoreML, CloudKit and WidgetKit and ActivityKit, and an outermost App Store Review ring.
Fig. 2 · the concentric framework surface · Apple's platform, drawn
live activities

Ongoing real-time updates on Lock Screen + Dynamic Island. Orders, rides, matches, workouts.

widgets

Home Screen + Today View + StandBy + Lock Screen widgets via WidgetKit and ControlWidget.

app clips

Launch-without-install flows for point-of-sale, parking, menus, one-tap use cases.

healthkit

Read + write health data with user permission. Workouts, heart rate, mindfulness, sleep.

coreml

On-device ML: image classification, text recognition, sound classification, custom models.

storekit 2

In-app purchases and subscriptions. Swift-native API, signed transaction receipts, family sharing.

cloudkit

iCloud-backed sync across user devices. Public and private databases, no server needed.

visionos

Spatial volumes, RealityKit content, Look-to-Dwell. When the brand fits spatial computing.

§ 05 · testing + testflight

XCTest + Swift Testing. TestFlight for real users.

Three layers of confidence. Swift Testing (the newer replacement for XCTest) for unit tests on pure logic, view models, and async code. UI tests with XCUITest for critical user flows. TestFlight for real-user beta distribution with up to 10,000 external testers, crash reporting, and per-version feedback. Every build runs through CI (Xcode Cloud or GitHub Actions) before distribution.

§ 06 · performance SLA

Launch time and 120 Hz scroll.

metrictargetnote
cold launch< 1.5siPhone 12 + newer
warm launch< 400msin-process resume
scroll fps120 fpsProMotion-capable devices
binary size< 35 MBthinned IPA
crash-free> 99.8%30-day rolling
§ 07 · proof

Two archetypes. One health, one fintech.

archetype 01 · health tracker

Native iOS with HealthKit + widgets.

Health and fitness tracker with HealthKit integration for workouts, heart rate, sleep. WidgetKit for Home Screen and Lock Screen. Live Activities for in-progress workouts. SwiftUI + Swift 6. 16 weeks.

rating
4.9
App Store
DAU
68K
12mo post
launch
1.2s
cold iPhone 14
archetype 02 · fintech consumer

iOS-first fintech with Live Activities.

Consumer fintech app, iOS launched first. Live Activities for transfers in progress. Apple Pay integration, Sign in with Apple, biometric auth via LocalAuthentication, Secure Enclave. 18 weeks.

rating
4.8
App Store
MAU
210K
year 1
crash-free
99.91%
30d
§ 08 · engagement + fit

Four shapes. Audit names the right one.

shape 01

Readiness audit.

2 weeks. Platform surface, Swift 6 path, review pre-check. Refundable.

shape 02

iOS MVP.

10-16 weeks. SwiftUI + Swift 6 + store submit.

shape 03

Full build.

14-22 weeks. Live Activities, Widgets, Clips, HealthKit, IAP.

shape 04

Universal + visionOS.

16-26 weeks. iPhone + iPad + visionOS one codebase.

right fit
  • You use 3+ of the five platform rings (SwiftUI, frameworks, custom Swift)
  • Apple-specific affordances matter (Live Activities, Widgets, HealthKit)
  • iOS is the primary platform for year one
  • Premium user feel and App Store polish are differentiators
wrong fit
  • ×Need Android at the same time with shared codebase; see React Native
  • ×Mostly web content wrapped as app; a PWA is cheaper
  • ×No Apple Developer budget; $99/year membership is required
§ 09 · questions

Eight answers.

Should we build native iOS or use React Native / Flutter?

Three signals favor native iOS. One, your app depends on Apple-platform affordances (Live Activities, Widgets, App Clips, HealthKit, CoreML, visionOS) where cross-platform frameworks either do not support them or support them poorly. Two, the iOS experience is the primary differentiator and pixel-perfect native feel matters more than cross-platform parity. Three, you are iOS-only for the first year and plan to cross-platform later, in which case native buys you time to validate before the cross-platform cost. Otherwise, React Native or Flutter with native modules covers 80 percent of use cases. We build all three; the decision is about what your app does, not about our preference.

How much does a native iOS app cost in 2026?

US and UK senior iOS engineers are $160 to $220 per hour at boutique agencies; Indian senior iOS engineers are $100 to $150 per hour. A Swift 6 + SwiftUI MVP with 15 to 25 screens, auth, push, and store submission runs 10 to 16 weeks. A full production iOS app with Live Activities, Widgets, App Clips, HealthKit, in-app purchases, and CloudKit sync runs 14 to 22 weeks. An iPhone + iPad + visionOS build from one shared codebase runs 16 to 26 weeks. A 2-week audit is refundable. Scoped quote in 48 hours.

SwiftUI or UIKit in 2026?

SwiftUI for new builds, always. UIKit for specific edge cases. SwiftUI in 2026 has reached production maturity: the framework handles navigation (NavigationStack), lists at scale (List with Identifiable data), collection-view-equivalent layouts (LazyVGrid, LazyHGrid), animations, custom shape work, and the platform-specific surfaces (Widgets, Live Activities, visionOS) that are SwiftUI-only in the first place. Edge cases where UIKit still wins: very complex collection views with fine-grained cell reuse needs, legacy codebases still in UIKit where mixing adds more cost than it saves, and some specific framework integrations that have not caught up. For new builds: SwiftUI first, UIKit bridge only where proven necessary.

What's required for App Store submission in 2026?

Apple Developer Program membership ($99/year) under your legal entity, App Store Connect app record, provisioning profiles and signing certificates (we manage these via Xcode Cloud or manual signing), app icons in every required size, screenshots for every device size you claim to support (iPhone 15 Pro Max, iPhone SE, iPad Pro 12.9, iPad Pro 11), App Privacy label describing every data type collected, Data Safety disclosure, privacy policy URL, support URL, and an App Review Information contact. The first submission typically takes 1 to 3 days of review. Rejection rate has gone up since 2024's stricter guidelines; we run a guideline pre-check before submitting to catch the common failures (account deletion flow, subscription disclosures, privacy manifest).

How do you handle StoreKit 2 and in-app purchases?

StoreKit 2 is the default for any new iOS build. Swift-first API, async/await, JWS-signed transaction receipts verified directly, no need for a third-party receipt validation service. We implement subscription products, non-consumable and consumable purchases, intro offers, promotional offers, and family sharing entitlement handling. Backend receipt validation goes through Apple's App Store Server Notifications V2 for real-time events. For brands shipping hybrid (Apple + Google Play + web) we abstract the purchase layer so the core subscription logic is platform-agnostic.

Do you support visionOS and iPad adaptations?

Yes. For brands shipping a universal app (iPhone + iPad + visionOS), SwiftUI lets us share most of the codebase with per-platform adaptations via platform-specific modifiers and availability checks. iPad-specific affordances (split view, slide over, sidebar navigation, pointer interactions, hardware keyboard shortcuts) get dedicated treatment. visionOS work adds 3D volumes, spatial audio, and Look-to-Dwell interactions; we scope visionOS as an add-on to an iPhone/iPad build when the brand's use case fits spatial computing.

How do you handle Swift 6 strict concurrency?

Swift 6 strict concurrency is non-negotiable for new builds. We enable complete concurrency checking, use @Sendable and @MainActor annotations correctly from the start, and design the data layer around actors. Async/await is the default for any I/O. The first 2 weeks of a new engagement include a concurrency architecture pass where we decide which actors own which state. Teams new to Swift 6 sometimes find this a slower start; the payoff is zero data races and a codebase that compiles cleanly on every future Swift version.

Who owns the Apple Developer account, signing, and codebase?

You do. Apple Developer Program membership under your legal entity. Signing certificates and provisioning profiles managed in your developer account; we access as added team members, removable any time. GitHub repository under your organization from day one. TestFlight beta group and App Store Connect access under your control. On exit: credentials rotated, repository transferred, Xcode Cloud or CI configuration documented, 30-day support tail. No lock-in.

Start with a readiness audit.

Two weeks. Platform surface, Swift 6 migration, App Store review pre-check. Refundable. Scoped quote in 48 hours.