iOS reaches a large, still-growing market. Apple's active install base passed 2.5 billion devices, iPhones, iPads, Macs, and Apple Watches combined, in the quarter ending January 2026, according to Apple's own earnings report, as covered by AppleInsider. Globally, iOS holds roughly 31.6% of the mobile operating system market
Building for the iOS user base is potential, but also requires working inside Apple's toolchain and App Store review process. And, the programming language a team picks determines how directly the app can reach Apple's native tools and new platform features
This article compares all five languages, explains when each one fits, and covers what a business needs to know before committing an iOS project to one of them.
| Swift | Objective-C | C# | Dart | JavaScript | |
|---|---|---|---|---|---|
| Native or Cross-Platform | Native | Native |
Cross-platform (.NET MAUI) | Cross-platform (Flutter) | Cross-platform (React Native) |
| Apple Toolchain Support | Yes, official (Xcode, UIKit, SwiftUI) | Yes, still supported | Via .NET MAUI tooling | Via Flutter SDK | Via React Native CLI |
| Learning Curve | Moderate | High | Moderate | Moderate | Moderate |
| Performance | High | High | High | Moderate to high | Moderate |
| Best For | Most new native iOS apps | Maintaining older, pre-2014 iOS codebases | Teams already on .NET, one codebase | One codebase across iOS and Android with native-like performance |
Teams with existing JavaScript/ React skills, one codebase |
| Typical Hourly Rate (Vietnam market) | $15-$60 | $30-$45+ | $15-$45 | $18-$40 | $20-$40 |
Rates are for Vietnam-based developers working remotely for international clients.
Swift
Swift is Apple's official language for iOS, iPadOS, macOS, watchOS, and visionOS development, first released in 2014 as a modern replacement for Objective-C.
According to the 2025 Stack Overflow Developer Survey, Swift is used by 5.4% of all professional developers surveyed, a meaningful share for a language scoped almost entirely to Apple's platforms, not general-purpose, cross-industry use. Three parts of the modern Swift toolchain explain why it's the default choice for new iOS projects:
-
SwiftUI
SwiftUI is Apple's declarative UI framework, meaning the interface is described as a function of the app's current state rather than built through manual view updates. Apple introduced SwiftUI in 2019 and now recommends it for most new interface work.
Also, there is UIKit, the older, imperative UI framework, remains fully supported and still underlies a large share of production iOS apps, including parts of apps that also use SwiftUI.
-
Swift concurrency
Swift concurrency is Swift's structured approach to asynchronous code, built around async/await and actors. Swift 6, released in September 2024, added strict concurrency checking to turn data-race bugs into compiler errors instead of runtime crashes. It catches a category of bug at build time that used to surface only in production.
-
ARC (Automatic Reference Counting)
ARC is Swift's memory-management model, tracking how many active references point to an object and deallocates that object automatically once the count reaches zero. So a developer doesn't need to manually free memory while avoiding the pause times of a garbage collector.
Limitations:
- Swift development requires a Mac running Xcode;
- The hiring pool is narrower than for a general-purpose language like JavaScript or C#, since Swift skills transfer mainly within Apple's ecosystem.
- Migrating a large, older Objective-C codebase to Swift is a multi-year undertaking for bigger apps, not a quick rewrite.
- Adopting Swift 6's strict concurrency checking on an existing codebase means resolving every flagged data-race warning before the build passes.
Example case applied Swift: Kickstarter's iOS app is open source, with its full Swift codebase published on GitHub, a directly verifiable example of a production Swift app.
Objective C
Objective-C was created in the early 1980s by Brad Cox and Tom Love, who added Smalltalk-style object-oriented features on top of the C language. It reached Apple through Apple's 1996 acquisition of NeXT, whose NeXTSTEP operating system was built on Objective-C.
Objective-C remained the primary language for iOS development from the App Store's 2008 launch until Swift's introduction in 2014. Objective-C's real-world use has fallen sharply since Swift's release, but the decline doesn't mean Objective-C is irrelevant. It remains fully supported by Xcode and interoperates directly with Swift, so a team can call Objective-C code from Swift and vice versa in the same project.
Objective-C is commonly used to maintain older iOS codebases, apps first built before 2014 that were never fully rewritten. A business inheriting a pre-Swift iOS app, or acquiring one through a merger, is the most likely reason to need Objective-C expertise these days. Starting a brand-new project in Objective-C is far less common.
Limitations:
- Objective-C's syntax is more verbose than Swift's.
- Fewer new developers learn Objective-C, which narrows the hiring pool mostly to senior engineers who worked with it before 2014.
- Apple builds new frameworks as Swift-first or Swift-only, SwiftUI among them, so an Objective-C codebase increasingly needs Swift interoperability to reach current-generation Apple capabilities.
>> Read more: The Real Difference Between Native and Hybrid App Development
Popular apps built with Objective-C: VLC for iOS, the open-source video player, is a real example of a mixed codebase mid-migration rather than a purely historical one. Its public GitHub repository currently shows the app at roughly 45% Objective-C and 47% Swift, with VLCKit, the underlying libvlc wrapper it depends on, still written in Objective-C.
C#
C# can be used in building iOS apps through .NET MAUI, Microsoft's cross-platform framework for building iOS, Android, Windows, and macOS apps from one C# codebase. .NET MAUI is the direct successor to Xamarin.
C# and .NET MAUI make the most sense for teams already invested in the Microsoft ecosystem, particularly businesses with existing .NET backend systems, internal tools, or Windows applications that want one shared codebase across platforms instead of separate native iOS and Android teams.
Popular apps built with C# and .NET MAUI: Microsoft's own Azure app, for monitoring cloud resources like VMs and web apps, runs on .NET MAUI across iOS and Android and has millions of installs between the two platforms.
Limitations:
- .NET MAUI is younger than Flutter and React Native in the cross-platform space, so its community, third-party library ecosystem, and pool of experienced developers are all smaller.
- New iOS-specific Apple capabilities typically reach .NET MAUI only after Microsoft updates the framework to support them, so an app built this way doesn't get same-day access to new iOS features the way a native Swift app does.
- Teams without existing .NET experience take on Microsoft's broader toolchain, not just a new language.
Popular apps built with C# and .NET MAUI: Microsoft's own Azure app, for monitoring cloud resources like VMs and web apps, runs on .NET MAUI across iOS and Android and has millions of installs between the two platforms.
Dart
Dart reaches iOS through Flutter, Google's UI toolkit for building natively compiled apps for iOS, Android, web, and desktop from one codebase. On iOS specifically, Flutter compiles Dart ahead-of-time into native ARM code rather than interpreting it at runtime. This lets a Flutter app satisfy Apple's App Store requirement that submitted apps ship as compiled native code.
Impeller, Flutter's current rendering engine, became the default on iOS specifically to fix shader-compilation stutter, a brief freeze the first time an animation or effect runs. This problem showed up more noticeably on iOS hardware than on Android under Flutter's older Skia-based renderer.
Also, Hot reload in Flutter also lets a developer see code changes in a running app almost instantly without a full rebuild.
Limitations:
- Flutter apps bundle their own rendering engine rather than using UIKit or SwiftUI components directly, which increases app size compared to an equivalent native build.
- New Apple interface conventions don't automatically apply to a Flutter app until Flutter's engine adds support for them.
- Advanced hardware or OS-level integrations sometimes require writing native Swift code through Flutter's platform channels, so a Flutter app isn't always 100% Dart in practice.
Popular apps built with Dart and Flutter: Nubank, the Brazilian digital bank, uses Flutter to run its iOS and Android engineering from one codebase. eBay Motors, eBay's dedicated vehicle marketplace app, is also listed on Flutter's official showcase as a production Flutter app on both iOS and Android.
- Is Flutter Good For Web Development? Benefits & Drawbacks
- 18 Flutter Project Ideas For Newbie And Experts
JavaScript
JavaScript builds iOS apps through React Native, Meta's framework for writing mobile apps in JavaScript or TypeScript with React. React Native renders real UIKit components under the hood rather than a web view, so a screen built this way is a genuine native view on the device, not an embedded browser, even though the team writing it never touches Swift or Objective-C directly.
On iOS, most of that JavaScript doesn't run as JavaScript at all by the time the app ships. Hermes, React Native's own JavaScript engine, compiles the app's JavaScript to bytecode ahead of time during the build instead of parsing and compiling it on the device at launch. This is the same compiled-ahead-of-runtime principle Swift and Flutter rely on.
Meta built Hermes specifically to cut app start-up time, memory use, and app size versus the general-purpose JavaScript engines React Native used to rely on. Hermes is now React Native's default engine on both iOS and Android.
Limitations:
- React Native historically relied on a JavaScript bridge that added overhead for CPU-intensive work, like complex animations or heavy on-device processing. Its newer Fabric and JSI architecture reduces that overhead but doesn't fully close the gap with native Swift or Flutter for the heaviest workloads.
- Many device-specific capabilities depend on third-party native modules. When a needed module doesn't exist or isn't well maintained, the team ends up writing native Swift code anyway.
Popular apps built with JavaScript and React Native: Shopify migrated its flagship mobile app to React Native. Microsoft Teams also ships its iOS and Android apps on React Native, according to React Native's own official showcase.
How to Choose the Right Language for Your iOS Project?
The right language depends on five practical factors, not personal preference:
- Does the app need Android too? If yes, a cross-platform framework, Flutter, React Native, or .NET MAUI, avoids building and maintaining two separate native codebases. If the product is iOS-only for the foreseeable future, native Swift is the stronger default.
- What does your team already know? A team with strong React or JavaScript experience will move faster on React Native than starting Swift from zero, and the reverse is true for a team with existing native iOS experience.
- How much does performance or platform-specific polish matter? Games, AR/VR, and graphics-heavy apps lean toward native Swift, which gets same-day access to new Apple frameworks like ARKit and RealityKit.
- Does the app need to reuse existing code? A business already running a .NET backend, an existing React web app, or a Flutter Android app has a real head start reusing that investment through .NET MAUI, React Native, or Flutter, respectively.
- Does the roadmap extend beyond the iPhone? Swift and Objective-C are the only two languages here that reach watchOS, macOS, and visionOS natively. A product planning an Apple Watch companion app or a visionOS experience down the line has a stronger long-term case for starting native in Swift, even if the first release is iPhone-only.
>> Read more:
- Top 9 Best iOS App Development Companies in Vietnam
- A Complete Guide To Hire iOS Developers For Your Project
Conclusion
The best iOS app development languages are Swift, Objective-C, C#, Dart, and JavaScript. Swift and Objective-C build native apps directly with Xcode and Apple's SDKs, UIKit and SwiftUI for the interface, and Foundation for core services.
C#, Dart, and JavaScript reach iOS through cross-platform frameworks instead, .NET MAUI, Flutter, and React Native, which let one codebase also cover Android.
The right choice depends on whether the app needs to be native or cross-platform, how much your team already knows, and how much the interface needs to feel distinctly Apple.
>>> Follow and Contact Relia Software for more information!
- development
- Mobile App Development
