Choosing a right Mobile platform for your business ?

Gourav Vaidya
Xebia Engineering Blog
3 min readOct 23, 2020

During this mobility era where mobile is not just about luxury but it is more of necessity where it is not just for making call but to control lot of stuff which includes your car,home etc.

The number of Smartphone users worldwide keeps soaring and it will rise to 3.8 Billion in 2021 and to cater this we need Mobile apps for different verticals.

(Source Statista)

And to develop mobile app there is always a debate to choose Native vs Cross-platform and which Cross-platform. To make the decision simple lets look at the key decision factor between Cross-platform vs Native

So based on business need we can choose either CrossPlatform or Native Application keeping above factors in mind.

Lets take an example/scenario. If we have to develop an app for e-commerce with just Product catalog UI or Payment Api integration we are going to go ahead with Cross-platform. And if we have to develop an app with feature like AR ,hardware integration and if that hardware api is not available in cross platform then go ahead with native It will have less risk.

Now we have quite a few cross platform framework. Let’s look at the top 3 most loved Mobile Cross-platform framework of 2020 (Stackoverflow Survey)

Source Stackoverflow(https://insights.stackoverflow.com/survey/2020#most-loved-dreaded-and-wanted)

Lets look at the tech stack of Flutter,React Native and Xamarin.

Flutter : Flutter is one of the advanced levels of UI kit launched by Google. This reduces complexity drastically, as Flutter only has Widgets. Widgets are UI controls that you can use in your app. Your entire app will be made up of Stateless or Stateful Widgets. The core of Flutter is Flutter engine, which is mostly written in C++ and supports the primitives necessary to support all Flutter applications. The engine is responsible for rasterizing composited scenes whenever a new frame needs to be painted. It provides the low-level implementation of Flutter’s core API, including graphics (through Skia), text layout, file and network I/O, accessibility support, plugin architecture, and a Dart runtime and compile toolchain.

Flutter Architecture

React Native

React Native Architecture

React Native: React Native was developed by Facebook and was initially released in May 2015. It was later discovered by a larger community, and ever since it has become mainly community-driven. React Native provides its own UI abstraction layer over iOS and Android platforms. React Native core and native components invoke the native views so that you can write the smartphone app UI with JavaScript, instead of Kotlin/Java or Swift/Objective-C

Xamarin : Xamarin uses single language and runtime that works on different platform. Xamarin.iOS compiler compiles source code into an ECMA CIL (common intermediate language) and CIL will convert into native code using sdk tool Mtouch. In Android C# is compiled to intermediate language with a package of MonoVM and JIT

Xamarin Architecture
Few Factors which we experienced while using it.

Conclusion: Every platform has its own pros and cons but usually we take decision based on the key metrics i.e Developer Pool, TTM,Development & Maintenance cost,App performance ,Feature Availability,3rd Party libraries support.

--

--