Mobile Development: Web App vs. Native App, Should You Go Native?
Note: Learn more about Native vs HTML5, visit the Mobile Development Competency Page
The Eternal App Debate: Native App VS Web App
Today, no one can dispute the meteoric risk of smart phones and the way they have changed our daily habits. Kleiner Perkins in their last annual internet trends report, count close to 1.14 BILLION smartphone subscribers worldwide, with China leading the way at 270M, USA second at 172M, and Japan third at 78M subscribers.
Having a smartphone with you, connected to the internet, has changed our daily habits. It is easy now to check emails, catch up on some news or work any time of the day.
Enterprises are becoming aware of the tremendous increase in productivity these devices are now bring to their workforce, esp in field sales, field services management, & field audits. Additionally, given consumers browsing habits, enterprises are keen to ensure that mobile is a channel for top-line revenue growth as well, whether it is m-commerce or educating customers on products and services. 2013 will now be the year of Mobile in the Enterprise.
However, Enterprise CIOs still have to wrestle with several complicated issues when thinking about Mobile. We will tackle just one important question in this article today. The issue is platform proliferation and the main question arising from this issue is: Do we build a Web App or do we build Native Apps.
Making a Decision
The answer as they say, depends. Depends on what your App needs to do, and also what your constraints are (usually budget constraints). Here are the factors that you will need to weigh to make that decision.
While Web technology is catching up quickly, it still lags behind Native Apps. HTML5 now gives you access to the Accelerometer, GPS, & even the Compass but basics like Camera access are missing from Safari on iOS. Features we take for granted like custom keyboards are also not available. Second & more importantly, there is no good solution/substitute yet for Push Notifications if you use Web Apps. You can also be sure that any new device features will first be available natively and only much later through the browser. Here is a list of what is supported on various browsers.
User Experience & App Performance
Native Apps deliver faster & smoother apps. If your App needs complex animations, or gestures like swiping, chances are, the Native App will outperform the Web App. The movements will be slightly laggy, but enough to potentially turn off your users.
Usually this is not a concern for enterprise apps. Monetizing apps is easier in the App stores if your strategy includes selling Apps or using in-App purchases to drive revenue. This is because billing is built in into the Google Play & Apple iTunes Stores. Otherwise subscriptions, Ad based revenue etc, are not that different whether you build a Native App or a Web App.
Most people seem to be of the opinion that App distribution is easier for native Apps. However, I disagree. App discovery is a huge problem right now. Whether it is a Web App or a Native App is immaterial. Is it harder to type in a url or to download an App? Neither.
What matters more is your marketing strategy and how you drive people to discover your Apps. Whether it is paid advertising, social media driven viral marketing or some other strategy, this is the most important piece of the puzzle for consumer facing apps. Without a solid marketing strategy, you might as well not build an App.
Writing an App is just the first step. Right afterwards, you will want to release the next version; whether it is to fix bugs, introduce new features in response to user feedback or improve the user experience. Here two factors complicate the situation for Native Apps over Web Apps. First and foremost, you need the user to download the latest version. This is usually out of your control unless you force the user to download. Second, in the iOS App store there is a lag of up to a week. In Web Apps, you don’t face these challenges; your users are always using the latest version.
This is the big one. Costs are affected by two factors: How many platforms & form factors you decide to support? iOS, Android, Blackberry, Windows, Tizen? Phone, Tablet, Phablet? AND the programming talent & work required to support those. Developers familiar with web technologies are more abundant, easier and cheaper to hire than experienced Native developers. Once you decide to support more than 2 platforms and more than 1 form factor, the costs of building Native Apps become much more than the costs of building a responsive Web App. However, even when building Web Apps, you should not underestimate the costs associated with optimizing for the various browser versions/device/manufacturer combinations out there. Which brings me to the next factor, which is the main reason we are having this conversation, i.e. Platform Proliferation.
Platform Proliferation & Fragmentation Challenges
Native Apps suffer from tremendous platform proliferation challenges, and within each platform face additional fragmentation issues. With the stakes so high, companies will not back down from trying to introduce new Mobile OSes. The OS landscape will continue to grow beyond iOS & Android, with Windows, Blackberry, Tizen, and as yet unknown future attempts. Within Android itself, we are seeing Samsung and Amazon take their own spin on Android. We still see non-trivial number of Android users stuck with Android 2.x versions. Add to that different aspect ratios, resolutions, sizes, additional manufacturer tweaks, & sometime the whole Google Play store missing, the ecosystem is a mess. I don’t mean to single out Android. Every platform has it’s challenges. Older Windows 7 phones cannot upgrade to Windows 8.
The situation is slightly less challenging in HTML5 Browsers. We have Android Chrome & iOS Safari, but browser versions continue to be different on Phones, especially Android. Additionally, there are other browsers like Mobile Opera, Amazon’s Silk, & Firefox. Web Apps are inherently better suited solve fragmentation challenges. It is a case of “Write Once but Optimize Everywhere”. The challenges of testing and optimization on multiple target device/browser combinations are still present & not trivial.
So what’s the bottom line? You need to weigh what you want to develop versus the factors outlined above. Generally speaking, if you are developing a more consumer focused app with cutting edge features, slick animations & fast performance, you will probably need to lean towards Native Apps. As an Enterprise however, specially on internal apps focused towards employees, chances are that a Web App will be a lot more cost effective and easy to maintain.