Most organizations have started mobile presence for their business which demands more and more great mobile experience on mobile devices. When developing a mobile interface, most important question would be which technology to choose. Should it be a Native app? Web app? or Hybrid app? There is no right answer or one best option for this. Each approach entails some strength and weakness which need many parameters to consider some of them are.
- Target audience
- Project timeframe
- Target platforms
- Features and functionality – What features would be used in the app
- Available developer with skills
- What phone user use
- What are their mobile needs.
Finding the one best approach could be a challenging task, but by considering these parameters and knowing the pros and cons of each approach. It can be identified which approach is best fit for an organization requirement.
What is Native Application?
A Native app is a software written for mobile devices that is developed to use on a specific platform (iOS, Android, Window etc.) It has binary executable files that are download directly to the device and stored locally. Majority of the code and assets reside on the phone. Native app can be downloaded by visiting the app store (Apple app store, Android marketplace).
The native app can access all the available APIs by the OS vendor or can access all the device’s hardware (camera, GPS, contact list, calendar etc.) but code written for one mobile platform cannot be used on another. For every platform different code need to be developed. To better understand the native app let’s understand the API.
Application Programming Interface (API)
An installed application when launched by the user it interacts with the mobile operating systems through API calls. Through these API calls, app can interact directly with the touch screen, render graphics, Sound, Videos from the camera, GPS, Orientation information and access other hardware elements and the GUI toolkit – Each mobile comes with its own set of user interface components, such as menu, buttons, input field, sliders, tab bars, menus bar, dialog box and so on, all these APIs are accessible for native app.
Different tools and languages used in Native App
|Freatures||Apple iOS||Android||BlackBerry OS||Window Phone|
|Languages||Objective C, C, C++||Java, C, C++||Java||C#, VB.NET etc.|
|Application Store||Apple App Store||Google Play||BlackBerry App World||Window Phone Market|
Pros and Cons of native app
What is Mobile Web Application?
When the term web comes up there are further two different approaches for web.
- Mobile website
- Mobile web app
Mobile website vs Mobile web app
|Feature||Mobile web apps||Mobile websites|
|Execution||By entering a URL||By entering a URL on a browser|
|User experience||Touch friendly, Interactive UI||Navigational UI between pages|
Pros and Cons of web app
What is Hybrid Application?
Between the native app and web app there is another approach called Hybrid. It is just like a native app that downloaded from app stores. It combines the native development with web technology. It is built using the web technology and wrapped in a platform specific shell. Phonegap is an example of a framework that take a web app and turn it into a native app for iOS, Android, BlackBerry, Window7. Symbion and more. These hybrid frameworks have APIs that allow access to the mobile hardware that are locked from the browser. That means web app have access to limited set of API but hybrid can access almost all APIs.
Pros and Cons of Hybrid app
Hybrid app can access the APIs which are locked by browser for web app
|Feature||Native app||Hybrid app||Web app|
|Phone features access||High||High||Medium|
Some Scenarios to use native approach
- If a company primarily interacts with mostly offline, then you don’t really need a web app.
- For an internal application which is distributed within an organization that issue a specific device (BlackBerry or any other) to their employees, native will be the right approach.
- For a rich UI application like a game application
Some Scenarios to use web app approach
- If you want the full control on distribution of the app and its periodical updates. Web app is the right approach as distribution and updates in native app is a long and uncertain approval process.
- If more and more users of application start to access the internet from their mobile devices than web app is a right approach.
- If the application need to be expose for larger audience than web app is the right approach because of its visibility in search engine.
Some Scenarios to use hybrid approach
- If the required application need to access the different features and capabilities of the modern mobile devices and these features of mobile or APIs are not open for browser then Hybrid app should be the right choice.
- If the budget and time is not enough Hybrid approach will be right as web development skill are very common and can be easily found in many organizations and using the web skills application can be delivered with a native like experience.
Any single approach cannot be considered as magic bullet for all need, each approach carries inherent limitations and complexity. One organization need may be different than other. Optimal approach for mobile application depends on the customer, business need and the experience which need to deliver. Choosing the right approach before starting is the is a crucial decision, different parameters need to be considered for taking the right decision.