Native Development is Obsolete
Introduction
I know many native developers go crazy as soon as they hear something similar. They try to defend native development with arguments as:
- Natively developed apps are faster
- Natively developed apps are more reliable
- Natively developed apps are more secure
- Natively developed apps are more powerful as the vendor provides the best tools and support
- Natively developed apps support all the features of the platform
In the current age of vibe development and progressive AI, these are not the main drivers for the success of an app. Modern cross-platform solutions will replace native development in the future. It’s not like PHP is gonna die, it’s different :trollface:
I’m sorry, but I won’t provide benchmarks, as there are plenty of them on the Internet. Instead, I will provide my thoughts and observations.
Why Native Development loses
First of all, the most obvious point is that the business does not want to spend 2x or 3x more money on the same functionality for different platforms. This is especially relevant in the current situation of layoffs, budget cuts, and overall crisis in the world. That was a matter of time, when another bubble will burst so people realize that it is inefficient to hire tech-fans instead of tech-professionals, who are determined to deliver a value rather than play around a fancy feature. For example, major brands like Alibaba, BMW, and Nubank chose Flutter, significantly reducing development costs while maintaining high-quality user experiences.
The next point comes from the previous one, but it may not be so apparent for blind-tech-stack-fans. As a native developer, you are stuck in the vacuum of a tech stack. Let me give you an example. I started my career as an iOS developer, and I met many iOS developers who were passionate about Swift (sometimes even Xcode). They are so passionate that they do not want to learn anything else. With Swift, you are bound to Apple’s ecosystem, and your product is limited to Apple’s platforms. I remember how it started with promising Swift on the backend, but, unfortunately, it is not moving further anymore. One day, I will write an article about why Swift is a less attractive language than it was several years ago and how Apple kills it, but not today.
Get Kirill Chuyanov’s stories in your inbox
Join Medium for free to get updates from this writer.
And the last thing: What about the fun part of being a software engineer? How about learning, experimenting, or trying out new stuff? You cannot build your career using only one tool. It’s just the same as building a house with a hammer only; not everything is a nail. You need a saw, a drill, a screwdriver, etc., and you need to know how to use them.
Why Cross-Platform Development wins
Thanks to ReactNative and Flutter, it’s getting more and more popular. And for that, there are several reasons:
- It’s cheaper. As I said before, the business does not want to spend 2x or 3x more money on the same functionality for different platforms.
- It’s faster. You can build an app for both (or many) platforms simultaneously.
- It’s more reliable and secure. Having the same codebase allows you to introduce the same bugs and fix them once.
All the solutions provide a bridge to communicate with native code, so you can access almost any OS feature that the native SDK provides. And because some frameworks provide custom render engines, their API is richer than the native one.
Undoubtedly, the performance is always under question. Cross-platform solutions have their own render engines (or bridges), which are not as fast as the native one. But the truth is that nowadays the performance difference is barely visible for the end user and it will be even less visible in the future.
What’s next?
React Native got its New Architecture, which boosts performance and makes Flutter developers nervous. Flutter introduced a new render engine to avoid past mistakes. Every solution evolves and gets better.
Some vendors finally realized the problem and are making steps towards cross-platform solutions. For example, Kotlin Multiplatform, which got official support from Google last year. JetBrains team has very ambitious plans for Compose Multiplatform, which might give the same support from Google next year.
Eventually, Apple has to introduce its solution (SwiftUI Multiplatform?) sooner or later to keep up with the competition. Here, I only have speculations based on my observation through the years that it will be too late and too difficult to use, but we’ll see.
Conclusion
Native Mobile development will live long for sure (the same way why PHP is still alive), but cross-platform solutions will replace it over time. As someone who’s explored multiple cross-platform solutions — from FireMonkey and Qt to NativeCode and Flutter — I believe there’s never been a better moment to adopt cross-platform frameworks for your next mobile app.
Post Scriptum
What about the web?
There is Node.js (or Deno, Bun) and the ability to have one single language on the client (including mobile) and server sides. This is the greatest thing that has happened to software development. The one undeniable fact is that JavaScript historically had a greater community. Yet, it became one of the most powerful communities, introducing excellent tools and frameworks that allowed JavaScript to run on both sides. That seems to me an excellent example of a cross-platform tool that eased the development process. Imagine having a single mono repo being set up for a single language and consistent tech stack. If you need to fix something or add a feature, you can do it on both sides with ease — you know the language and tools, and the only thing is to learn some theory, and voila. Isn’t that called efficiency? With different tech stacks on both sides, you need to learn at least twice more, and it is not always easy. Personally, I think Java is an example of a complicated world.
But still, being a front-end developer is not the same as being a back-end developer, and vice versa. Or, being an iOS developer is not the same as being an Android developer. Being a true cross-platform developer means knowing all sides but with a single tool.





