You have a great idea for the app and while researching mobile development one word caught your eyes: Flutter. It promises you to deliver one application that works on both Apple’s iOS and Google’s Android systems. That seems like exactly what you need. You want one app for both platforms, not two. They’d be more or less the same anyway! It’s reasonable and efficient. So why do so many companies keep the iOS and Android development separate? Why not jump on the Flutter bandwagon? The answer is hidden behind a different question: Can Flutter competently and continuously deliver quality apps on both platforms?
The holy grail of mobile development
Mobile development has been split between only two platforms for at least a decade and for all that time developers have been looking for the holy grail of mobile development. A cross-platform solution that would allow them to write one app and run it on both systems. There were many candidates: Ionic, Xamarin, React Native, and now Flutter – which are just more popular examples. In order to understand Flutter, we need to look at the history of some of them and look at what makes the Flutter unique in comparison.
Non-native mobile framework lifecycle
As all cross-platform frameworks share a very similar lifecycle, let’s just use one name: Framework X.
1. A new player in town
In this phase, nobody is willing to do a commercial product using it. Only developers on the bleeding edge of technology and the biggest enthusiasts are willing to learn X. Mostly just for the fun of it or as a self-improvement exercise.
2. The hot new toy
In this phase, the early adopters have made their judgment: X is fun to work with, modern, and able to fulfill business requirements for commercial products. It’s not constrained by all the legacy of the previous solutions. It’s light and fresh. It’s a way to go forward.
Enough developers jumped on the X bandwagon to create a stable ecosystem around the framework. With all the cumulative work of the community, it is finally possible to develop a commercially viable product with X.
4. Golden age
The more developers are developing the ecosystem around the framework, the more people and businesses are willing to join the X fever. This snowballs into a mature solution. While the community is alive and X is getting all the attention, developers will create a library for every new native feature. Possibilities of the X are on-par with the newest native features. Has Apple created a new way to pay through Apple Pay? No worries, developers will create a library in X that will allow you to use Apple Pay. Apple announced it yesterday and already provides a native library? Don’t worry, X will have it operational in less than a month!
This is where we’re at with Flutter, by the way.
5. Eating its own tail
Couple of years later, when the dust settles, Apple and Google are still providing new features with new libraries to the same old native frameworks. They also change how the old stuff works. X developers are now starting to struggle to keep up with Apple and Google (keep in mind they are trying to keep up with the two of the biggest companies in the world combined), let alone add new features or fix the mistakes they made along the way. At this stage X is becoming big, and it’s becoming heavy. There are legacy problems now. It’s not what people signed up for in the beginning!
Do you want to find out more about Flutter development?Talk to our team!
6. There’s a new player in town. It’s just not X anymore
There’s a new player in town. It’s fresh, it’s new, it’s lightweight and not constrained by a ton of legacy. And it’s not X. X is old news. All the developers that are chasing the shiny new technology and encouraged a switch to X, have abandoned this ship. Only people that invested too much time on it to just give it up, stayed. There’s not a lot of them and they are expensive. There are many projects in X for them to choose from, and not many people that want to work with this technology. They are the captains of this sinking ship, and they may hold your project for ransom. You can either comply with them or start from scratch with native (or, if you didn’t learn your lesson, jump on a new cross-platform bandwagon). And on top of that, you cannot count that X will get all the newest native features of Android and iOS (or at least: it will linger). X’s glory days are gone.
Just compare how the newest iOS 14 App Clips feature is treated by (very “old”) Xamarin, (“old”) React Native, and (newest) Flutter communities. Look at how many comments and interactions all three got. Take a look at how bad it looks for Xamarin (some comments even suggested that it’s not possible at all due to size constraints!):
The pursuit of the Holy Grail or a Fool’s Errand?
Replacing native development with cross-platform solutions may seem now like a horrible idea. So why do people do it? Because many times it just works. When you don’t need a complicated app that uses all the features of the native systems and you are reconciled with the limitation and the lifespan of a whole framework it is a perfect choice. Cross-platform is brilliant for prototyping and checking the market. If you want to go with your product to the market as soon as possible and you are ok with rewriting the whole thing and starting from scratch once the product takes off (like anybody does that…), cross-platform is the way to go. It’s a business risk. Lower initial cost and faster iteration at the expense of potential maintainability that can scale the potential maintenance costs exponentially. When creating a new product that will be maintained for years to come native is still the way to go. It all boils down to the lifespan of the business idea.
But what Flutter brings to the table in the cross-platform world?
But fortunately for Flutter and it’s ambitions that’s not the end of the story. Flutter is developed by Google and both hopes and expectations for it are high! It is the native application choice for the Google’s Fuchsia operating system. If you’ve never heard of it don’t worry, it’s still in the early stages of development. Fuchsia is aiming to replace Android in the future, so instead of iOS and Android development, we will be talking of iOS and Fuchsia development. And you’d need to do a Flutter app either way, so why not add a little effort to make it iOS compatible as well, eliminating the need for iOS entirely. While it seems attractive, it is just guesswork of the future that is yet to come. That being said it is a huge advantage that can keep the Flutter afloat, contrary to previous cross-platform attempts.