Spot the DifferenceA native mobile app is a software application targeted at a particular mobile platform. Mobile device users download native mobile apps and install them on compatible devices. A Web app, on the other hand, is an application deployed over the Internet, rather than running on a device, and accessed through the user's Web browser.
Many large organizations provide both native apps and mobile Web access to their content and services, but this is not feasible for many smaller scale operations. Both options have advantages and disadvantages. Additionally, there are some inventive hybrid approaches to consider.
How Native Apps WorkOf the major mobile platforms in operation, Android and Apple's iOS have, by far, the greatest market share, but there are others, including the Blackberry and Windows Phone operating systems. Developing native apps involves targeting one or more of these platforms, each of which has its own software development kit (SDK).
Rather than being accessed via the Web, native apps are mainly deployed through app marketplaces that are also mostly targeted at particular platforms. These markets allow apps to be downloaded for free or commercially, with the app store taking a percentage cut of sales revenue.
The Advantages of Going NativeNative apps enjoy a number of natural advantages over Web apps for certain types of tasks. Native user interfaces provide an interaction level and quality that currently cannot be achieved through a Web app running in a browser. In addition, native app processing can employ mobile device hardware features, such as GPS and other localization facilities, accelerometers and touchscreens. As HTML5 develops, Web apps will also be able to exploit some or all of these features. But for now, these bells and whistles are mostly exclusive to native apps.
A native app also has the ability to use offline data storage. Again, the advance of Web technologies, such as HTML5, will begin to close this gap because Web apps will be able to store data for offline use as mobile caching models continue to improve.
Native Apps Have Drawbacks TooThe number one disadvantage, or at least consideration, for native apps is the amount of resources businesses require to invest in the development process. Each platform has its own framework, and to target more than one involves multiple programming languages - not to mention an understanding of the different application frameworks. In addition to the initial development project, maintenance of native apps is an ongoing concern, as the platforms they are designed to work with are constantly changing.
Depending on the app, there also may be significant costs related to distribution and promotion. The official app stores take a cut of each app sale. These have become so overcrowded that for new apps, getting noticed is no mean feat. For commercial projects, apps can be sold for a set, one-off fee or downloaded for free, with many apps using in-app advertising as an alternative source of monetization.
Another potential disadvantage of native apps is the level of control the app stores and platforms exert. This applies to apps and user data. Marketplace policies vary, but for some, particularly Apple's Mac App Store, content is subject to a strict approval system. In some cases, apps have been quickly withdrawn from the store, leaving with little recourse for developers. Since the official stores are the main sources of distribution for the major platforms, your apps are totally dependent on them and at the mercy of their decisions. In addition, there is the possibility that these apps may be removed from user devices, in which case users could permanently lose their data.