auhtor_image
Oleg Illiashenko

Mobile Practice Lead

Cross Platform Mobile Engineering Tools

Mobile development has had an inbuilt complication from almost day one if you want to ensure the widest audience possible, and that is the competing platforms. Usually, covering the entire user base means developing for two platforms separately, iOS and Android, adding time and cost to the entire process. However, recently several tools have come to market aimed at streamlining the development process by providing cross platform support. Choosing the wrong tool could be a disaster for your project, so we look the best 4, and see where they are best deployed and how effective they can be.

Ionic

This is an SDK for hybrid mobile app development, using CSS and JS components built upon AngularJS, SASS and Apache Cordova. It is best used for prototype development or simple client applications, and it allows a high-percentage of code reuse for both platforms to significantly shorten the overall development process.
Its main issue is in UI development, where its use of WebView / UIWebView, and API platforms via special plugins means that developers are unable to build Native App UI. When looking at Ionic, it is important to look at how much of the project functionality is related to the native features of the device.

Xamarin

Xamarin is cross platform and uses in C# and .NET Framework, with apps developed inside the Xamarin framework compiled into the native one for each platform. This means high performance and platform native appearance is easy to achieve. While this allows native UI for each platform and the advantages that brings, it also reduces the amount of code that can be reused across platforms, and so takes longer to develop for than a tool like Ionic.

Flutter

Using the Google developed Dart Language, this cross-platform development tool is particularly suited to multithreading applications, and it can achieve good FPS in suitable apps. However, the framework is still an Alpha build, with no information about likely releases for stable versions, as such, while Flutter shows promise, it needs to mature a little before it can reach that potential.

React Native

Using the Facebook owned React framework, this is what you could call a hybrid development tool It uses a special bridge for some js-written code to interact with the native written part through a special bridge. This brings both advantages and disadvantages. It provides excellent interaction with the native capability of the device, however, there are frequent releases, some of which can break features. In addition, it is not reliably cross platform functional, you always have to check both platforms because some parameters remain platform specific.

Conclusion

While each tool brings some useful aspects to the development process, there are no one tool that can do everything. Therefore all of them have a place, and for developers, it is important to match the development tool to the requirements of each individual project.