Why does cross-platform mobile app development approach not work always?

simpalm blogpost pic

 

Are you a company that wants to build mobile applications for iOS, Android and Windows with minimum cost and duplicity of efforts? Have you been told by someone or your developer that using cross-platform mobile app development approach would reduce the cost and time? If yes, then you need to STOP and think.  This may not be true in all the cases.

Our clients who have used cross platform mobile app development approach to build mobile apps find several issues in the applications. They have not been able to resolve the issues in their current apps and now want to recreate their app using native app development approach. I hope you know what I mean “cross-platform” and “Native”. If not, let me explain.

In layman terms, native app development approach necessitates separate developers to build same app for different platforms: i.e. it requires iOS developer to build the app for iOS and android developer to build the Android app. Cross-platform approach requires one developer to build the same app for iOS, Android, Windows etc. It uses frameworks like JQuery Mobile, Sencha Touch, Titanium, and Phonegap (to name a few) to build iOS, Android apps for different mobile OS environments.

On the surface, between the two approaches which one looks like the best? Definitely, the cross-platform approach, since it will reduce the cost, time & efforts.  However, be careful before making the decision. I have 5 years of experience building several mobile apps and I have seen several cases where the cross-platform approach created a slow, buggy and non-scalable mobile app. Many times, it can be very difficult to decide. There are several points you should consider while making the selection. Here are some of the most critical points I think you should look at:

  1. Is your UI Design very graphics intensive?

If you are building an app, which requires very sleek user interface or may have animations or custom graphics, then cross-platform app development may not be the best approach.

iOS and Android have more than 20 popular devices with different screen sizes and resolution. Imagine if you have to support all those screens using the same source code. It can get very messy.

If you want your app to look very different in tablets compared to the phone in terms of design layout, then again you’re developing user interfaces specifically meant for the device resolutions.. One cross-platform developer might often have to work as much as two native developers to handle different screen constraints.

Cross-platform design works well, when the interaction points do not call for a lot of server-side interaction (In other words, if there is an opportunity for a lag, there will be a lag and it will be pronounced.). So brochure type of apps, information apps with simple hirerachy of content are better done as cross-platform apps while interaction, graphics and content-heavy apps can go native.

  1. Do you plan to integrate external devices with your app?

Are you building mobile app, which integrates with external device over your phone Bluetooth or WiFi or Audio Jack connector? If yes, then the cross-platform approach may not be the right approach. Most of the external device like fitness sensors, credit card readers or any other accessory is difficult to integrate robustly with the cross-platform approach.

These device manufacturers generally provide native iOS SDK and Android SDK which would support only native approach. Your developer might figure out Javascript code to somehow make the code work with these devices but you may not be able to support all IOS and Android devices.  Here are links to some of the external devices, which are difficult to integrate if you are taking the cross-platform approach;

http://www.magtek.com/V2/products/secure-card-reader-authenticators/iDynamo.asp

http://kestrelmeters.com/products/kestrel-4500-weather-meter

  1. Is your local database going to be large or would it need frequent syncing with the server?

Several mobile apps, which have large database and work offline after frequently synching with the server may not perform well with cross-platform Approach. cross-platform Approach does provide option to add SQLite or WebSQL in the project and provide server syncing and offline functionality.

However, if the app is going to make several asynchronous queries with the local database or server database and your schema is very large, you will start seeing slow performance and the app might crash. Don’t use this approach if you know your app is very database driven and synch frequently with a backend server.

  1. How many native smarphone APIs does your app use?

Would your app use Push notifications, Address Book API, Media player or any of the advanced Phone APIs? If yes, you would want to be careful. You would want to discuss this with your developer and make sure he can achieve these using the native approach and will not have performance issues.

Many times these integrations require more time and cost in the cross-platform approach compared to the native approach.

  1. Does your app need 508 Compliance?

Several of the apps for healthcare or government industry require to be 508 compliant. This makes sure that the app can be used by blind, deaf or other disabled users. Trying to make an app 508 Compliant using the cross-platform approach does not work, especially for some of the Android Phones. It requires use of Talkback feature and this can give you issues while building the app using the cross-platform approach. Native approach makes it easier and ensures that the app would be 508 compliant for all iOS and Android models as native SDK provides coding support to implement them easily.

However there are several advancements in HTML5 based app development platforms. React.JS, for example greatly simplifies UI challenges faced in cross-platform development (it helps that it’s supported by Facebook).

This is a guest post by Piyush Jain, Founder & CEO of SIMPALM.

Building an app? Tell us about your project

We'll connect you with the right team for your project, for free!