React Native vs Flutter

Ashish P
iOSMastery.com
Published in
3 min readJul 15, 2018

--

With this article i want to explore flutter in depth including:

  1. What is flutter ? How it works.
  2. How is it different from React Native ?
  3. Is it worth learning a new Language i.e. Dart for building with flutter ?
  4. Whats the future of flutter ?

Disclaimer:- This article is based on my personal opinion on Flutter and React-Native. These are my thoughts on why these tech giants are creating these amazing technologies and about there pros and cons. Ok let’s get to it.

What is flutter ?

With Flutter Google entered cross-platform mobile app development. Flutter is a mobile app SDK with which you can build native apps for iOS and Android with single code base. Flutter can be used with your existing code and it is open-Source.

Real motivation behind flutter:

Faster app development. Yes with flutter you can build apps faster with the help of customisable Widgets.

  1. Tap the growing interest in cross platform development. With Big companies like airbnb using React-Native (and now moving away), there is a serious interest and untapped opportunity in Cross-Platform App development. Imagine a single code base (less developer cost and less maintenance cost), a Single IDE, a single language for both iOS and Android.
  2. Creating an EcoSystem for developers. Once you enter the Google’s world (Dart-Flutter-Android Studio-Android SDK). You dont need to learn any other technology, off-course for iOS app development you need knowledge of iOS SDK but practically you are dealing with Widgets and not iOS views, auto-layout and native components.
  3. Generate Buzz around Google’s Engineering division (especially mobile engineering division). Its like google saying, “Hey look what we have made, you can use this cool SDK too”.
  4. Ultimately all of this translates to more developers (iOS and web developers) coming to Android development. More cool apps in playstore. More revenue for google.

Flutter vs React-Native

Points in Flutters Favour:

  1. It doesn't need as many third party dependencies like React-Native for basic operations like UI Navigation, Api calls, maintaining states. You just install flutter SDK and you get pretty much everything to build an App. So you dont need to depend on any unreliable library not being maintained by its authors.
  2. React-Native feels easy to start with basic components. But once you get to big complex mobile app, you start adding layers of libraries for Testing, Networking, State-Management etc. This increases difficulty level quite more. With Flutter you dont need to install as many third parties.
  3. Your code is not vulnerable to frequent changes in React-Native library.
  4. It takes a while learning about different types of widgets required for a big scale app. But once you get acquainted, App development feels easy with Flut

Points in React-Native’s Favour:

  1. React-Native works on dynamically typed language i.e. Javascript. So if you are coming from web feel familiar with the environment. Also you get great third party libraries for pretty much all your needs like testing, networking, state management, etc.
  2. Great support from developer community. React native is around for few years now and being a first SDK to provide native-experience in cross platform app development, it is very successful.
  3. It has got great testimonies from top developers like Facebook, Instagram and Airbnb using it.
  4. You dont need deep understanding of widgets like Flutter. Starting with React-Native is comparatively easy.

Will Flutter or React-Native replace native app development ?

Certainly not! Apple and google puts lots of RnD and marketing in iOS and Android Native App platform. Cross Platform technologies are still far off from what native counter parts are providing. Consider Google Map SDK or Apple’s Metal and Scene-Kit. I don’t find any real life examples of some one covering there extensive use cases with cross platform development.

Why should i learn another language Dart just for working with Flutter?

To me exploring new languages is fun. Every new language i learn influences my coding style, improves my knowledge on coding concepts and makes me able to create and build more variety of things. Dart is very easy to learn. You should give it a try on https://dartpad.dartlang.org/. It has similar syntax to JavaScript.

The Future

Last but not the least. Flutter is a google’s SDK, same company which provides Android SDK. So i expect Flutter to get updated more frequently with Android. Google is also one of the largest App development company on Apple’s Appstore with apps in almost all categories and billions of downloads. So it makes sense if they migrate their own native apps to Flutter. All this means Flutter will evolve a lot in future. So as a programmer it feels like great skill to add.

--

--