Should I build my app native or hybrid? – EPISODE 7

Aman Birdi on 26th March 2018

With the rise in different types of code available for app development, more and more people are asking the question on whether they should build their app natively to the iOS and Android operating systems, or use what’s called a cross-platform coding language. However, before we answer the question, let’s clear up exactly what both are.

First native apps. Native apps are those that are written in a programming language specific to the platform they’re being developed for. For example, let’s say you were creating a native app for iPhone. That app would have to be coded in a specific language for the iOS operating system seen uniquely in Apple’s devices to understand and read, so it can run the app.

As a consequence, because it was written in Apple’s specific coding language, it means that it can only run on Apple devices. That means it can’t run on Android devices, because the Android device can’t understand it. It’s like asking someone who speaks only French to read English. Same principle. If you wanted to run the same app on Android, you would have to natively code it for Android, in a language that Android can understand and read.

This is the concept of native apps. The native programming languages for the iOS seen in iPhones and iPad include “Objective-C” and “Swift”, whereas native programming languages used for the Android include the languages “Eclipse” and “Java”.

So that’s native apps. Now let’s look at Hybrid apps.

Hybrid by definition according to the Oxford dictionary means “a thing made by combining two different elements”. You see the term often used for cars that utilise both a petrol or diesel engine combined with an electric motor. It combines two different elements. Apps are similar.

Hybrid apps are those that are essentially mobile-optimised websites accessed from an isolated web browser within an app shell. What do I mean by this? Imagine you designed a website, and that website was mobile-optimised meaning that when you accessed that website on mobile, the elements such as the text and images would change so that they adapt to a mobile screen size.

Now imagine putting a shell around this mobile optimised version of your website, and then putting it as a shortcut on your phone as an app icon, next to your other apps. So that when you open that shortcut, or app icon, it opens up the website, on a browser, as you would see it opening normally on mobile.

That’s essentially what a hybrid app is. It appears as an app, but mostly it’s a mobile optimised website. The only difference between it though and a standard mobile optimised website is that shell around it. That shell means users can not open another website within that session of opening the mobile-optimised website. That shell keeps the user, once opening the shortcut, or app icon, within their site and their site only, just like a native app does. It keeps the user on that content. Pretty nifty right?

What’s more though, and importantly, that app shell acts as a channel. It allows the mobile-optimised website, to communicate natively with the device. This means the website, wrapped in this shell that some call a native wrapper, can have the accessibility other apps have on the device, such as to the device camera, or location settings. It’s a very clever bit of coding language and as a result, hybrid apps are becoming increasingly popular amongst developers in the industry.

But why is it called a hybrid app? Well it’s called a hybrid app because it combines the language used to build a mobile-optimised website, known as HTML5, with elements of native coding languages – that app shell. It combines two different elements.

Importantly, and what makes it differ so much from native apps, is that by using the hybrid coding language, the app can be understood by both iOS and Android devices. This means that unlike native devices, where you have to code your app individually to be understood by the iOS operating system in iPhone and the Android operating system used in popular Samsung and other branded phones today, you only have to code it ONCE for it to be understood by both operating systems. That’s a huge advantage!

So now that you know what both types are, which one should you go for when building your app? Native, or hybrid? To answer this question, we’ll compare them in terms of the two things that I think matter most when it comes to choosing a coding language for your app:

  1. Performance
  2. Scalability

First: Performance. Native apps have better and faster performance compared to hybrid apps. This is anything from loading times, to smooth animations plus more. And with the development of Apple and Android’s operating systems, this is unlikely to change in the near future. Why is this important? Well it really gives your app the best chance to shine in a competitive market. It’s allowed the chance to perform optimally. Having this optimal performance really shows your users that you have dedicated the time, energy, resources and effort into producing the best possible platform for them. That speaks volumes for your brand. If you want to be at the forefront of the industry, then show your users that with a high-performance solution.

Native apps also allow for the best user experience. Why? Because they allow you the opportunity to match the UI/UX to platform conventions. What do I mean by this? Look at the Facebook app on an iOS device. You’ll see that the navigation bar is at the bottom of the screen. Now look at the Facebook app on an Android device. You’ll see that the navigation bar is at the top. This is because by convention, iOS apps have their navigation bar at the bottom and as you guessed, Android apps have their navigation bar at the top.

You can have these subtle differences in design using native coding languages, because you’re coding for each platform. With hybrid, you can’t. As a consequence, you’re more likely to please your users as they’ll feel more at at home with your app. You don’t have to compromise with UI UX in native. This altogether amounts to the best user experience. As an iPhone user, and I’m sure for many of you, it would personally be uncomfortable to see a navigation bar at the top in an app.

So that’s performance cleared up. Next, let’s look at scalability, mainly the ability to add more features, functions and capabilities to your app.

Put bluntly, native applications are more scalable than hybrid applications. Hybrid apps are known to be problematic when it comes to adding new features. It’s generally no trivial task. This is because adding more features, functions or capabilities to your app requires you to communicate more with the Operating System of the device. As you communicate more and more, a native app won’t have a problem but hybrid apps will. So if you are planning to integrate many more features and add more functionalities to your app in the future from the minimum viable product that you initially would make, then you would need a native app.

So in terms of performance and scalability, native applications win. But before I sound like I’m fully favouring native apps, I do want to point out that there are advantages to hybrid apps.

We’ve established that developing your app natively for iOS and Android operating systems requires two different sets of code: one for iOS and one for Android. This means you would need developers with two different skill sets right? In hybrid apps however, you would just need the one skillset which as we discussed before is the development code that is suitable for both platforms in iOS and Android.

Because of this, native mobile applications are more expensive to build compared to hybrid apps as you would be paying for those two different skillsets compared to one. Furthermore, the effort that has to be put into making a native app is a lot more compared to hybrid apps – more time would be needed and greater resources for the development team. So developing with hybrid first not only saves you costs but also valuable time which you could be spending on other activities relating to your app such as business development and marketing plans.

So there ARE advantages to building hybrid. That is undeniable. But if you are stuck in between developing your app natively or hybrid, the question you need to ask yourself is do you want to provide your customers with the best possible user experience? If so, would you be willing to invest more time, resources and effort into it? Or would you be willing to compromise the best possible user experience for your customers in favour of saving times and costs?

For us, the answer is easy. Quality comes first. Go native to begin with and stick with it. You get the best performance, the best user experience for your users and importantly, your app is immediately scalable, or at the very least, more so than a hybrid app.

Hybrid apps do have their advantages yes, but our final verdict is clear: To have the best possible product for your consumers now and in the future, build your app natively. Quite simply, you can’t go wrong.

So there we have it! Native is the answer! I really hope you found this useful, and who knows one day maybe hybrid apps will be the better answer. If you have any questions, don’t hesitate to drop me an email on aman@digiruu.com. Speak soon!