Native apps are specific to the mobile operating system, so an iOS app will only run on iOS devices.
The obvious disadvantage of native apps is that you have to build a native app for each platform that you want to support. If that’s just one platform, then great. But for most businesses, iOS and Android are the minimum basic starting point while Windows Phone and Blackberry support might be necessary depending on your situation.
If you build three apps, that means that you have just tripled your maintenance costs. If you want to update your apps, then you will need to code three separate updates.
iOS apps are written in Objective C, Android in Java, and Windows Phone in C# and .Net. That means that you have either just tripled your development team to maintain the apps, or you have forced yourself to outsource every little update.
There are a lot of advantages to native apps which can justify these expenses.
You can’t match the performance of a native app. If you want an app that just flies, then you should consider native.
You also get full access to all of the features of the phone: GPS, accelerometer, NFC and anything else they put into the phone. You can use it all.
Another, often overlooked benefit is that native apps have a native look and feel, and use native interfaces. This makes it easier to use as the end-users aren’t forced to learn a new interface.
Finally, a native app gets you into the app stores which gives your app extra ways to be found. This isn’t important for a corporate app that you’ll be distributed internally. But if the app is part of your product or if it is your product, then you want the app store presence.
Web-based applications use web technologies like HTML5 and run in the browser. As a result, they run on any smartphone, tablet or computer that has a modern browser.
One big disadvantage of choosing a web-based solution is that you are limited in what smartphone features that you can access. The main supported features are the Geolocation API and offline storage.
That leaves you locked out of a lot of important features like the camera and the accelerometer.
A well-coded and architected web-based solution can be fast enough for most uses, but it won’t be as fast as native and a poorly coded one can be painfully bad.
The first big advantage is cross-platform support. That means less work to build and maintain.
An often-overlooked advantage is that it is a lot easier to find people with HTML5 skills in a company, so you can probably update the app without adding a new hire or paying an outside contractor. Even if you do pay someone, those skills are a lot more plentiful and thus cheaper.
The biggest disadvantage of a hybrid app is that it won’t have the look and feel of a native app. You could customize the HTML5 to look native on each platform, but then you can’t reuse the HTML5 code for your other platforms.
Another disadvantage is that you still need access to all of the different native coding skills, albeit not as much as you would with a full set of native apps. Any time you want to update a feature of your app that uses various features of the phone’s hardware, you will be working with native code.
The performance again will not be on par with a native app, but it can still be pretty good.
The hybrid approach combines a lot of the advantages of a web-based approach, like reusable code, while still being able to interface with the various hardware on the phone.
While you won’t be able to update everything easily, you will still be able to update the web components without advanced coding skills.
The answer is, it depends.
It depends on who will be using the app, how much you can afford, and what skills you have in the house. It depends on your brand, your marketing, on what you need the app to do, and a whole host of other factors.
However, knowing the basic advantages and disadvantages of each approach gives you the information you need to make a solid decision on the matter.