With Facebook reporting that 90% of their 2015 Q4 monthly active user coming from mobile users (52% from mobile only) mobile apps are truly taking off. In India, a country of 1.3 billion people, mobile phone subscriptions have already reached 1 billion mark. It’s increasingly becoming a norm to have mobile apps which compliment a business’s website.
With an average person said to be spending at least 90mins a day on his/her smartphone, it’s more important than ever to develop good experiences for mobile users. Mobile devices are truly personal and they offer unique opportunities for businesses to connect with users. But this also comes as a challenge as only 16 percent of users will give a second or third chance to an app which failed to provide a good experience. Users are more likely to download your app if it has a higher rating either in the apple or google play store, which makes developing great user experience in mobile apps a number one priority.
Performance of your app is also a critical feature that cannot be overlooked as users uninstall and leave bad ratings. In fact nearly 59% of users uninstall apps which are slow and 42% say they uninstall apps because they didn’t like the user interface.
Another survey conducted to check how crashes and slow apps have an effect on the user showed following results
All this in mind it becomes hard for a company to choose whether to build a native or a cross-platform app.
Now when we talk about cross-platform apps they come in two flavours
- Cross-Platform apps which are wrapped in web view (Cordova, Ionic etc).
- Cross-Platform apps which get compiled down to native code (Xamarine, React-Native etc).
Here’s a breakdown on some of the features of both.
Features:
Cross-Platform(WebView) | Cross-Platform(Native) | Pure Native |
---|---|---|
Low development time | Low development time | Moderate development time |
Low performance | High performance | Highest performance |
One codebase, no need for multiple type of developers for different platforms | One codebase, no need for multiple type of developers for different platforms | Need different type of developers for different platforms that you plan on supporting |
Can access some of the native functionalities like location service, maps etc, but very limited | Can access most of the native functionalities but does not have complete control like native apps | Has complete control over native apis and functionalities |
UI and UX is mediocre | Can build great UI and UX for mid and high end devices | Can build great UI and UX for all devices |
Support for wearable devices non-existent | Support exists for wearable devices, but is very new and trying to play catch up with ever changing native apps | Complete support for wearable devices |
Support for updating app on fly | Support for updating app on fly | No support |
Does not provide a personalised experience (no support for detecting network speed, contacts etc) | Provides a satisfactory personalised experience (support for all native functionalities, but most features are playing catch up and doesn’t provide complete flexibility) | Provides a truly personalised experience |
The above listed points are some of the most prominent features of hybrid and native apps respectively. So back to the question as to what we should be using, well in theory this is how it should be.
-
If your app is something internal, which doesn’t make use of any core native features like camera, sms etc. and you want to get the app out as soon as possible to most of the mobile platforms go for Web View wrapped cross-platform apps.
-
If your app is complicated and doesn’t require you to build a lot of custom stuff or make use of a lot of native features and ok with compromising on some of the UI features (happens rarely but be prepared for it) go for Cross-platform apps which compile to native.
-
If delivering a great app is your priority and you are willing to invest more time and money for it then go for Native apps.
That being said there are only a handful of apps in the playstore(both android and ios) which have actually been built using cross-platform apps. On the other hand native apps have been tried and tested for a long period of time with ready solutions to a lot of previously faced problems.
Building native apps is always much more reliable than building cross-platform apps and that is one of the most important things when you build a mobile app, because unlike web apps where you can visit any link without any commitment, a user makes a commitment by downloading your app. You need to make sure to provide the best experience possible to value that commitment. Remember it’s almost impossible to gain back a user and the user expects nothing less than a reliable, high-performance app when he/she does download your app.