Wiredelta

Building Mobile Apps – Flutter, React Native, Ionic or Xamarin?

We already introduced you to cross-platform mobile development and its advantages over native. We also mentioned some of the popular frameworks in this space. Now, we want you to know what to consider before choosing between Flutter, React Native, Ionic, Xamarin for your next cross-platform mobile development project.

 

The programming language

It is imperative to know what programming languages used by the framework that you are going with. A framework is similar to the foundational structure of your house. Therefore, it is crucial to choose the right foundation when you set out to build your digital project. 

 

Flutter

Flutter uses Dart as its programming language of choice. Dart is developed by Google. It is based on Java and C++. While it has a strong support base with many tools and libraries, it is not as popular as many other options listed further.

 

React Native

Facebook decided to go with JavaScript as their choice for programming language. It is one of the most popular options out there. There are many reasons for its popularity. 

 

  • Simplicity: It is relatively easy to pick up. 
  • Versatility: There are numerous different ways to use it. 
  • Speed: Client-side JavaScript can be run right away in the client-side browser. 

 

All the aforementioned leads to more people being able to code using JS. Which in turn means the more qualified workforce for you.

 

Ionic

Ionic utilizes JavaScript too, as well as HTML5/CSS and by extension Angular. However, it also requires Cordova or Phonegap wrappers to access native platform controllers. Additionally, Ionic framework allows you to use Microsoft’s Typescript to simplify code.

Cordova/ionic

Xamarin

To build cross-platform applications Microsoft’s Xamarin uses C# with .NET. Both are powerful and mature technologies. The most notable advantage of C# is code reusability. It works well with most of the known platforms. 

 

Community

When asked, mobile developers say in one voice that a framework’s community size is one of the most important things to consider when building a cross-platform app. The larger the community surrounding the framework, the more likely it is to find important information. Such as updates, solutions to different bugs, tutorials to name a few.

 

Flutter

 

Flutter is a relatively young technology compared to the rest. Yet it is stable and mature for its age. It is already catching up and overtaking most of its competitors in community size. Flutter’s popularity spreading like wildfire. There are many conferences and meetups that both take place online and in real life. All of that leads to developers being able to solve common issues. 

 

React Native

 

React Native is an absolute leader when it comes to community size. The framework was launched in 2015 and has achieved enormous popularity. One of the most recent conferences on React Native was held in Amsterdam and was visited by around 1300 developers from around the world. Meetups, albeit smaller once happen in almost every major city. 

 

Ionic

 

Ionic is seemingly the only independent project among the big four cross-platform frameworks. It is well funded and actively maintained. It can boast about whooping 5m developers in over 200 countries worldwide. Despite being diligently maintained, it is, however, as mentioned depends on 3rd party technology of Cordova/Phonegap. Neither of those, as actively maintained as Ionic is. Which creates a bottleneck.

 

Xamarin

Xamarin is the oldest of the four frameworks. It was created in 2011. By the time, Microsoft acquired it in 2016 the project amassed 1.4M developers across 120 countries. It is used by companies like Pinterest, Slack, and the World Bank. Over the years the technology has garnered many positive reviews. Xamarian is famous for frequent updates and testing. An advantage that substantially boosts the framework’s worth.

 

Documentation

Decent accompanying documentation is an absolute must for evaluating what cross-platform framework to go with. The well-documented tool is easier to use and upgrade


Flutter

Flutter’s getting started guide explicitly outlines platform setup for both Android and iOS, as well as IDE setup. On top of that, Flutter has a CLI tool called flutter doctor. It guides developers through all the necessary steps. It checks which tools are installed and which should be configured. Once the “doctor” is satisfied you are ready to create new apps with Flutter. There are separate pages for continuous integration and testing and a how-to for setting up an editor. Flutters great command-line interface helps you setting up CI/CD effortlessly.


React Native

Unlike Flutter, React Native’s getting started guide assumes that the developers have already everything that is required for mobile cross-development, configured. There is a little bit of information on how to set up the Xcode command line, but it is not nearly enough. The documentation starts at – create a new project step. There is no guide for Android centric projects. Nor is there official documentation on setting up CI/CD. So one has to consult 3rd party sites.

 

Ionic

Developer guides provide instructions for clear installation, operations with UI Components, as well as easy adding native functionality via Ionic Native (a library of Cordova plugins and integrations). Additionally, Ionic also grants a command-line interface (CLI) tool for developing Ionic apps. 

Furthermore, it has its 2 own products – Ionic Framework and Ionic Appflow, to use in order to see and manage documentation and resources. 

Additionally, Ionic comes with an e-book about Building Firestone powered Ionic apps. It teaches you what Firestone is and helps to make Ionic applications using different API ́s.

Ionics ́ integration – Firebase, then connects the apps into a suite of backend services and analytics.

 

Xamarin

Xamarin provides an easy to use guide to build cross-platform apps. There are several requirements to meet before installation. Those are iOS version 8 or higher, Android version 5.0 or higher and Windows 10 Universal Windows Platform. After the installation, it is needed to build a file as a new mobile app, then add navigation and a database, style the app and continuing with further development. Xamarin also encourages you to learn the app concepts with several tutorials in Xamarin.Forms.

 

Performance

It is not enough to have a good app idea. The next step is to maximize its performance. Different cross-platforms frameworks offer various tools to reach this goal. So how to develop apps that are powerful, responsive and efficient?

 

Flutter 

As we already know, Flutter apps are written in Dart. So mobile development experience is required to develop them. There is no JavaScript bridge to start an interaction with the device’s native components. The speed it offers is amazing. Flutter apps are really responsive because there aren’t interpreters involved. So the apps run via natively compiled code. Flutter uses two different tools for better performance: Android Studio/IntelliJ and Visual Studio Code. Additionally, DevTools analyzes Flutter performance which one can fix afterward.


React Native

The performance it provides is very similar to native applications, as it renders code elements specifically to the native APIs. It allows native code to optimize the app’s performance. In order to build native apps, it is necessary to use native programming languages such as Java for Android, Swift or Objective-C for iOS. However, React Native being a hybrid between using native components and web components, has a multitude of benefits, including: 

  • 85%-99% of the code was shared between Android and iOS
  • delivering the speed and agility to the hybrid space – with native results
  • extremely smooth animations
  • clean interface with intuitive UX and simple navigation

 

Ionic

As mentioned before, Ionic utilizes third-party technology – Cordova, to render an application. This approach significantly decreases the speed. On the other hand, Ionic has a quick testing process that runs instantly in a browser and improves the development process.

 

Xamarin

Microsoft’s Visual Studio helps to create powerful features for apps. Apps built by Xamarin are considered as almost native, because they include Native user interface and Native access to API interface, and insure Native operation. Xamarin has two ways of building mobile applications and that is Xamarin.Android/Xamarin.iOS and Xamarin.Forms.

 

xamarin

 

Xamarin ́s Visual Studio is the most comprehensive free developer program to date. It has industry-leading tools, cloud performance, and training and support. Development tools are free for any platform, they include an extensible integrated development environment and code editors for building macOS and Windows applications on a PC or Mac platform. The question remains, what do users actually say?

 

“With Visual Studio Tools for Xamarin, we can add a new feature to all devices in weeks or days. In the past, it would take months to achieve function parity.”

– United Parcel Service (UPS)

 

Licensing 

Licenses can seriously affect your cross-platform development. Various licenses allow for different things. You don’t want to find out in the middle of your project that you are not allowed to use something.  There are two different licenses, under which these cross-platform frameworks work. MIT license for React Native, Ionic, and Xamarin. Flutter functions under the BSD license. BSD-licensed projects can be reproduced into MIT-licensed projects. For MIT license distribution, contribution credits are not needed. BSD does not allow distribution without them.

 

React Native, Ionic, XamarinFlutter
Under MIT licenseUnder BSD license
  • no need to make source code public when distributing the software
  • the possibility to add modifications under the license
  • does not require documenting changes added to the source codes
  • no explicit position on patent usage
  • nowadays most typical used is 3-clause version
  • allows merging, publishing, selling and sublicensing
  • does not require to distribute the source code at all
  • requires retaining all codes of the BSD license notice, if redistributed or reproduced
Flutter 

Licensing for Flutter consists of two components: an engine, which uses various software components with many dependencies, and the framework which requires only one license. 

 

React Native, Ionic, Xamarin

These cross-platform frameworks are under the MIT license, which means that they are free of charge for commercial and private use, modification and distribution.

 

So what framework should you choose to build your mobile app?

In order to pick the right framework, it is important, to sum up, the goals of your digital project. What is the purpose of your app? Does it need to be fast or is it a bloated and complex system with various services running? These decisions will directly affect your apps ́ functionality.

 

With the right technologies, developers are able to create a service app or MVP app (Minimum Viable Product) pretty quickly. Scalability is a very important factor to take into consideration as well, especially when it comes to future expansion. 

 

You also need to think about user experience and performance, those can be satisfied with different tools and components. 

 

Why Flutter?

Flutter is a relatively young framework but is catching up with other competitors with its community size and popularity. Flutter ́s doctor is a great helper and will guide you along the way. Are you familiar with JavaScript?  If not, this framework is probably a choice to think about, because it uses Dart as a programming language. Apps made by Flutter are responsive, speedy and running smoothly. For example, incredible applications like Alibaba, Google Ads, AppTree and Hamilton Musical

 

Thinking about React Native?

JavaScript offers many advantages, such as simplicity, versatility, and speed. It is one of the most preferred programming languages among developers. The disadvantage can be a lack of documentation for setting up XCode command line and Android centric projects. Apps behave similarly to native applications when using JavaScript. If your interest in React Native has been piqued, then check out the 5 most popular React Native apps listed here.

 

What about Ionic as your cross-platform mobile app framework?

Ionic utilizes JavaScript and HTML5/CSS, which are popular and easy to find developers for. A drawback could be that it requires third-party Cordova/PhoneGap to access native platform controllers. It is offset by installation, operations, and functionality being clear and simple. To see what other apps where Ionic is being used, check out the 10 most popular Ionic apps.

 

Or Xamarin?

The main advantage for Xamarin is, that it utilizes C# with .NET, so you can easily reuse code. This framework is the oldest among the four mentioned. Xamarin Forms will help you to learn the apps ́ concepts. Apps made by Xamarin work almost as native. It performs great because it uses Microsoft’s Visual Studio, which includes many industry-leading tools and support as well. 

Success stories

In the past decade we have launched over 100 websites and more than 20 mobile apps, helping each of our client get closer to their digital goals.

Executive Global
Network

Connecting executives around the world in one of the largest professional networks

Philip Morris
International

Working together towards a smoke-free future for the Nordics.

Ønskeskyen
(GoWish)

Denmark’s largest wish cloud is going global with a brand new look and a lot of new features

How can we bring you value?