Posted By
Gaurang Patel
on
14. October 2011 01:50
By now, the word “app” has become common parlance in our everyday vernacular. Even Dictionary.com has a definition of the word to mean a “small, specialized program downloaded onto mobile devices.” Everyone knows what an app is and almost everyone even has an idea for one.
iOS
Often, I’m approached by people with great ideas for apps, but little understanding of the different mobile devices and platforms for apps and the different development tools for making an app. Should you make an app just for or should it be compatible? Which development kit should I use to make the app?
To find these answers, developers must first understand the nature of their app and then follow a sort of decision tree to determine the devices, platforms, and development process. I’ll show you how we do it here.
First, you must decide whether you feel your idea for an app is best served on a native device (built only for , BlackBerry, iPhone, etc ), cross-browser compatible (designed to work for more than one of these devices), or web-based in HTML5. Each has their own strengths and weaknesses that we can look at.
The advantage of designing an app for a native platform is that you can optimize the look and feel of each specific app for each device, pushing each device’s hardware to the limit. The obvious drawback is that code must be developed for each platform independently and you’ll be required to program the same app in multiple languages.
Native –
It’s much easier to develop one app using a environment that will work on multiple devices. There is no need to code in different languages for each device since this is done for you. If you need to create functionality specific to a device, you can add custom plugins. The drawback with this method is that since each mobile device uses different hardware and operating systems, the app might not be user-friendly and optimized for each native platform. If you decide to use cross-platform development, your next decision is which platform to use: PhoneGape, Titanium, or Rhomobile.
With the advent of , designing web-based apps that will work on mobile devices is now an option. Developing an app in HTML5 is simple and fast and requires less code and maintenance than the other options. Only knowledge of HTML and Javascript are needed to create an app that has the feel of a web app but is mobile friendly. However, since HTML5 is still new there might be some limitations in using features very specific to a mobile device. Also, HTML5 is not very robust for application development and low level user interface rendering is less flexible for high processing development, such as games.
So how do you decide which of these three methods to use? As a general rule of thumb, it depends on how complex the app will be. Use HTML5 if the app is simple and does not require interaction with mobile SDK specific features. Apps developed in HTML5 should just be browser apps that are mobile-friendly. But use a cross-platform development environment when you have more complex programs that need a faster development time. For even more complex apps that make use of the very specific features of mobile devices, you should develop natively for each device.
I hope this information will allow developers to make better decisions when planning . There will likely be an ongoing debate over which is best as these development environments change and even new ones emerge. But which platform here do you prefer to develop for and why? I’d love to hear my readers’ input on this topic.