How to deal with multi-platform applications is a common dilemma for many companies. Native applications are defined as software programs developed for a specific platform and has to be developed using the tools and language of the target operating system. Creating an application for iOS and Android means development and maintenance of two separate applications with different technologies, something that requires time and knowledge of the different operating systems. That is why I, together with Gambit, wanted to explore React Native and Flutter, two of the most popular cross-platform frameworks right now, as alternatives to native mobile application development in my master’s thesis.

React Native is developed by Facebook and based on React, a JavaScript library for building user interfaces. The use of JavaScript is without doubt one of the biggest advantages of React Native, since the language is commonly used by web developers. Applications can access platform-specific features such as the camera by accessing the target platform’s native API through a JavaScript bridge. UI components are also rendered by calling the native rendering APIs, which gives the applications a true native look and feel.

Flutter is developed by google and creates natively compiled applications. The applications are written in Dart, a relatively unknown programming language before it was introduced with Flutter. The source code is compiled to the native language, which is why Flutter applications have great performance. The framework does not use native UI components like React Native but renders its own components that are native looking.

The frameworks were evaluated based on a set of weighted criteria containing typical requirements of mobile applications and the development process of them. The results showed that React Native was the most suitable cross-platform framework, even though both frameworks turned out to be viable alternatives to native development. React Native received high scores in most categories and can therefore be considered fitting for most types of applications. Flutter could however be a better option for applications where performance is essential, and a native look and feel is less important. React Native and Flutter are proof of how much cross-platform frameworks have evolved in recent years. They produce well-functioning applications with user interfaces that closely resemble the native ones, with a simpler development process. Unfortunately, they will always be one step behind on new features provided by the native frameworks, and there is no guarantee for how long they will last since they are largely dependent on voluntary developers. Therefore, in cases of applications predicted to have a long lifespan, native applications are still the safer choice.

The whole thesis can be read here.

Author: Elin Hjort, Technical Manager at Gambit

Want to know more?

Get in touch with Elin Hjort at firstname.lastname@gambitgroup.fi