Mobile app development: native, web or hybrid?

AppFutura
Published on Nov 10, 2014 in App Development
Mobile app development: native, web or hybrid?

There are three kinds of mobile applications: native, web (or HTML5) and hybrid. A native app is developed specifically for one platform (iOS, Android…); this means that it is written in the specific language used for development on that platform. It is installed through an app store, live on the device and the user accesses it through icons on the home screen. A native app can incorporate gestures and work offline.

A Mobile Web App (or HTML5) is not a real application; it is running in a browser, written in HTML5, and is essentially a website, but looks like a native app. Users access it as they would access any web page, going to an URL and then they can “install” it on the device’s home screen by creating a bookmark to that page. It is basically a website written with JavaScript, which allows the app to perform dynamically, not having to refresh all the time to see the changes as you would do with a common static website. This is what makes it be interactive and feel like a real app.

A Hybrid app is a part native, part web app. Like native ones, it lives in an app store and can take advantage of the device’s features. And like a web app, it relies on HTML being rendered in a browser. So it is basically a web app which is deployed to a native platform inside a native harness.

HTML5

Portability

The portability is the ability to use a app on other platforms. Can you use the same app on iOS and Android, for example?

A web app has the best portability, because it works on any platform. Your code can be ported across platforms, which can dramatically reduce development time and cost. As for a native app, the portability of the code to other platforms depends on how they were written.

A hybrid app combines the best of both worlds, using a common code base to deploy a native-like app to a wide range of platforms. It allows cross-platform development, which notably reduces development costs. This means that developers can reuse the same HTML code components on different mobile operating systems. That obviously improves code portability because if you want to port your app to another platform, you only need a native harness on that other platform to run it; the HTML5 content of the app is directly portable.

Native Hybrid

Pros and cons of the different types of apps

A Native app has access to all the hardware features (camera, microphone, GPS…), it is faster, works better offline and lets you create richer interfaces and graphics. But it needs more developing time and cost, ongoing maintenance and have no portability. On the other hand, content is more discoverable on a web app, and maintaining a web or hybrid app is easier. So if you’re looking for platform independence, it’s better to use a web or a hybrid app.

A Web app offers fast development, simple maintenance and full portability, meaning that a mobile web app works on any platform. On the other hand, it does not have access to the phone camera or microphone.

A Hybrid app combines the development speed of a web app with the device access and app store distribution of a native app. The main disadvantage of a web or a hybrid app is that they can’t support heavy graphics as a native app does. Another con is that both native and hybrid applications must pass approval processes and content restrictions imposed by app stores, while the web is free for all.

In conclusion, there’s no one-size-fits-all-solution: it all depends on which users you are focusing on. That’s why developers have to deeply know their users, and what they will ask for. Developing a hybrid or a web app is definitely cheaper, while writing a native app requires specialized talent and investing time and money on obtaining these specialized skills. But if you want to provide a unique user experience for a determinate platform or OS, with better graphics, navigation, animations and full interaction with the device’s features, you should focus on native.

Phonegap

Top cross-platform development tools

On the one hand, HTML5 is the most popular option for developers building a cross-platform app. The good point is building for HTML5 is free, and web browsers and web views are available on all the platforms, so developers can transfer their skills from building websites to building a mobile app. Also, HTML5 is supported almost everywhere.

Most developers choose PhoneGap (actually Apache Cordova) to create their cross-platform app. PhoneGap is an open source and free framework that allows developers who use HTML5 to access additional mobile specific functionalities. These apps install like a native app and allow app store discoverability. This way, you can usually have a version of your app on the web and in the app stores for minimal additional effort. On the cons, we find that the performance of a PhoneGap app is often criticized.

Another of the most popular tools to build a cross-platform app is Appcelerator’s Titanium. It provides a unified JavaScript API (across devices), alongside native-platform-specific features. Its main advantage is that by using JavaScript code you can normalize code across platforms and exploit the same skills on several platforms. The major con is that developers have to manage target platform SDKs locally.

On the other hand, we find Qt. Contrary to HTML5, it requires a commercial license for most commercial use on mobile. It targets a number of embedded, desktop and mobile platforms. It’s supported on all major platforms, has better cross-platform compatibility, performance and graphics than HTML5. It’s true that, in theory, you can target more platforms with HTML5, because it’s more open than Qt. However, the process of creating standards and getting multiple vendors to implement them is slow, so Qt can be more agile. Finally, with HTML5 you depend on a third party framework or building your own clones of native interface elements, while Qt lets you use components that clone native interface elements or use real native UI calls.

Looking for an app or software development company?

You can post a project on AppFutura for free and explain your needs for app or software development. You will receive quotes from qualified companies and will be able to hire the best candidate through a safe payment system.

Post a project

About the author
AppFutura
AppFutura

AppFutura has been around to list IT companies and marketing agencies for some years now. During this period, the team has published hundreds of AppFutura tips but also important information for the companies to know more about a specific topic of interest. Among some of the articles, you will find different posts of AppFutura team members that are not quite recurring contributors, like our CTO or our finance controller, as an example. From AppFutura tips to improve your presence online on our directories or some information regarding our company.

You might also like