Skip to main content
EngineeringProduct Building

Why We Build Native iOS Apps with Swift Instead of Cross-Platform Frameworks

Mortgy
4 min read

The cross-platform temptation

Let us be clear: we love Flutter. We use it for many client projects where cross-platform reach matters more than platform-specific features. React Native is solid too. But for our own AI-powered iOS apps — the ones that push CoreML, use the camera at 60fps, and need to feel indistinguishable from Apple first-party apps — we consistently choose native Swift and SwiftUI.

This is not an ideological stance. It is a practical decision based on shipping real products and measuring what matters: performance, user retention, App Store ratings, and development velocity.

The CoreML performance gap is real

When your app runs a ML pipeline doing computer vision at 60fps, the bridge overhead of cross-platform frameworks becomes a real bottleneck. CoreML integration in Swift is zero-overhead — the model runs on the Neural Engine, results come back as native Swift types, and the UI updates in the same frame.

We benchmarked a YOLOv8 object detection model across three approaches: native Swift with CoreML, Flutter with a platform channel bridge to CoreML, and React Native with a native module. The results were stark:

Native Swift: 12ms average inference time. Flutter bridge: 28ms (the bridge adds ~16ms of serialization overhead per frame). React Native: 35ms. At 30fps camera input, that bridge overhead eats almost half your frame budget. At 60fps, it is game over for cross-platform.

For apps where AI inference happens occasionally (a photo filter, a text analysis feature), this overhead is negligible. But for real-time AI — live camera processing, continuous sensor analysis, streaming audio transcription — native Swift with CoreML is the only option that delivers a fluid experience.

SwiftUI has matured into a productivity powerhouse

SwiftUI has matured significantly with iOS 17 and 18. Navigation stacks, observable macros, and the new animation APIs rival anything in the cross-platform world. Our iteration speed with SwiftUI previews is actually faster than hot reload in many cases, because previews render without recompiling the entire app.

The Observable macro in Swift 5.9 eliminated most of the boilerplate that made SwiftUI state management painful. Combined with the new Navigation system, building complex multi-screen flows is now straightforward and type-safe. We spend less time fighting the framework and more time building features.

For apps that need to feel native — proper iOS gestures, haptics, Dynamic Island integration, Live Activities, widgets — SwiftUI gives you these for free. Cross-platform frameworks either cannot access these features or require complex platform channel implementations that negate the time savings.

The App Store advantage

Apple reviews apps, and they can tell the difference. Native Swift apps get smoother review processes, access to the latest APIs on day one, and better featuring opportunities. Apple actively promotes apps that showcase their latest platform features — and you cannot use those features from cross-platform frameworks until someone builds a bridge, which often takes months.

Our native apps have an average App Store rating of 4.7 stars. The most common positive reviews mention speed and how the app feels like it belongs on iOS. That native feel is almost impossible to replicate with cross-platform frameworks, especially for animations, transitions, and gesture interactions.

When cross-platform is the right choice

Cross-platform makes sense when: your app is primarily a CRUD interface backed by an API, you need iOS and Android day-one with a limited budget, your AI features are all server-side, or you are building an MVP to validate a concept before investing in native. We use Flutter for exactly these scenarios in our client work.

For everything else — especially apps with on-device ML, custom camera pipelines, ARKit integration, or deep OS integration like HealthKit or HomeKit — go native. The upfront investment pays for itself in performance, user satisfaction, and long-term maintainability.

Our recommendation

If you are a startup deciding between native and cross-platform, ask yourself one question: is the core value proposition of your app tied to a platform-specific capability? If the answer is yes — and for most AI apps it is — go native. If the answer is no, Flutter or React Native will serve you well and save you time.

At iHux, we are platform-agnostic in our recommendations and platform-specific in our execution. We will tell you honestly which approach is right for your product, and then we will build it properly.

Mortgy

Founder & CEO