Editor’s note: This is a guest post by Viktor Marohnić, CEO and co-founder at ShoutEm, a self service mobile website and mobile apps creator, a ‘Wordpress for mobile apps.’ You can follow him on Twitter as @vikot.
Should I go with native app or HTML5 app? What are the benefits that are still a good argument to go with native app?
“The most awesome stage”
Last year, Facebook's VP of Design thought the TNW Conference main stage was the best she'd ever been on.
Conventional wisdom is that these are currently the top three reasons to go with native apps:
- Speed and slickness of UI
- AppStore distribution
- Push notification
I would claim that 1 and 2 offer no advantage at all but that “Push notifications” are the only thing that keep native apps alive. But let’s talk in a little bit more detail about these, one by one.
1. Speed and slickness of UI
And the best thing is that HTML5/JS apps will perform even better in a browser than inside a native wrapper published into the AppStore because the browser is using a faster JS engine than web view, which is inside the native app.
In short, faster performances for most of the apps are not such a big argument any more. Of course it would not be fair to say that games and apps that where users spend huge amount of time during the day do not benefit from a native app. I guess that is why Facebook did it, in their case those milliseconds that users wait for a screen to load, matter.
2. App Store distribution
Everyone knows that this is a nightmare. If you don’t have a blockbuster game in the App Store that you can use to drive downloads for your other app, you are out of luck. Buying mobile ads to drive downloads is too expensive, and cross promotion in the app networks does not really work, etc.. And on top of that, you lose potential users in all the acquisition steps from download to registration. All those frustrations will even make some startups pivot away from a mobile-first approach back to the Web.
With HTML5 apps that are basically running on a normal URL, you can use all the weapons that are already available on the Web and SEO tricks, and links in an email campaign will actually launch an app right away. Furthermore, you can cross link the content in the apps and much more. So in terms of distribution, the App Store is actually inferior to what the Web and search engines we use every day could enable in terms of HTML5 apps distribution.
And you can install the HTML5 app onto your home screen and run it in a same way as native. You won’t even notice a difference if it is well designed.
3. Push notifications.
Last resort for native apps? Unfortunately there is no good alternative for push notifications, which is sad. Such a trivial feature and it is not available in HTML5 browser-based apps. An HTML5 app that is running in the browser can already access GPS and the camera, and it can open up native apps—essentially everything you need from native functionality is already available. But you cannot send a push notification to your users.
Just to be clear, when I say push notifications are trivial, I mean trivial to implement compared to GPS, camera, and others, but they are powerful without a question. Push notifications are the biggest driver of engagement in the apps, and they can be geo-targeted or user or user group targeted. You can schedule and geo-target push notifications to be sent to your users when they are nearby a store and there is a deal on or when they are near a restaurant when happy hour is on. A social networking app such as Facebook can notify you when someone comments or likes your status, which again results in better engagement.
If most of our apps could do that, would you run them in a browser rather than download them from the App Store? I would.
All that we need to get around this problem is enabling a browser based app to receive push notification. For example when a user adds a browser app onto a home screen, that app should be able to access the OS API, register itself for push notifications with its own push notification certificate and from that point on it acts as any other native app. The user could even be able to modify its behavior via OS settings.
I believe that this is a trivial technical challenge and yet it would to so much good for mobile app development ecosystem.
Image credit: Thinkstock