So you've decided to create a mobile application. Whether it is an extension of an existing digital offering (like a website) or a killer stand-alone app, there is a fundamental decision that needs to be made right away that will play a crucial role in the long-term success of the endeavor: whether it will be built as a "native" or "web-based" app.
A native app is one that is built for a specific platform, such as iPhone or Android, using their code libraries and accessing their available hardware features (camera, GPS, etc). A web-based app, on the other hand, is one that is hosted on the web and accessed from a browser on the mobile device. Let's explore the pros and cons of both approaches.
Native apps tend to be faster and more responsive. Because the code that runs the app is stored locally on the phone, there is no time spent waiting for static content (such as images and text) to be downloaded from the web. While dynamic content may still need to be accessed from the web, it’s an improvement over the web-based model in which everything needs to be downloaded each time.
Native apps can run asynchronously, meaning dynamic information can be stored locally on the phone temporarily and synced with the central web-based server later. While new technologies and features (such as those in HTML5) will allow for this to also be done in a web-based environment, native apps are still ahead of web-based ones on this front.
Going with the native app approach gives you access to that platform's hardware features allowing interesting functionalities such as taking photos, accessing GPS information, making phone calls, leveraging near field communication (NFC), etc. Because web-based apps are platform agnostic, they do not have access to the device’s hardware features.
While the App Store has gotten a lot of bad press since its debut, it can also be viewed as an asset. It represents free shelf space for new products and can be a great way to advertise to and gain new users, especially if an app offers unique features. When releasing a web-based app outside of the App Store, you would be entirely responsible for its marketing and distribution and would not have this same edge.
The biggest drawback to developing a native app vs. a web-based one is that a separate code base must be created and maintained for each individual platform. For example, if you decided to initially build an iPhone app, you would have to design, code, and deploy an iOS app to the App Store. If you then decide down the road that you also want an Android version, you will have to redesign the app for the Android device, code and deploy it to the Android app store—likewise for other platforms.
While there can be savings in porting an app from one platform to another (versus building it up from scratch) the value may be less than you would think. From a design perspective, the task of changing the look and feel from one platform (say iPhone) to another (say, Android) is often straightforward. From a development perspective however, the code bases are two entirely different languages and will have to be completely rewritten simply to mimic the original app’s functionality.
The biggest upside to a web-based approach is, of course, the biggest downside to a native one. When developing a web-based app you are centralizing your offering. Users of any mobile device (iPhone, Android; even Blackberry, Palm, and future devices that don't exist yet) will be able to access the app and use it immediately. There is no waiting for the [insert mobile device here] version of the app to be released and you need only have one person/team maintaining a single code base. Single-source means that there is a single version of the code base that all users across all platforms access and use.
In addition to this, updates to your app can happen in real-time "automagically.” There is no waiting for the App Store gods to review and approve your change, and you don't have to bank on your user base going through the process of updating the software themselves.
Another big upside to the web-based approach is that you are not tied to the rules set forth by the terms and conditions of competing app stores. You are free to offer content and advertising as you see fit.
It's also worth mentioning here that, from a technical perspective, things are moving forward very quickly on the mobile web. For an experienced web developer, many (but not all) of the limitations of the web can be compensated for or overcome entirely.
The biggest downside to the mobile web is the lack of (or limited) access to the hardware features of mobile device, such as GPS, camera, NFC, etc. For those developing an app that must have access to any of these hardware features, this limitation often forces the decision to go native.
Additionally, while the constraints and requirements of a developing for a platform may be seen as stifling or constrictive, they also serve to force consistency and inherently solve for many subtle details with very little work. When developing a mobile web solution, a person is responsible for everything concerning that app and cannot rely on the platform or app store for support.
Given the incredible rate that technology is advancing, the following considerations should also be taken into account when creating an app.
- Cell connectivity will continue to improve both in coverage and speed. The next generation of cell phone technologies will have a positive effect on the performance of apps that require access to web-based information. This has the potential to narrow the gap between native and web-based apps in terms of speed and responsiveness.
- Web technologies will continue to improve meaning the edge that platforms such as iOS and Android currently have will disappear over time. While Apple and Google surely have more tricks up their sleeves, web technologies such as HTML5 will become serious contenders to native offerings.
- As the app market continues to grow for both mobile devices and tablets alike, it will become more fragmented and considerable market share may not just be limited to one or two platforms. Additionally, new mediums such as interactive television are already coming up on the horizon. Considering the guarantee that there will be more mediums and more platforms as technology continues its march forward, the need for centralized product offerings will become more necessary for those who cannot afford to develop applications for multiple platforms.
Both approaches certainly have their share of benefits as well as drawbacks. Which approach is “better” for developing a particular application will depend largely on its desired functionality and reach as well as available resources (time, money, etc.). A long-term strategy would seem to favor web-based over native apps, but keep in mind that no matter which approach is taken, a well-orchestrated user experience is the best defense in the rapidly evolving world of mobile platforms and devices.
Image of dewy spiderweb courtesy Shutterstock