Native app development
Pro
- Apps where user experience is paramount,
- Apps where speed is vital,
- Apps that need tight integration with device features (camera, location data, motion sensors, contact lists, etc.)
- Apps that need to deliver an immersive experience—like certain games,
- Apps that involve virtual or augmented reality.
- Apps that require high security might do best as native too—iOS sandboxes each app and some Android devices provide the ability to create different profiles for official and personal use
Cons
- If you need to support multiple OSs, you could wind up building separate apps from the ground up for each OS.
- Each OS uses its own language and SDK.
- One way to control cost is to limit development to the two leading platforms—iOS and Android.
- Another answer to the problem of coding multiple times and getting dedicated developers would be using cross-platform tools like Xamarin Studio or Appcelerator Titanium—which are essentially software frameworks that let web developers create native apps for multiple platforms without having to know and learn separate coding languages. For example, a developer with knowledge of HTML and CSS can create an iOS app by using Xamarin Studio.
HTML5 Mobile Apps
Pros
- Where multiple OSs, devices and form factors must be supported while containing cost. Getting to market quickly on multiple platforms is a good use case.
- HTML5 developers are often easier to find than native developers, making HTML5 apps more convenient and cheaper to develop
- Can also be less costly to maintain, since there’s only one code base for all devices
- Apps can be upgraded without requiring users to download and install new code
- Google Docs and Scribd are good examples of successful web mobile apps built in HTML5
Cons
- Not right for every app. Limited when it comes to user experience. And if your app needs access to native device functionality, you might want to look into native or hybrid
- Not every device supports the full capabilities of HTML5, so work arounds might need to be devised for some devices
- HTML5 apps may be less secure than native apps because they’re not leveraging the all the security features of each OS
Hybrid Mobile Apps
What is it?
It is a web mobile app wrapped inside a native container. It can help to combine a rich user interface developed in HTML5 with the device-specific capabilities accessed through the native code. The visual element in a hybrid app is mostly delivered by the HTML part, while the native code interacts with the device—and readymade libraries such as PhoneGap help to connect the two.
Pros
- You can chose to mix and match the HTML and native components to meet the specific requirements of your app. It also provides a nice compromise between the advantages of native and web apps—easy and convenient development, fast deployment, and access to device-specific features.
- Netflix and Yelp are good examples of hybrid mobile apps
Best approach
The reasonable solution would be hybrid apps—that combine the cross platform capabilities of HTML5 with offline and device specific capabilities of native apps. Gartner even puts a hard number to this prediction—about 50% of the total mobile apps developed and deployed by 2016 would be hybrid apps. [http://www.gartner.com/newroom/id/2429815]Factors to consider when making a choice
- What do you need the app for? Does it bring a significant revenue model for your business or is it merely for a mobile presence an extension of your business website?
- What kind of experience does the app need to deliver to the user?
- What features it will need to have?
- Will the app need to access device-specific features—like geolocation abilities and the contacts list?
- Will it need the pinch and zoom functions?
- What about online and offline capabilities?
- What security features do we need?
- What is the total time that you can afford to spend on developing a new app, or how quickly do you need to deploy your mobile app solution?
- How do you intend to make your app available to users?
- Development cost? Don’t just think about development cost—consider the expected returns and benefits from deploying the solution too. An app that costs more to develop may be worth it in the long run.
References
Whitepaper from DMI Inc
Presentation on JQuery Mobile vs Appcelerator Titanium vs Sencha Touch by Steve Drucker
Question about Xamarin 2.0 vs Appcelerator Titanium vs PhoneGap on Stackoverflow