We're big fans of React-Native, but with Google's recent announcement of the Flutter framework, I couldn't wait to develop my first mobile app with Flutter, make comparisons to React-Native and recommend which platform brands should invest in for 2019.
With Google’s recent announcement of Flutter, an open-source SDK (Software Development Kit), many have jumped on the trend to see if the platform really does live up to the hype.
As a cross-platform development kit that uses the Dart programming language (easy to use if you’re familiar with Java, Kotlin, Swift or C#), it can be used to develop both Android and iOS apps which share a single code-base.
With international brands taking to the new platform, including Alibaba and the Xianyu app (which is used by fifty million users across China), many have started drawing comparisons to the FaceBooks React-Native.
There are a few key promises that Flutter has made which would give it the competitive edge over Facebook’s counterpart, I wanted to spend my week developing my first Flutter app, making comparisons between Flutter and React-Native, and recommend which platform is the better option for brands looking at mobile app development in 2019.
With a number of emerging app development companies using time-to-market as a way of differentiating themselves, the time to takes to develop mobile apps is one thing that any brand or organisation looking to invest in a digital solution should look out for.
Apps can take anywhere from three to six months for native Android and iOS apps, however, hybrid apps, such as those developed with React-Native and Flutter, offer the potential to reduce this time dramatically, as both versions of the app (Android and iOS) share a single code-base.
With the amount of time React-Native has been around for; the number of developers using the framework and the amount of React-Native code, guides and tutorials that exist online, Flutter is at an immediate disadvantage.
This is mainly down to the number of ready-to-use components available on React-Native platforms, however, given a little more time to gain popularity, Flutter could be just as efficient, if not more.
Quality over quantity. The first thing organisations should concern themselves with is how their app will perform, but outside of the age-old question; should you develop an Android or iOS app?, cross-platform app development projects like React-Native and Flutter are affected in this area more than their native counterparts.
Ask any React-Native developer, the main problem that comes with the framework is the complexity and limitations of developing information architecture, native app components and development libraries.
As Flutter utilises the Dart programming language, many of these limitations can be avoided, but the main advantage of using Flutter is that it also uses an engine that supports the C++ language (used by many, if not most, app developers in the current industry).
If there’s one main difference between Android and iOS apps (besides the way they’re developed), it’s how the look and feel.
Obviously, devices need to be taken into consideration as it’s not fair to compare the iPhone X with an old Nokia, but what brands should be more concerned about is what they’re able to include in the apps UX (User Experience) and UI (User Interface) design.
One way in which Flutter is gaining momentum is that it works completely differently to React-Native; rather than using native components to build the user interface, Flutter apps have widgets that can be fully customised, and translated onto Android and iOS devices.
However, some of the libraries supported in Flutter lack one (arguably) essential element, iOS style way components, meaning that some of the design features for iOS aren’t compatible with the libraries used in the same Flutter app.
When it comes to full-stack app development, stability and scalability are often the most time and resource intensive parts of the project. More complicated apps with a large number of active users, as well as those with growth in these areas, often have usability and performance issues at scale.
From the number of bugs and required updates to crashes and features becoming unavailable, or not working entirely. Having a platform that doesn’t crack under pressure and maintains its performance when users need it the most is crucial.
First off, we need to consider that as a fairly new framework, Flutter will never have the same scalability as React-Native does, having said that, more and more developers are moving towards the Flutter framework as it gains popularity, especially since the announcement of Flutter beta 2 which unveiled new tools and possibilities for app developers.
This section can be broken down into two main areas; documentation from developers and from the framework owners. It’ll come as no surprise that React-Native has the edge over Flutter when it comes to developer documentation, with the sheer amount of time the React-Native framework has been around for.
It has, however, been noted by many members of the app development community, that the tools and documentation provided by Google’s Flutter has the advantage; by ingraining this into the process of developing apps with the Flutter framework.
Another consideration is that React-Native documentation is managed open-source, with so many different developers and uses of the framework, documentation has become pretty convoluted and finding what developers are actually looking for can be tough.
Similarities between the Flutter framework and programming languages Kotlin, Java, C++ and Swift, mean that much of the documentation around the platform can be understood and used by developers with different backgrounds, experience and expertise.
1. The time and cost of app development projects is dramatically reduced:
As cross-platform mobile apps share a single code-base, the time it takes to develop an app for both Android and iOS is dramatically reduced.
2. Smaller teams are able to manage, update and maintain apps:
Rather than having to employ a team of Android and a team of iOS developers separately, brands can create a smaller team of developers that all know the language and framework.
3. Platforms are more compatible with other systems and software:
Connecting to the Cloud and other web-based systems is far easier, quicker and cheaper to do with cross-platform apps like Flutter and React-Native.
4. Apps can reach a far wider audience in more locations around the world:
Typically, organisations have to choose whether they want to reach iOS users or Android users, which is often problematic as the distribution of Android users is far more varied.
5. Re-usable code and easier implementation:
If brands already have existing Android or iOS apps, the code can be more easily translated to a cross-platform framework than the native counterpart, which would require a complete re-write.
Published on April 4, 2019, last updated on May 10, 2021