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.
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 iOS or should it be cross-platform 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
First, you must decide whether you feel your idea for an app is best served on a native device (built
only for Android, 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
Native – 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.
Cross Platform – It’s much easier to develop one app using a cross-platform development 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.
HTML5 – With the advent of HTML5, 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
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 app development.
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.