This post is a continuation from my previous blog about Gearing up to the mobile world. In my previous post, we saw how we can enable support to mobile channels of your site by using Responsive web design and a channel specific mobile store. Here we will discuss about building apps specific to mobile devices.
Here is the standard definition of mobile apps:
“A mobile app, short for mobile application, or just app, is application software designed to run on smartphones, tablet computers and other mobile devices. Mobile apps are installed and optionally configured on a mobile device”
Since mobile apps are installed on a user’s phone, there are some obvious benefits from it:
They run natively from a phone, hence they can make use of the mobile device resources such as CPU, memory better.
Can provide offline access of data to the user, an internet connection might not always be required.
Can have access to other features of the mobile phone such as Camera, File system for storage of data, GPS, access user contacts and so on.
If your application needs all the above mentioned features, then building a mobile application to support your application is a must. There are 2 main ways of providing this support :
Native mobile apps
Cross-Platform / HTML 5 mobile apps
Even though at an outset, this could look more of a technical discussion, an informed decision has to be made since each of these have their own pros and cons and can impact the overall project cost.
The main distinction between each of these three option is how the application makes use of the underlying mobile platform for execution, hence differing in the way these applications are developed.
Let us now discuss each of these approaches and benefits of it.
Native Mobile apps
Native mobile apps, as the name suggests are apps, that are tightly integrated with the underlying operating system. So, from a development perspective, there is a one to one mapping between the mobile operating system you wish to support and the different apps you need to build. As a standard, Android and IOS have been the platforms that customer target, closely followed by Windows.
Integration with Device Hardware – Although web apps are getting more sophisticated, they still pale in comparison to how native apps communicate with different device hardware components. Native apps can more easily communicate with bluetooth, USB, cameras, and GPS. In addition to the ability to communicate with device hardware, native apps can also communicate with other apps on a user’s device.
UI produced by the native apps are better than any of the other options
Typically perform faster than mobile web apps
- If you are considering multiple platforms, Development time is more, hence more time to market.
- Introducing a new feature to the application / fixing a bug, involves, developing the feature in each of the platforms, hence increasing the support/maintenance cost of the application
- Supporting multiple platforms requires maintaining multiple code bases and can result in higher costs in development, maintenance, pushing out updates, etc.
- Users can be on different versions and can make your app harder to maintain and provide support for
Common application that need native app support include apps which integrate with device hardware/features extensively, games or wants to provide the best user experience to the user.
Cross platforms apps
Cross platform apps/HTML 5 apps, enjoy the benefit of both the worlds, native and web apps. They are developed using standard HTML5 components and can be bundled to a specific platform. There are some standard frameworks available such as PhoneGap, Appcelarator which help the HTML5 apps interact with the native mobile components and also help in bundling and packaging. The fact that these frameworks takes care of the platform specific bindings makes it easier to develop these apps in a platform neutral way.
Faster time to market, you develop in a platform neutral way.
Since, it uses HTML 5 as the core development, there is less development curve.
Have a common code base across all platforms, less support headache.
Can’t access all of the device’s features (yet), one needs to write a custom plugin to achieve the same, adding on complexity.
Mobile apps with numerous graphic elements or animations may slow things down on some mobile devices and make the app browsing experience a little choppy
Typical application that go with Cross platform app include application which needs minimum interfacing with the mobile device. Typical example include e-commerce apps, content driven apps and so on.
So, as we can see each of the approaches have their own pros and cons. The one to choose best depends on your needs and a clear roadmap of your application helps you make the decision.
By this post, we end this 2 post series of Gearing up to the mobile world. Hope, after reading through the posts we have helped you realize how important mobile channel support is, what are the options you have at hand and how to choose the best one.