Different technologies have emerged to enable cross-platform applications. What is Flutter mobile development all about, and what are its pros & cons?
Since iOS and Android became the main platforms for mobile app development, creating cross-platform products has been appealing for both developers and app owners. As a result, different technologies have emerged to accommodate cross-platform mobile applications. One of the latest additions to the mix is Flutter. What is Flutter mobile development all about, and what are its pros & cons?
Interestingly, Google started working on Flutter back in 2015, but it remained in the beta stage before it was officially launched in late 2018. Since then, it has definitely been growing in popularity and capabilities. And there are a few good reasons for that.
It started as an open-source mobile UI framework that helped developers build native-looking Android and iOS apps. Not too long ago , however, Flutter started supporting the development of desktop, embedded, mobile, and web apps from the same codebase. And where there’s less code, there are fewer bugs.
What’s also worth mentioning is that Flutter apps are built with Google’s programming language Dart. In release mode, it’s compiled Ahead-of-Time (AOT) into native code for multiple platforms, allowing Flutter to communicate with the platform without the need to go through a JavaScript bridge (as in React Native, for example). This improves app startup times and their overall performance. In development mode, though, Flutter is compiled Just-in-Time - which is what makes it possible to hot-reload/restart fast. But we’ll get to that.
There’s no doubt that the language itself is fast, object-oriented, and quite powerful, but it often loses in comparison to more mature technologies like JavaScript or C# that power React Native or Xamarin respectively.
Speaking of the competition: despite the fact that React Native and Xamarin are still used more widely , Flutter is on the rise. According to Google's Tim Sneath , this UI framework is now taken advantage of by nearly half a million developers who claim to use it on a monthly basis. With its integrated rendering engine, testing and integration APIs, and ready-made widgets, it’s a solid contestant to other technologies that enable cross-platform mobile development. How is Flutter different, then?
It’s no secret that each solution has its advantages and disadvantages which ease or impede mobile app development to some extent. Flutter has a number of benefits that keep attracting developers and app owners, including:
Is Flutter all about pros, though? Not quite. We tested it out in practice to see whether that’s the case. Here’s what cons we found:
It’s clear to see that Flutter is not mature enough to handle more complex projects, at least for now. At the same time, however, it’s a good solution for an MVP (especially for startups) . Actually, it’s a common pattern with all relatively new technologies.
Essentially, whenever you have an idea for a mobile app but you’re not exactly sure whether it’s a good one: build your MVP with Flutter to cut costs and see your idea in action. If the MVP becomes successful, you should start thinking about “turning it” into native mobile apps instead.
Let’s face it: developing two separate apps from the start would take much more time and money. That’s also one of the reasons why startups with limited resources turn to cross-platform solutions like Flutter. Reusing code helps them bring their ideas to life without making substantial investments.
More established enterprises also seem to appreciate Flutter’s ability to build highly-branded experiences that support multiple platforms . If that’s something that might interest you, you should consider giving this cross-platform technology a try.
Flutter is said to be a strong contender to React Native. For now, though, React Native is more mature and stable - not to mention that it takes advantage of the most popular programming language, JavaScript, and already has a large community of users and supporters behind it.
At the same time, however, Flutter seems to be growing at an unprecedented rate. It also happens to be faster than React Native - there’s no need to go through a JavaScript bridge, and thanks to the use of Dagger it’s easy to write & compile code at speed. It might be just a matter of time before it’s used more widely.
This doesn’t mean that other cross-platform technologies become obsolete, though. After all, the nature of both Flutter and React Native allows to reduce time-to-market and makes developing mobile apps more efficient, which attracts increasingly more developers and app owners.
Here’s a short comparison of Flutter vs React Native:
The verdict? Both Flutter and React Native have their pros & cons when it comes to cross-platform mobile development. Flutter definitely has its limitations, but the benefits are hard to ignore for specific use cases. Essentially, if you want to reduce development cost & time, and release the app on all available platforms simultaneously - Flutter can be a good choice.
Each app is different, though, which is why you should always go after a solution that can support your goals and strategy in the long run. If you’re not sure what technology to choose for your project (and whether you should actually go for cross-platform mobile development) - give us a shout .
In the meantime, you might also see our comparison of React Native vs Native Apps .