So you’ve decided to create a mobile application. Whether it is an extension of an existing digital offering (i.e. a website) or a killer stand-alone app, there is a fundamental decision that needs to be made out of the gate that plays a crucial role in the long-term success of the endeavor: Namely, 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 (i.e. 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.
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 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 and likewise for other platforms. While there is certainly a degree of savings in porting an app from one platform to another (versus building it up from scratch) the savings may be less than you would think. From a design perspective the task is often more straightforward in that it is changing the look and feel from one platform (say iPhone) to another (say Android). 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 even exist yet) will be able to access the app and use it immediately. There is no waiting for the [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 each of the competing App Store’s terms and conditions. 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 the 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 should also be taken into consideration when creating an app.
Cell connectivity will continue to improve both in coverage and speed. The next generation of cell phone technologies (4G) 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 and the edge that platforms such as iOS and Android currently have over them 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 tables 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.). However, a long term strategy would seem to favor web-based over native apps. Keep in mind that no matter which approach is taken, a well-orchestrated user experience is the best defense against the constant sea of change in mobile platforms and devices.
When is a spreadsheet more than a spreadsheet? When coding with Google Apps Script turns it into a dynamic dashboard. In my last blog post, I talked about how we...
Project managers are the unsung heroes of the development process. There’s so much more to shepherding a project to launch than just keeping the trains on schedule. Each role, from...