These days you have certainly heard about cross-platform mobile development, in particular about the “senior” React Native and the “freshman” Flutter.
Today, I want to start a series of articles to understand the two frameworks. In particular, I want to describe their differences, their weaknesses, their strength… so, all you need to know to help your choice.
In this article, I want to introduce the two frameworks with a historical overview and an analysis of the languages that they use. Next, in the following articles, I will move the focus on how to build User Interfaces with these two frameworks and how they work internally.
Before starting with the comparison, I think that a little bit of history is mandatory. The first version of React Native has been developed during an internal Facebook hackathon in 2013 and a first version has been previewed two years later in January 2015. Finally, in May 2015, React Native has been officially launched and open-sourced. Flutter instead is younger and a first embryonal version has been revealed during the Dart Dev Summit of 2015. After two years, an alpha release has been released during the Google I/O 2017 and the final 1.0 release came out in December 2018.
Today, React Native is the standard de facto for cross-platform development. In fact, during the years React Native has gained success because it can provide a “native feel” (in a following article I will explain how this is possible) and not a weird rendering with HTLM and CSS inside a WebView like for example Cordova or PhoneGap. Lots of famous apps are using React Native, for example, Facebook, Instagram, Pinterest, Instagram, Discord and much more.
Despite the youngness, Flutter is gaining lots of attention in the “cross-platform square”. In fact, there are already some (complex) apps that use Flutter, for example, Google Ads, the Alibaba’s app Xianyu.
And for today is enough. After this brief introduction, in the next episode, we’ll talk about how to build User Interfaces.