When a business decides to launch an iOS app, the first question isn't "which features" but "what do we build it with". The technology choice determines the budget (up to a 2x difference), the timeline, how easy it is to hire developers, and the cost of support for years to come. The wrong stack at the start means adding 30–50% to the budget for a rewrite a year later.
This article is an honest comparison of three approaches: native Swift, cross-platform Flutter and React Native. No fanboyism, just numbers and recommendations for specific scenarios.
smartphones worldwide
vs Android
iOS app MVP
Three approaches to iOS app development
Let's start with the terminology, because the confusion here is enormous.
Native development (Swift). The app is written in Apple's language, Swift (or the legacy Objective-C), with native frameworks (UIKit, SwiftUI). It runs only on iOS, iPadOS and macOS. You get the highest performance and full access to every device API.
Cross-platform development (Flutter). One codebase produces apps for iOS and Android at the same time. The language is Dart. Flutter has its own rendering engine (Skia/Impeller) that draws every pixel itself instead of using native UI components. The result: an identical look on both platforms.
Cross-platform development (React Native). One codebase for iOS and Android. The language is JavaScript/TypeScript. Unlike Flutter, it uses native UI components through a "bridge". The result: the app looks native on each platform, but the bridge architecture comes with limitations.
Swift: the native approach
When to choose it
An iOS-only app. If you don't need Android (or it will come later, built by a separate team), native Swift gives the best result for the same budget.
High performance requirements. AR/VR (ARKit), 3D graphics (Metal), complex animations, real-time video processing. Native frameworks deliver 100% of the device's performance; cross-platform ones deliver 85–95%.
Deep integration with the Apple ecosystem. Apple Watch, AirPods, CarPlay, HomeKit, HealthKit, NFC, Siri Shortcuts. Cross-platform frameworks support the basic APIs, but the advanced ones come with limitations or workarounds.
A long lifecycle. If the app will keep evolving for 3–5+ years, native Swift is easier to maintain. When Apple ships new APIs, a native app gets them on release day; a cross-platform app waits 1–6 months for the framework to catch up.
Technical details
SwiftUI vs UIKit. SwiftUI is a declarative framework (similar to Flutter or Compose); UIKit is the classic imperative one. In 2026 SwiftUI is mature and fits most tasks. UIKit is for complex custom interfaces and legacy projects. New projects should start on SwiftUI.
Developer cost. An in-house mid-level iOS developer costs from $10,000/month fully loaded, and outsourced iOS hours are priced higher than Flutter or React Native ones. The pool of iOS developers is narrower than the Flutter and React Native pool, which affects how fast you can hire and what you pay.
Flutter: one codebase, identical UI
When to choose it
You need iOS and Android at the same time. One codebase, one team, one budget. Savings: 30–40% compared with two native apps. With a budget under $35K, it's often the only way to ship both apps.
A custom UI. Your own design, not tied to platform guidelines. Flutter draws everything itself, so you can build any interface. Animations, gradients and non-standard elements work out of the box.
A fast MVP. Hot reload (instant refresh when you change the code) speeds development up by 20–30%. One developer can ship an MVP for both platforms in 2–3 months.
Startups on a tight budget. One Flutter developer replaces an iOS developer and an Android developer. If your mobile app budget is $9.9K–$17K, Flutter is the best fit. More on building an MVP in our article "How to launch an MVP".
Technical details
Dart. A language from Google. Easy to pick up for developers with Java, C# or JavaScript experience. Strong typing, null safety, good tooling. The downside: a smaller community and fewer libraries than JS or Swift.
Performance. Dart compiles to native ARM code. For most tasks it's indistinguishable from native. Problems show up with complex lists full of heavy graphics, camera and video work (you need native plugins), and heavy Metal/OpenGL work. For 95% of business apps, Flutter's performance is enough.
Developer cost. An in-house mid-level Flutter developer costs around $10,000/month fully loaded, and outsourced Flutter rates are usually a bit lower than iOS rates. The market is growing fast, and a Flutter developer is easier to find than an iOS specialist.
React Native: JavaScript for mobile
When to choose it
Your team already knows JavaScript/React. If you have React web developers, the switch to React Native is small. Reusing 30–50% of the code between web and mobile (business logic, API clients, data types) is realistic.
The app is a "wrapper" around a web service. Catalogs, news feeds, dashboards, CRM interfaces: jobs without heavy graphics or animations. React Native handles them very well.
Fast time to market. OTA (over-the-air) updates let you update the JavaScript part of the app without publishing a new version to the App Store. A bug in production? The fix ships in 5 minutes, not after 1–3 days of Apple review.
Technical details
New Architecture (Fabric + TurboModules). In 2024–2025 React Native moved to the new architecture and dropped the asynchronous "bridge", the main cause of its performance problems. The result: performance is now close to Flutter, but the plugin ecosystem is still migrating.
Expo. A framework on top of React Native that simplifies development: managed builds, OTA updates, ready-made modules for the camera, geolocation and push notifications. Expo is enough for 80% of apps. For the remaining 20% (custom native modules), you'll have to step outside Expo.
Developer cost. An in-house mid-level React Native developer costs around $10,000/month fully loaded. The JavaScript talent pool is the largest, so React Native specialists are the easiest to find. But "knows React" doesn't mean "knows React Native": mobile development has its own specifics.
Comparison: Swift vs Flutter vs React Native
A summary to help you decide:
Performance. Swift: 10/10 (native). Flutter: 9/10 (compiles to ARM). React Native: 8/10 (JavaScript plus a bridge, improved in the New Architecture).
Development cost (iOS + Android). Swift: from $13K (iOS only; Android is a separate build). Flutter: from $9,900 (both platforms). React Native: from $9,900 (both platforms).
MVP timeline. Swift: 2–4 months (iOS only). Flutter: 2–3 months (both platforms). React Native: 2–3 months (both platforms).
Access to native APIs. Swift: 100%. Flutter: 90% (through plugins). React Native: 85% (through modules).
Hot reload. Swift: available in SwiftUI previews (limited). Flutter: yes, full. React Native: yes, full, plus OTA updates.
Developer talent pool. Swift: medium. Flutter: growing. React Native: large (the JS ecosystem).
Bottom line: for business apps (CRM, catalog, e-commerce, service apps), go with Flutter or React Native. For performance-critical apps (AR, video, games), go with Swift. For companies with a React team, React Native. For startups building from scratch, Flutter.
How much does an iOS app cost?
(3–5 screens, basic features)
(10–20 screens)
(integrations, real-time)
What drives the cost:
Number of screens. Each unique screen costs $500–1,700 (design, development and testing). An MVP with 5 screens is $2,500–8,500 for the UI alone. A complex screen (a map, a chat, a video call) is $1,700–5,000.
Backend. If an API already exists, the app simply connects to it. If not, building the backend doubles the cost. For an MVP, Firebase or Supabase (BaaS) saves $1,700–3,300 at the start. For a serious product, a custom backend (Node.js, Python, Go).
Design. A basic UI (standard components): $1,700–3,300. A custom design with animations: $5,000–13,000. Don't cut corners on design: bad UX kills conversion. More in our article "UI/UX design for business".
Integrations. Payments (Stripe, PayPal or your bank's gateway): $1,000–2,700. Push notifications: $500–1,000. Analytics: $350–700. Chat or messaging: $1,700–6,700. Each integration is a separate budget line.
Publishing. Apple Developer Program: $99/year. App Store review: 1–7 days (and it may ask for changes). The first release takes $350–1,000 to prepare screenshots, descriptions and ASO.
For more on costs, see our article "How much does a mobile app cost". To get an estimate for your project, see our mobile app development services.
The development process: from idea to the App Store
FAQ
Can you build an iOS app with React/JavaScript?
Yes, with React Native. Your JavaScript/TypeScript code ships as a native iOS app. For most business tasks, the result is indistinguishable from native. The limits: AR/VR, heavy graphics and deep integration with the Apple ecosystem, where Swift is the better choice.
How much does iOS app support cost after launch?
Basic support (bug fixes, updates for new iOS versions): $1,000–2,700/month. Ongoing development (new features, improvements): $2,900–$6,900/month. Apple releases a major iOS update every year, so budget at least $1,700–3,300 a year for adaptation. Cross-platform frameworks (Flutter, React Native) usually catch up within 1–3 months of a new iOS release.
Do you need a Mac to develop iOS apps?
For native Swift, yes, no way around it (Xcode runs only on macOS). With Flutter and React Native you can develop on Windows or Linux, but to build the iOS binary and publish it to the App Store you still need a Mac (or a cloud build service such as Codemagic or Bitrise). If you go cross-platform, you need the Mac only for building and testing.
Flutter or React Native: which to choose in 2026?
Flutter: if you need a custom UI, the team is ready to learn Dart, and the project starts from scratch. React Native: if the team knows JavaScript/React, you need to reuse code from the web version, and OTA updates matter. In 2026 their performance is roughly equal. React Native has a slightly larger community (thanks to the JS ecosystem). Flutter is slightly faster to develop with (hot reload plus widgets out of the box).
How does Apple's review work, and what gets rejected?
Apple's review takes 1–7 days. Typical reasons for rejection: the app is just a wrapper around a website (minimal native functionality), no privacy policy, requests for unnecessary permissions (camera or location without a clear reason), bugs found during testing, violations of the Human Interface Guidelines. Prepare your first submission with an experienced developer: it saves 1–2 weeks of resubmissions.



