Senior full stack developer and CTO at Ideamotive.
It’s 2021, and cross-platform mobile development is among the most popular development trends. The ability to build native applications for Android and iOS from a single codebase is gaining in demand, as it enables companies to bring mobile apps in record time. React Native has already become somewhat of a ‘standard’ but Flutter’s treading right behind, becoming the next need-to-know mobile development technology in 2021.
How many apps are installed on your mobile? There’s a good chance that at least a dozen (unless you belong to the chosen 1% of smartphone owners who don’t have any app running on their devices—is that possible, though?).
From handling finances, through finding your soulmate, to managing health, virtually any service and activity can be now integrated into a cell phone. Growth-minded companies understand that mobile app development is no longer optional but mandatory to boost up business revenue and generate sustained user engagement across all mobile platforms. They also realize that the faster they can ship a revenue-generating app, the more significant advantage they gain over the competition.
The demand for novelty cross-platform mobile development technologies is intensifying. To address it, we’re going to dig away at Flutter today, and compare it against two immensely popular frameworks, React Native and Xamarin.
Here’s what we’re going to cover:
If you are already familiar with this topic, skip to the next section. Otherwise, keep reading.
When we hear ‘mobile app,’ most of us immediately think of iOS or Android. While there are several other mobile operating systems available, such as Ubuntu Touch, KaiOS, or PureOS, to name just a few, Google’s and Apple’s OSs are head and shoulder above the rest. Together, they hold practically 100% of the global mobile market share.
Globally, Android continues its domination, with an estimated 86% share in the worldwide mobile app market. However, when we look at the revenue breakdown, iOS rakes in higher profit than its opponent. Besides, it controls a substantial 44% of the strategic US market. Therefore, if you are targeting a global audience, you may perhaps be able to get away with focusing on custom Android app development only. Still, if you plan to appeal to American clients, iOS support is a must. On that account, many companies chase opportunities on Android and iOS devices alike.
Note we say ‘many,’ not all. What holds some businesses back from deploying apps to both platforms?
“Our iPhone app is out now. Android users can expect to see it in... some unspecified future.” How many times have you heard this? Well, that’s because iOS and Android are nothing alike, and they require developers to use different programming languages and frameworks. This means having two independent development teams, separate management teams to coordinate work within and between them, and an entire squad of UX experts navigating between the two projects, trying to make sure that the user experience on both platforms stays more or less the same.
Imagine the time, inconvenience, and outlays needed to maintain all those teams working in parallel to ship the same product, just on different platforms. This is where cross-platform mobile app development comes in. It reduces the speed and cost of mobile application delivery by allowing developers to build software that supports iOS and Android using one codebase. By providing these capabilities, the cross-platform delivery approach helps companies optimize their return on investment and ship mobile apps to all markets they target fast.
Among several available tools and frameworks for cross-platform development, React Native is topping popularity charts at the moment (if you want to know more about it, check our all-encompassing React Native guide). However, Google’s Flutter is gaining traction, combining all features needed for speedy launch of beautiful, interactive mobile apps with a native look & feel.
Below, we’ve assembled some defining features of Flutter that distinguish it from other mobile app development tools. And if you want to see it in action, visit this tutorial.
Flutter has been specially created to enable the development of riveting, natively compiled applications for mobile, web, and desktop from a single codebase. In mobile development, it can be used to build applications that work on both Android and iOS. It also supports Google’s own upcoming mobile OS, Google Fuchsia.
The entire concept of UI design in Flutter revolves around widgets, which are provided out-of-the-box in two styles designed to conform to Android and iOS design guidelines. Widgets define the various stylistic, layout, and structural components of the UI, such as buttons, fonts, colors, menus, forms, and so on. They can be modified and combined to form more complex elements. Custom widgets can also be created from scratch.
The so-called “hot reload” allows developers to inject source code modifications directly into a running app to be seen immediately, without requiring a restart or loss of state. The feature is hugely useful as it helps avoid the lengthy compilation process, which is particularly irritating when developers need to apply small changes. Not having to wait for who-knows-how-long for the code to compile, only to discover that you left out a semi-colon when tweaking the color of a button seems like a game-changer for developers. According to Flutter’s creators, this ability has had a profound impact on their work. However, it’s fair to mention that hot reload is not unique to Flutter and is already offered by React Native, for example.
Although Flutter, just as React Native before it, is free and open-source, we shouldn’t forget that there’s a tech giant standing behind it. As the backer of Android, Google has a vested interest in keeping Flutter going strong, as it facilitates the creation of Android apps and, even more significantly, opens the door for cross-platform development. This means that by using Flutter, a mobile development company building predominantly iOS apps can quickly deploy software to Android mobiles, using the same code. What’s more, as Fuchsia development continues, the new OS will almost automatically gain access to the library of Flutter-based apps. Hence, it’s more than likely that Google will keep maintaining and developing the SDK going forward, striving to keep it as developer-friendly and straightforward as possible. Still, let’s not forget that the Mountain View giant has a long history of starting projects and suddenly abandoning them, with no apparent reason (anyone remembers Google+, Google Spaces, or Google Video Player?).
We have already mentioned the core aspects of Flutter that may appeal to developers. Now, let’s review some of the business advantages that make it a desirable choice for app owners, and discuss some of the SDK’s downfalls.
Fast time to market
As a cross-platform mobile development technology, Flutter considerably reduces the app delivery time. Since it makes one code reusable across two target platforms, it helps companies reduce delivery time and seize audiences on Android and iOS alike.
Exquisite user experience
Google boasts that Flutter enables the creation of ‘flexible and expressive UI,’ and it surely delivers on that promise. Thanks to a wide selection of reusable, customizable widgets, developers can craft stunning user interfaces. What’s more, the native capabilities of Flutter facilitate seamless user experience and top-notch performance of the apps.
Development cost savings
Working with one codebase instead of two always helps drive the overall project cost down; therefore, cost-efficiency is one of the most appealing features of Flutter. By simplifying development and reducing app delivery time, the technology unlocks significant savings, boosting return on investment in the application.
More development cost savings!
Lower development effort, faster project delivery, and smaller resource demand are one thing. But let’s not forget that Flutter is free and open-source, which lowers mobile app project spending further as compared to proprietary, licensed tools.
Good for startup MVP
If you’re looking to test and assess your mobile app idea before moving forward with a full-blown software rollout, Flutter is an excellent technology to achieve that. The SDK allows you to create a beautiful, performant MVP app quickly and without spending a fortune (see When to Use Flutter (And When to Avoid It) for more details on this point).
Companies seeking to launch at global markets will be happy to discover Flutter’s localization support for over 20 languages. The SDK also simplifies internationalization with built-in currencies, dates, and units and other in-built functions that make it easy to localize your app’s software.
New concepts often raise suspicions. While Flutter is making waves, it’s a relatively new tool that needs to do some catching up with more established frameworks. The choice of available libraries is still limited, and custom scripts may be required to implement some functions.
Large app size
There’s always a little bit of give-and-take in software development. Flutter’s speed of delivery and outstanding UI is an offset against large application size. Flutter apps tend to be quite bulky, which might be an issue when developing for devices that cannot handle large-sized applications.
As Flutter is using a proprietary, purpose-built language, its development requires a new set of skills that take some time to build. Therefore, the pool of developers fluent in Flutter will be relatively smaller than in the case of other tools and frameworks. However, that is not to say that finding tech talent with Flutter expertise is impossible. Just talk to us 😉
The number of Flutter apps is increasing daily. Obviously, Google leads by example, with Google Ads or Google Assistant utilizing the SDK. But who else is keen on Flutter’s speed, simplicity, and convenience?
The world’s largest e-commerce company is among the big market players that trusted Flutter, which powers Xianyu, the group’s second-largest online retail platform with +50 million downloads. The app developers praise the tool’s impressive UI/UX capabilities and easy maintenance, but it was the speed of app development that got them sold on Flutter.
The leading discount marketplace needed to revamp its merchant-facing app, extending payment data visualization functions, streamlining campaign management, and improving the voucher redemption experience. Instead of rewriting the existing app from scratch to add these enhancements, Groupon integrated Flutter widgets into the native code. This helped bring those features to end users faster, without impacting their experience with the app.
Realtor helps Americans find their dream home through a distinctive Flutter-powered mobile app. The company has integrated the framework into their existing Android and iOS apps to provide seamless UX across screens and platforms with intuitive, aesthetic graphical components, high-quality photos, and rich visualization.
This finance application simplifies credit card rewards, helping consumers save as they spend. The app is using Flutter to serve its users with clear and consistent UI so that they may easily track, analyze, and redeem their reward points.
Hookle is a social media aggregator for small businesses. The app facilitates displaying, composing, and rolling out SM posts to multiple platforms from one place. Initially, Hookle creators intended to deploy a native app to Android only, anxious about the speed and cost of delivery to multiple platforms. They revisited the strategy once they discovered Flutter.
A mobile fitness app from Spain, EntrenaPro uses Flutter to connect athletes with coaches and sports centers in the vicinity. According to the app creators, Flutter enabled them to meet very tight deadlines for product delivery while providing critical components to achieve the lightweight, modern UI. The entire zero-to-launch implementation took only four months.
Wrapped in a minimalistic, soothing GUI, Reflectly is an AI-driven personal diary and mindfulness assistant. It provides an inspiring example of a mobile app that was first created with React Native and then migrated to Flutter. The transition resulted in enhanced cross-platform portability and allowed for the integration of advanced technologies such as machine learning and NLP.
Watermaniac helps users stay hydrated by tracking beverages they drink and dispatching reminders to take up a few sips of water now and then. The app’s GUI is as simple and straightforward as its function, so developing it with Flutter was a walk in the park.
It seems like Flutter has a massive deal of benefits to offer, with limited risks. The diverse examples of implementation in multi-purpose apps of varying complexity validate its flexibility. What’s more, the SDK’s not limited to serve growth-minded startups and small businesses only. After all, global giants like Google, eBay, BMW, or Alibaba also use it to roll out their stunning apps in record time.
That’s all not to mean Flutter is a perfect (and only) choice for any business case.
Don’t get us wrong—we adore Flutter. It makes development productive and enjoyable for us while allowing our clients to ship their product fast to Android and iOS. But as they say, you need to use the right tool for the right job.
Without leveraging possibilities of popular cross-platform mobile app development frameworks, developers need to build two separate-yet-the-same apps for Android and iOS. What’s more, once designed, the apps need to be maintained and upgraded individually. Therefore, the choice of technology to implement the code impacts not only the upfront expenses but also the total cost of ownership of the app. Wrong technology may lead to inefficient maintenance or even require a complete app rebuild, which wipes out all work, effort, and investment made in the first iteration.
Thus, the choice between Flutter and other leading tools and frameworks is much more than just a question of a developer’s individual preference. It affects your money, your time, and your business. That’s why it’s worthwhile to take a few minutes and go through the main differences between popular cross-platform mobile app development technologies.
Out of all cross-platform mobile app development frameworks, three that are arguably the most commonly used include Flutter, React Native, and Xamarin. And those are the tools we’re going to compare to see how they stack up against one another, considering different aspects.
Just let us give you some heads up: there’s no one-size-fits-all in cross-platform development. We already indicated that Flutter is a fantastic solution in some cases, but may not be wholly beneficial in others. The same holds for React Native and Xamarin. For that reason, we won’t be looking to pick the ultimate winner. Instead, we will compare the three technologies to help you decide which one will be the most suitable for your specific implementation.
If you want to learn more about React Native, check out our in-depth React Native Development Guide.
Owned by Microsoft, Xamarin is an open-source, cross-platform application development framework. It uses .NET and C# to build modern and performant applications for iOS, Android, and Windows. As one of the first technologies enabling deploying apps to multiple platforms from a single codebase, Xamarin has garnered extensive community support from over 60,000 active code contributors across 3,700 companies. The robust platform is widely-used in an enterprise setting and praised for its native-like performance, stability, and wide selection of tooling.
Software development is an art of balancing between exciting cutting edge technologies and mature, battle-tested solutions. Tradition-based, established organizations, especially in highly-regulated industries like banking or healthcare, tend to choose tools that have been around for some time, as they consider them more reliable. Dynamically expanding startups are more inclined to go with forefront solutions that deliver agility and scalability needed to adopt change easily, and often cost less than fully-fledged platforms. How do React Native, Flutter, and Xamarin compare when it comes to maturity?
The whole point of mobile apps is to delight users with a quick, easy, and enjoyable way to achieve their goals or resolving issues. That’s why UI is a crucial element for making a mobile app stand out from the rest. When it comes to UI design, the three technologies are significantly different.
It is not that hard to build a mobile app—the challenge consists in delivering it within the agreed time and budget. That’s why the number of technologies supporting coding is growing exponentially. In essence, businesses are looking for new ways of cutting down the time needed to launch a new app, and software companies are striving to provide them.
Cross-platform mobile development tools indeed have slightly lower performance than native frameworks. Nevertheless, from the users’ perspective, the differences in app operation are negligible, and they usually don’t affect their experience anyhow.
Open-source software thrives on healthy, engaged communities of technology supporters. Without them, there’s no knowledge sharing, no tech inputs, and no code. Besides, by listening closely to the voice of users and developers, software vendors gain insights that power continuous enhancement and adjustment of their products in the direction that’s relevant for end-users. Which of the three compared frameworks is resonating the most with the global developers’ community?
When we have a quick look at Github, React Native outpaces its competitors with over 155K repositories and over half a million commits. However, Flutter is quickly catching up, with the number of repos nearing 113K, including 335K commits, as of April 2020. Xamarin falls behind, as there are fewer than 37K repositories available for this framework.
These results are consistent with what Google Trends tells us. Throughout the last 12 months, we may notice a persistent growth in Flutter searches. The interest in Google’s open SDK has outrun the popularity of React Native. Xamarin lags again, being 3-4 times less popular in searches than its competitors.
It takes time to set up an environment to support a new development framework. The same goes for testing the created application and releasing code to the App Store and Play Store. Comprehensive, user-friendly documentation makes developers’ lives a whole lot easier, as they don’t need to reinvent the wheel and figure out steps that are practically the same in each case. What documentation support do the three frameworks offer?
The three software development frameworks are widely-used and accepted, yet each of them performs best in a given context. What makes some companies prefer React Native over Xamarin? Why would they decide to go with Flutter instead?
Flutter is one of the most forward mobile technologies out there. Like every innovation, it has certain limitations. Still, its multiple benefits undoubtedly overshadow the few shortcomings, and Google’s backing makes it a strong candidate to dominate cross-platform mobile app development shortly.
Since its inception, Flutter has gained immense popularity among developers, but it’s also catching on with app owners. Now, as Google is hard at work perfecting Fuchsia OS, Flutter is pretty likely to become the next big thing in app development. You don’t need to wait to take advantage of its capabilities. We can help turn your business idea into an irresistible mobile app, bringing top-notch Flutter skills on deck to build or strengthen your mobile development team.
Dawid is a full stack developer experienced in creating Ruby on Rails and React Native apps from naught to implementation. Technological superhero, delivering amazing solutions for our clients and helping them grow.View all author posts
Digital Marketplace Development Guide
How To Start Online Marketplace Business?
Michał Rejman 9 min read
Miłosz Kaczorowski 9 min read
Michał Rejman 14 min read
Patrycja Mach 19 min read
Dawid Karczewski 6 min read
Work with Mobile App experts from Ideamotive's talent network.