Mobile technology has transformed the development landscape in recent years, and it's still anyone's guess what changes the next few years will bring. For businesses, deciding whether to pour resources into native apps or mobile web apps is a tough call. However, targeting mobile users opens up a wealth of possibilities, so the choice also may be hugely important. In this article, we'll explore the differences between these two types of apps and dig into their strengths and weaknesses. Which one's right for a given business is up for debate, but we provide food for thought. (To learn about different kinds of applications, see An Introduction to Application Software.)
Spot the Difference
A 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 Work
Of 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 Native
Native 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. With the introduction of HTML5, web apps have become capable of exploiting these features. But for now, these bells and whistles are still more commonly found in native apps.
A native app also has the ability to use offline data storage. Again, the advance of web technologies, such as HTML5, has begun to close this gap because web apps are now able to store data for offline use as mobile caching models continue to improve.
Native Apps Have Drawbacks Too
The 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 App Store, content is subject to a strict approval system. In some cases, apps have been quickly withdrawn from the store, leaving 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.
How Do Web Apps Work?
Web applications optimized for mobile use also offer significant benefits for certain projects. This is an area that has undergone significant change over the last few years, particularly through technologies such as HTML5 and jQuery Mobile, not to mention improvements in network connectivity. These advances have greatly impacted the ability of web apps to compete with native apps. (For more on mobile, see Should Your Business Go Mobile?)
The Advantages of Internet Applications
The major advantage of using web apps to deliver services is the simple fact that only one application needs to be developed. Of course, a successful web app is tested and refined to cope with browser, operating system and hardware differences, but the bulk of application processing remains accessible from any mobile user environment. Mobile browsers are advancing at a fast pace, and the functionality gap between them and their desktop counterparts is gradually narrowing.
Where Web Apps Fail
One disadvantage to web apps is that they cannot replicate the degree of quality that comes with native apps. Network connectivity, speed, bandwidth and latency are also potential drawbacks for web apps, although these should all improve with the advancement of mobile networks and browser technologies. In any case, these issues affect many native apps as well, particularly those that rely on data fetched over the web. HTML5 has begun to provide developers with access to facilities previously exclusive to native processing, such as offline storage and caching, so the differences will ultimately diminish.
Hybrid Apps: The Best of Both Worlds?
Some organizations have adopted a range of flexible techniques to provide a native app experience while minimizing platform-specific development requirements. Many native apps are essentially web application interfaces, so some developers are looking to maximize server-side processing. However, in such cases, issues caused by network connectivity remain significant hurdles.
For the future, all that can be said with any certainty is that things will change – and change a lot! It appears likely that advances in web technologies, particularly HTML5, will ultimately allow web apps to do pretty much everything native apps can do, but this may be a long way off. For current projects, development teams and businesses need to consider the particular tasks they are seeking to implement, and let this guide their choice. In other words, businesses need to keep their options open and avoid putting all their apps in one basket.