The debate over whether you should build a native app or hybrid app rages on.
Before we get started on this topic, here’s what hybrid apps and native apps are all about:
Native apps: These are built for a specific operating system, using a programming language such as, Java, Objective-C, Swift, etc. A native app developed for iOS won’t work on Android devices, and vice-versa. These apps take longer to develop and cost more.
This is an example of a native app:
This is an example of a hybrid app:
There are several factors that make hybrid app development seem attractive to some entrepreneurs.
The most persuasive being the low cost of development (developers estimate 30-90% cost savings over native apps), followed by time consumption and the convenience to run on any platform and device.
Then why would anyone bother building a native app? Here are 5 situations where you’d choose a hybrid app over a native one.
#1 If you’re okay with an ‘okay’ user experience
Marko Lehtimaki, CEO and founder of AppGyver, wrote a guest post for Venture Beat, where he said:
“Hybrid apps are normally considered a compromise in terms of the user experience. It takes a great deal of extra work on the part of HTML5 developers to try to produce platform-consistent user interface behaviour, which typically falls short of that of the native UI.”
Here’s another expert talking about the look and feel of hybrid apps. James Long, a Senior Web Developer at Mozilla developer at Mozilla, insists that the mobile web will never compete with native app development.
In his blog post, he highlighted some radical statements about the mobile web.
The web isn’t close to competing with higher-end native apps. You may think the UX is getting close, but there’s always more jank. Let’s not even talk technical; even if it is getting close, when companies want to develop a beautiful, ground-breaking app, they choose native. I’ve talked to enough developers to see that we aren’t close to changing this yet.
In a report named, ‘Web, Hybrid, And Native Mobile Apps All Have Their Place’, Forrester insists that we will go back to the future; that “[n]ative apps [dominated] client server days, but Web apps took over” and “History will repeat itself in mobile.”
Also, other research has shown that developer interest in HTML5 has slid, with the general consensus that HTML5 is best for a small subset of apps (such as internal line of business).
Maybe, that’s the reason 80% of mobile interaction is done via native apps.
#2 If you don’t care much about users
In an article on Mashable, iOS engineer Eric Miller compared native and hybrid apps in the most apt way. He said,
“Native applications have the benefit of familiarity. Developers already know how to code for iOS and Android software development kits and can expect how they’ll function. Users are also already acquainted with these apps. They know the feel, flow and navigation and everything about the applications they already use on their native devices, and trying to reproduce that using hybrid is a little bit tricky.”
“Hybrid apps always rely on a third party framework to keep up with rapidly changing iOS and Android platforms.”
Here’s the full video:
Another thing which can make you feel left out is that native development utilizes platform-provided SDKs that provide access to all available APIs.
This level of access allows developers to take advantage of latest frameworks provided by app stores to ensure that their apps include the latest and relevant features. For example, many native apps will get advantage of improved SDKs and operating system announced at this year’s WWDC.
#3 If you don’t want to build interactive and rich media apps
Have you seen any popular gaming app built using hybrid platform?
Reason being, hybrid apps are not the right choice for animation or graphic-intensive apps such as interactive games or rich-media.
BI Intelligence interviewed Michael King, director of enterprise strategy at Appcelerator and he described what he calls the ‘slope of interactivity.’
“The higher up the slope you go, the more interactive the app. Your requirements for a native functionality grow as you move farther up the slope. Something like Netflix video consumption isn’t very interactive — apps like that are a great place to use HTML5.”
#4 If speed is not your priority
Let’s set some context here.
A few months back, parcel and postage comparison website Interparcel conducted a study of 2,000 Britons for finding the patience levels of people.
Here are some interesting findings:
Yes, 10 seconds is all it takes for a person to close that slow link and move on.
Our smartphones and networks have become much faster today. Infact, GeekBench shows that the latest iPhone is ten times faster than a 2009-era 3GS.
Here’s a video which compares the speed of all the iPhones ever made and it is clear that the latest iPhone is the fastest.
Okay, so why are we discussing all this?
Because hybrid apps are known to be slower than native apps. It is not an opinion, but a fact.
In 2012 Mark Zuckerberg declared that Facebook’s biggest mistake had been betting on the mobile web and not going native.
Prior to 2012, Facebook users just had one complaint for the HTML5 based app, i.e. speed. The app was plagued with slowdowns, instability, and other issues. In fact, the experience was so slow that some people called the app a ‘patience testing experience’.
Soon after the native app went live, a note written on Facebook Engineering page, stated:
“One of the biggest advantages we’ve gained from building on native iOS has been the ability to make the app fast. Now, when you scroll through your news feed on the new Facebook for iOS, you’ll notice that it feels much faster than before.”
In the above mentioned guest post, Marko Lehtimaki addressed this problem, “In iOS the wrapped browser runs up to 3x slower than Mobile Safari due to security restrictions. In short, the user experience offered by hybrid apps typically falls well short of that for native app equivalents. There’s no sense in building a hybrid app if it’s going to receive a one-star rating in the app store.”
Hybrid apps are slow compared to native apps and this is because hybrid apps add another layer between the user and the app.
On the other hand, native apps have advanced UI interactions and fastest performance.
#5 If you are okay with restrictions
When Linkedin switched from a hybrid app to a native app, Kiran Prasad, LinkedIn’s senior director for mobile engineering, said the following for hybrid apps:
“There are a few things that are critically missing. One is tooling support — having a debugger that actually works, performance tools that tell you where the memory is running out.
If you look at Android and iOS, there are two very large corporations that are focused on building tools to give a lot of detailed information when things go wrong in production. On the mobile web side, getting those desktop tools to work for mobile devices is really difficult.”
The benefits of hybrid apps are clear — write once and deploy everywhere — but there are still certain restrictions which come along.
- Native apps have the advantage of being available even offline. Whereas, much of a hybrid app’s functionality is Internet-dependent because of the extensive use of web code. The portions of the program written in native code are able to be accessed offline.
- Like native apps, hybrids aren’t found by search engine crawlers, meaning you’ll have to establish a landing page to take advantage of search optimization.
- Native apps have more access to a device’s features (such as camera, GPS, contacts, etc.) and can use these features more effectively.
- Native apps can take advantage of in app purchasing, and hybrid apps cannot.
Deciding on the right architecture for your app is like a million-dollar decision. However, there is no right or wrong way of doing this and it truly depends on your needs. List out your priorities and requirements, do a market survey, weigh the pros and cons of each type and then take an informed decision. Don’t base your decision purely on the cost of development.
Image credit: Sixrevisions, roammobility