Guide to decide between Hybrid, Cross-Platform and Native app development

Rajiv Manivannan
5 min readMar 17, 2018

--

With mobile application these days wanting themselves to end up in the hands of every smartphone user irrespective of what operating systems they use, it's high time the App developers make wise choices about their development medium, keeping in mind the relationship between the intention of app, user engagement needs and of course, most importantly, the data that’s going to be dealt with.

Now, let me narrow down this discussion to what roles native, hybrid and cross platform development play among the two most grossing mobile operating systems i.e. Android and iOS.

Is Hybrid App development for you?

Hybrid applications are the ones developed using native and web technologies (mostly). This means, along with the native programming language, web technologies like HTML5, CSS are required. Not to forget that you will have to install the Cordova Plugin on top of your Android Studio and Xcode. Also, a good knowledge of frameworks like Apache Cordova, Ionic Framework etc., happens to be required.

The glory of a single browser window is enough to serve the App, given that the whole development is made majorly using web technologies. Just imagine running a website in your mobile browsers. The UI and business logic running in virtually separate environments within the App throw the first warning about the app performance.

For someone who is all about having the same, exactly similar user interface for both their Android and iOS versions, hybrid development falls as an advantage. The user interface will be implemented using HTML5 and CSS. One can develop the User Interface of your own or can make use of UI frameworks that are specifically designed making use of jQueryMobile, Onsen UI etc., while the business logic are implemented in the Javascript.

The UI and business logic implementation being independent, the development pace will be fast and can be done by the bigger population i.e web developers and the single code base serves both the platforms in discussion.

While that might bring a smile on people with project deadline concerns, here is a list of things you might have to consider.

If your application requires core features of the device and using many Third party SDKs then hybrid development would interrupt you with its limitations to do so only via native interaction. In other words, you will be forced to create an interface i.e. A plugin using the respective native language (Java / Objective C) and make it communicate between the Javascript and the native platform. This means, every time you have a dependency on any third party or own customisation, plugins are to be written for each platform by developers who are familiar with the native language, official development environment, features and of course, the very own limitations of the Native platform as well. The need for an additional layer in the architecture, with more and more additional plugins throws in the second warning about the application performance.

So, here is the bottom line, if your app serves static content like text, images, capturing not a handful of data from the user, hybrid development is the one for you. If not, go ahead, read further to find out.

When do you need Cross-Platform development?

Cross-Platform development involves an intermediate language mostly JavaScript / C# and frameworks like Xamarin, React Native, Flutter etc., which are not native to the device OS. Here, remember the fact that the majority of the third party libraries, and service implementations for third party service exclusively for the Native community.

React Native provides an internal wrapper around the Native class, with their own implementation via JavaScript, called Native UI Component, hereby, equipping us for the designing in a single code base for both iOS and Android platforms. However, if there is a call for separately designs on either platform, respective Bundle Files can be added to this code base.

Apart from the UI provided by the framework itself, the need for a custom UI library / own implementation developed in Native is predominantly high. These implementations will have to be in Javascript just like the App’s core business Logic. The special implementations are put up into separate Native modules.

Meanwhile, Xamarin created their own UI support over C# leaving us with two options.

1. Xamarin Studio tools give you the comfort of using the native components i.e iOS XIBs, storyboards and Android layout files.

2. Xamarin.Forms on the other hand lets you design your UI at once go to use in both platforms as *.xaml layout files.

When a custom UI Library is developed in Native, C# codes are required to bind it into your Xamarin App just like the other business logic. These additional codes are classified as Xamarin Plugins.

Every cross-platform option available requires a hierarchy where the native classes wrap over the connecting language, owing to be interrupted by one another in a never ending cycle.

Even though it provides feature like Hot /live reload to see the instant changes of UI and functionality of the App while developing.There are lack of tools to monitor and identify the memory leaks and perform performance test.

Although the performance here is much better than the browser experience, it’s still not the most convincing unless your app is just handling data to and from the user / server while having moderate usage of core features.

Is Native development worth a shot?

Native development involves developing apps using the languages native to the Device OS, i.e., Java or Kotlin for Android and Objective C or Swift for iOS. Developers can have the luxury of Officially supported Development tools (Android studio and Xcode), Performance monitoring tools and Testing frameworks.

For UI implementation, both the platform provides their own ‘out of the box’ Native User Interface along with the guidelines. Also, there is no limitation for advanced user interface customisation and almost everyone who uses the device will be familiar with them.

Implementing App business logic and exploiting all the existing and newly released features offered by the device and operating system is made possible via the respective platform specific languages. Right from the third party libraries, and service providing to communicating with external peripheral devices, one can witness how easy and effective the implementation is. Thus, there is no sacrifice on the app performance and speed.

Thus, it is obvious that for apps that are going to use most of the core features of the device, for an app doing graphical intensive work, for an app that’s going to be used by millions of users, for an app which is up for long term, frequent feature updates in order to be on pace with the new OS release, Native development methodology are straight out a value. This outweighs the other two brilliantly.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Rajiv Manivannan
Rajiv Manivannan

Written by Rajiv Manivannan

Senior Technical Consultant @TarkaLabs

No responses yet

Write a response