ReactNative Vs Flutter to build your cross-platform mobile app in 2020

Abhijith HK
Mar 30 · 5 min read
Image for post
Image for post

This insight is shared by By Pruthviraj Karur, Lead — Mobile Development, Codewave.

To remain competitive in a fast growing market with unpredictably changing needs, almost every business today has its digital twin, with a slice of the business run on a mobile app — 24/7.

Digital first businesses who want apps want better apps built in less time and minimal initial investment — as apps are most effective when they are continuously, iteratively improved to consistently meet changing market demands.

Agencies who design and develop apps would want to build it better, faster, and at the same time ensure it is reliable and cost-effective.

Image for post
Image for post

Welcome to cross-platform: Build once, run everywhere

Earlier to build an app, it needed to be coded separately for android and iOS. Say if building an android app takes 5 months, iOS would also take more or less the same amount of time. And it would also demand two different teams maintaining different sets of technologies.

Cross-platform frameworks like phonegap, ionic that were popular a few years ago, were not so good at performance and failed to give “native” experiences, hence most businesses opted for native development.

In 2015 Facebook released React-Native which solved these problems. Since javascript was used to develop react-native apps, it became quickly popular, as javascript already had a huge developer community.

ReactNative was the only good option available then for a cross-platform mobile application framework until Google released Flutter in 2017 I/O. The rise of Flutter after 2017 has left developers / companies confused about which platform to choose for their upcoming mobile projects.

Image for post
Image for post

In this article, we would compare Facebook’s ReactNative with Google’s Flutter.

1) Programming Language

ReactNative uses javascript as a programming language. Flutter uses dart as a programming language.

Since there is a huge javascript developer community already existing it becomes easy for all of them to learn react-native. Whereas if one has to start flutter he/she has to learn a new language altogether.

Image for post
Image for post

UI components

ReactNative has very few inbuilt UI components, and one has to rely heavily on the third party package managers (NPM’S) for most. Flutter on the other side has more inbuilt components & capability.

The third-party components cannot be relied on completely as these are generally open-source community-owned initiatives that can go cold anytime. If you find issues with the third-party components which are not active, then it can get harder to fix them and at times you may have to completely change them.

Image for post
Image for post

Flutter has inbuilt UI components / Widgets which makes the life of a developer easier, as they need not depend on third-party libraries for UI components.

Flutter has a clear advantage over ReactNative with respect to UI components.

Community/Ecosystem

When it comes to community/ecosystem React-native beats Flutter as javascript has a massive and well-established community.

Also apart from the community, one should consider how many devs within the org, already know javascript / ReactJS. If a team has already people who have been doing ReactJS and have more javascript developers — its good to opt react-native than flutter.

Architecture/Performance

ReactNative uses a javascript bridge and the code is compiled at the run time. Basically ReactNative uses javascript bridge to communicate with native modules.

Flutter uses the Dart framework which has many UI components inbuilt such as Material, Cupertino, Gesture, etc… Flutter compiles ahead of time (AOT) also it compiles down to native directly without needing a bridge to like react-native.

In ReactNative — for the UI components, it renders separate native widgets for iOS and Android which gets translated as actual native code inside the node modules. Whereas Flutter does not render native widgets, it paints its own 2 dimensional UI elements using a graphics engine called Skia by Google.

The performance difference may not be visible in most of the cases, as both of them support 60 frames per second (fps) animations. But if the use-cases have real-time interactions with sockets and lots of local computations development of mobile app on Flutter would be a better choice.

My Recommendation

In ReactNative for most of the build issues, the answer is run rm-rf node_modules.

In flutter client, there is a command called flutter doctor which actually sets up the whole set up for you. If you have any issues in the configuration it will show that you have to run a few commands and after running them issues are generally sorted out.

The only hesitation I feel is there enough community support if one gets stuck in some unknown issues?

Apart from this and the Language point of view, there are no reasons one should not opt for Flutter.

Conclusion:

Both Reactnative and Flutter have pros and cons If you want to use the available javascript / react developers one should go with ReactNative or if one wants to give it a try for flutter can try it as some of the industry experts are predicting flutter as future of mobile development and a lot of work is going on on both platforms.

Still confused on which to choose? Write to us at hello@codewave.com so we can help you make a conscious choice on the platform.

Codewave’s team of Design thinking led Agile, Digital transformation practitioners & lead consultants, through digital strategy consulting, design innovation and technology development, have impacted 200+ businesses in 15+ countries, since 2013.

We exploit modern open source technologies & frameworks to bring innovative solutions to life. We architect solutions keeping in mind — modularization and simplification of complex enterprise operations.

OTHER TRENDING POSTS

codewave technologies

design thinking led digital transformation

Abhijith HK

Written by

A guitarist, tech futurist and a believer in endless possibilities. Founder @Codewave - Helping businesses thrive digitally with meaningful digital solutions

codewave technologies

design thinking led digital transformation

Abhijith HK

Written by

A guitarist, tech futurist and a believer in endless possibilities. Founder @Codewave - Helping businesses thrive digitally with meaningful digital solutions

codewave technologies

design thinking led digital transformation

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store