Build
Connect & operate
Design & teams
Start hereScope a build in one callBring a spec, a wireframe, or a paragraph. You leave with an architecture, a timeline, and a number.Book a scoping call
AI software
LLM & data systems
Vibe coding
Ready to ship?Put AI where the work isAgents, RAG, and private LLMs wired into the systems your team already uses — not a chatbot bolted to a homepage.Discuss an AI project
Domain firstWe learn your workflow before we model itRegulated, operational, or high-volume — the constraints belong in the schema, not in a training doc.Talk about your domain
Plan smarterEstimate before you commitCost ranges, scope templates, and the questions we ask in discovery — free, no form.Open the cost calculator
Real conversationsTalk with a technical leadNo SDR, no discovery gauntlet. The person on the call is the one who scopes the build.Book a call
Swift · SwiftUI · App Store

iOS app development,
built by an iOS developer team that owns the App Store submission too.

Swift and SwiftUI, written for the platform Apple actually ships — not a cross-platform layer that happens to run on an iPhone. That matters most when the product depends on something only iOS exposes cleanly: ARKit, HealthKit, a Watch companion, Sign in with Apple, StoreKit subscriptions, or a widget that has to feel native because it sits on the home screen next to Apple's own. Where a shared codebase is the honest answer instead, we'll say so and point you to our broader mobile page rather than sell you a native rebuild you don't need.

Talk to an iOS developer How engagements work
Swift and SwiftUI, not a wrapped web viewApp Store submission and resubmission handled end to endBuilt for the next major iOS release, not just this one

6–10 wks

Typical iOS MVP

One core workflow, App Store submission included

100%

Senior engineers, US-based

No offshore handoff mid-build

Every sprint

A build you can install on a device

Not a status deck between milestones

100%

Code and Apple Developer account yours

From the first commit

The platform decision

Native Swift, or a cross-platform framework that reaches iOS

This page is about the iOS-specific case for going native. If you're weighing native against React Native or Flutter as a general question, /mobile covers that decision in full — the short version for iOS specifically is below.

Swift and SwiftUI

Full access to whatever ships on iOS first — ARKit, HealthKit, widgets, Live Activities, a watchOS companion — with no bridge layer to work around. The cost is a codebase that only targets Apple's platforms, so it's the right call when the product's value depends on something the OS exposes, not a feature bolted on afterward.

React Native for a shared iOS/Android codebase

One JavaScript codebase reaching both stores, with a native-module escape hatch for the pieces that need it. The right trade when the interface matters more than squeezing the last frame out of the GPU, and when the team is already React-fluent. See /mobile for the fuller comparison against Flutter and native.

Objective-C in an existing codebase

Older iOS apps still run substantial Objective-C, and a full Swift rewrite isn't always the right first move. Swift and Objective-C interoperate in the same project, so the more common path is incremental — new features in Swift, legacy code migrated file by file as it's touched anyway.

Universal apps: iPhone, iPad, and beyond

SwiftUI's layout system makes a genuinely adaptive iPhone-and-iPad interface realistic rather than a phone screen stretched wider. Whether Mac Catalyst or a visionOS build is worth adding depends on whether those platforms are actually part of the product's audience, not on Apple offering the checkbox.

None of these are free to reverse. Moving from a cross-platform build to native — or discovering mid-project that a required capability isn't reachable from React Native without a custom native module — is closer to a second build than a refactor, which is why the decision belongs before the first sprint, not after the first blocker.

What's involved

iOS engagement types

The variable that moves an iOS build's scope isn't screen count — it's how much of the app depends on a platform capability (HealthKit, ARKit, StoreKit, a Watch companion) versus a straightforward CRUD interface, and whether it needs to work offline.

EngagementCommitmentTimelineWhat's included
iOS MVPFixed scope6 – 10 weeksOne core workflow, Swift/SwiftUI, backend integration, and App Store submission for the first release.
Full iOS buildFixed scope12 – 18 weeksMultiple workflows, offline sync, push notifications, and platform integrations like Sign in with Apple or StoreKit subscriptions.
React Native to native migrationFixed scope8 – 14 weeksRebuilding the iOS side natively once a cross-platform build hits a ceiling a bridge layer can't clear.
App Store rescue or resubmissionFixed scope1 – 4 weeksA rejected or stalled submission diagnosed and fixed against Apple's actual review notes.
Apple ecosystem integrationFixed scope3 – 8 weeksHealthKit, ARKit, a watchOS companion app, or a widget added to an existing iOS codebase.
Ongoing iOS maintenanceOngoing retainerOngoingYearly iOS upgrades, deprecated API replacement, crash monitoring, and SDK version bumps Apple eventually requires.

Ranges assume US-based senior engineers and include QA, device testing across current iPhone models, and App Store submission rather than quoting them separately. A quote well under these bands is usually missing offline handling or the maintenance year that follows launch — that cost doesn't disappear, it just shows up later as a change order.

App Store review

Apple's review is a real gate, not a formality

Treating a launch date as fixed before an app has actually cleared review is how a finished build becomes a missed date — and review isn't a one-time event, since every update after v1 goes through the same gate.

Review timing and rejection resets

Apple's review typically clears in 24 to 48 hours, but a rejection resets the clock, and reasons range from a broken login flow to subscription-language guidelines that have nothing to do with the code itself. A buffer week ahead of any date promised to a stakeholder isn't padding — it's the honest schedule.

Privacy nutrition labels are checked against real traffic

Apple's privacy label asks you to declare exactly what the app collects and why, and reviewers spot-check that declaration against the network traffic the build actually generates. A third-party analytics SDK collecting device identifiers nobody remembered is the kind of mismatch that gets a build rejected on the second look.

In-app purchases are a second review track

Any subscription flow gets reviewed against pricing display rules, restore-purchase requirements, and Apple's external-payment-link policy — stricter than most first-time submitters expect. Budget it as its own pass, not something bundled into the main submission.

TestFlight is how you find the crash before Apple does

A TestFlight beta ahead of the public release catches the issue that only shows up on a specific iPhone model or iOS version. Skipping it to save a week is the most common cause of the one-star reviews that show up in the first week after launch.

Where iOS earns its own codebase

Apple ecosystem APIs a cross-platform layer can't reach cleanly

This is the specific case for native iOS, not a general argument against React Native or Flutter — /mobile covers the framework decision on its own terms.

HealthKit and health data

Reading or writing to Apple Health requires entitlements and user consent flows that are iOS-specific by design. A health or fitness product built around HealthKit is a native iOS decision from the start, not an integration bolted on later.

ARKit

Augmented-reality features — object placement, body tracking, scene reconstruction — run through ARKit's native APIs. Cross-platform AR libraries exist, but they trail ARKit's capability on iOS specifically by a meaningful margin.

Apple Watch companions

A watchOS app is its own target with its own interface constraints, built alongside — not instead of — the iPhone app. It's a native-only surface; there's no cross-platform path onto Apple Watch.

Sign in with Apple and StoreKit

Sign in with Apple is required by App Store guidelines whenever another third-party login is offered, and StoreKit governs in-app purchases and subscriptions. Both are well-supported in React Native via native modules, but they're iOS platform requirements either way.

Widgets and Live Activities

Home-screen widgets and Dynamic Island Live Activities run as separate app extensions built in SwiftUI, regardless of what the main app is written in. A React Native app can ship a native-Swift widget extension alongside it.

Universal iPhone and iPad layouts

SwiftUI's adaptive layout system makes a genuinely different iPad experience — not a stretched phone screen — realistic within one codebase. Getting this right is one of the more common places a first iOS build under-scopes the design work.

After launch

iOS maintenance is a yearly commitment, not a one-time cost

Apple ships a major iOS version every September, and it deprecates APIs on a schedule outside anyone's control. Shipping v1 is roughly half the lifetime cost of an iOS app; the maintenance that follows is the other half.

Target SDK requirements are enforced, not optional

An app that stops building against a current iOS SDK within roughly a year gets flagged for developers, then can be removed from the App Store. Maintenance isn't a nice-to-have on iOS — it's a requirement for staying listed.

Device and OS coverage narrows the testing matrix

iOS has less device fragmentation than Android, but a device lab still matters more than a bigger simulator fleet — thermal throttling, real GPS drift, and background app-refresh behavior only show up on physical hardware a couple of OS versions behind current.

Battery and frame-rate issues are the reviews you actually get

Users rarely leave a review about a missing feature; they leave one when a screen stutters or the battery drains faster than expected. Profiling on a mid-range iPhone, not just the newest model, is what keeps that review from happening.

Related

Related services

What iOS projects usually connect to.

Questions

Common questions about iOS development

What teams ask before a first call.

It depends on whether the app is a single-workflow MVP, a full build with several platform integrations, or an ongoing maintenance engagement after launch — an iOS MVP is the smallest of these, and a build with HealthKit, ARKit, or a Watch companion is larger. Integration count and whether the app needs to work offline move a quote more than screen count does.

A scoping call produces a real figure faster than any range on a page would, and it's the fastest way to find out which category your project actually falls into.

Not sure whether this needs to be native yet?

Thirty minutes with an iOS engineer, before anything is scoped. You'll leave knowing whether Swift, React Native, or a smaller first release is the honest answer for your product, and roughly what a real build and its first maintenance year involve — whether or not you build it with us.