5 minute read

Developer workspace with a laptop, phone, and code editor open on a desk
Photo by Kelly Sikkema on Unsplash

Fear mongering and negativity sells more. Truth is often more nuanced.

Almost every day as I scroll through LinkedIn and Medium, I see the same headlines:

  • Native mobile development is dead.
  • React Native/Kotlin Multiplatform Mobile/Flutter is the silver bullet for mobile development.

And a few scrolls down I see the exact opposite:

  • Native development is the way to go.
  • React Native/Kotlin Multiplatform Mobile/Flutter or cross platform development is dead.

These takes surely get tons of clicks, but they miss the truth intentionally. If there really were a silver bullet, we would all already be using it.

In 2025, everyone is using a smartphone and your brand value depends on it. If you are not already treating your mobile application as a first class citizen, you are not playing the game right.

Every time I have been in a strategy meeting, cross-platform comes up. And sooner or later, it runs into the same reality: long term goal versus disruption.

Cross-platform teams often wait many months before stable packages to appear, and still have to write native code. Even smaller features like Live Activities lagged support for months.

iOS 26 and Liquid Glass are the latest examples of this disruption.

Apple has provided a temporary compatibility mode in Xcode 26 to opt out of Liquid Glass, but it is intended to be removed by iOS 27.

That means every cross-platform framework, whether Compose Multiplatform, Flutter, or React Native, will wrestle with weird bugs and missing pieces for a while.

This pattern repeats with every major platform shift, but iOS 26 exposes the deepest cracks yet.

Flutter, to its credit, has pushed the bar on rendering consistency and often leads in cross-platform innovation. But Liquid Glass exposes the limits of that model. Its rendering engine can only approximate the effect, and today there is no official Cupertino support. Developers lean on community packages, which often carry reported GPU overhead and risk of abandonment.

React Native fares better since it uses UIKit components. But it still forces teams to bridge UIGlassEffect for full integration.

KMM shares business logic across platforms while typically using native UI frameworks (Jetpack Compose on Android, SwiftUI/UIKit on iOS). Teams can optionally use Compose Multiplatform for shared UI. It reached stable status in May 2025, though iOS apps may feel Android-like without custom design systems. So teams must decide where to draw the line.

The real cost hits by iOS 27. Once Apple removes the compatibility opt-out, Flutter apps risk looking dated against native apps and even React Native competitors. It potentially becomes a fundamental mismatch when platforms flex control.

It is the nature of the game. Platforms always have and will look out for themselves first.

Each framework carries its own tax, mainly in performance, look and feel, or duplication. None can actually escape Apple or Google’s rule shifts.

On the other hand native development is costly and carries almost 100% duplicate efforts on each platform. You should clearly understand this when you choose a tech stack.

Apple and Google will copy each other when it helps, and just as quickly double down on distinctions to protect their brand, retain developers, and keep customers locked in.

Companies building apps, meanwhile, are motivated by efficiency, cost savings, and reach.

Every company or brand tries to push their own design as common UX, meaning apps should look the same on both iOS and Android.

This pushed the envelope for cross platform development and trying to have the same UX on both platforms.

This creates the permanent tension: platforms push separation, application builders push convergence. That is why Liquid Glass and Material You look so different, and why they always will.

The Permanent Tension in Mobile Development
The real battle isn’t Native vs Cross-Platform, it’s Separation vs Convergence (Image generated with help of AI)

And it is not just the platforms. Each ecosystem has loyal users who are used to its design system. iOS users expect a different rhythm of navigation, controls, and motion than Android users do.

Too many teams forget that most people do not switch between iOS and Android. They are loyal to one, and they expect it to feel native. Forcing sameness across both ignores that reality. Which is why UX expectations need to be treated as seriously as technical tradeoffs, and considered early in design, not patched in later.

My stance comes from leading native iOS and Android teams, shipping both native and cross platform apps at scale, and evaluating cross platform frameworks for shared code.

It is not as simple as saying we should go React Native. It should be a well thought out solution, so that cross platform does not become an illusion of choice, but a conscious engineering decision with known tradeoffs.

For your specific use case, if cross-platform cannot clearly beat native on cost or delivery speed, it stops being strategy and starts being liability for your team.

I always fallback to the lesson: share code where it provides clear value, keep UX platform-native, and when your app involves hardware or BLE, go native at least for those layers.

Native will always provide better stability, performance, and long-term maintainability with first class support.

We should also be cautious with vendor SDKs and third-party dependencies, they often introduce hidden lock-in.

If you are deciding on your mobile stack, ask yourself these:

  • Are you ready to deal with platform changes and sudden breaking updates?
  • Does your app need hardware features, instant access to new OS capabilities, or pixel-perfect system look and feel?
  • Do you care more about long-term maintainability or shipping quick MVPs across iOS and Android?
  • Are you staffed to handle native fire drills, or do you need every ounce of speed and code-sharing?
  • Do you want first class platform support?

Draw your lines where it actually matters for your users and business, not where the headlines claim the future lives.

In the end, the strongest teams make choices based on reality, not hype. Do not build for trends. Build for the platforms, for your users, and for longevity. Know that Apple and Google’s incentives shape the game.

And above all, if you are working in mobile, whether as a cross-platform or native developer, learn architecture and platform quirks deeply. Tools come and go, design systems evolve, frameworks rise and fade.

The best defense is not a shiny framework. It is a clear understanding of what your app and your team truly need. That is how you stop chasing silver bullets and start making architecture decisions that stand the test of time.