If you read any blog post or article on cross-platform mobile development, one of the top arguments for going the cross-platform route is that it offers developers with HTML, CSS, and JavaScript skills the ability “to build innovative, device-neutral mobile apps that work on the iPhone, Android,” etc. However, a funny thing happened over the past couple of years in that the Android UI has come out from shadows from the then-leading iOS interface design to establish its own set of platform guidelines and has even begun to establish its own set of idioms that is being adopted by iOS applications (ie. sidebar menu).
Starting out a mobile project that looks to target both iOS and Android, one of the key questions that need to be answered is whether to pursue native or hybrid/cross-platform as it drives what skillsets you will look for in your development team. One input into that decision is: should the mobile app adhere to each of platform’s user interface guidelines or should the app be consistent in look and functionality between the two platforms?
The argument for consistency in look and functionality is two-fold; lower cost of development and lower cost of app support. However, how often do users actually access the same app but on different platforms? Not often, but I admit that I am an aberration in that I use Evernote both on an Android phone and iPad. It has been shown that in the case of mobile apps, users are brutal in terms of quickly dropping apps that are difficult to master because they don’t follow platform style guides and idioms. It is helpful if the application on different platforms function somewhat similar, but if you are focused on providing a great user experience, do you want to end up with the lowest common denominator on each of the platforms? Quite often, if you take a successful iPhone app that has been developed and then try to make a version for Android, you will find that you need to completely rethink the user experience design in order to provide an Android app that would find acceptance in the market place. While the core functionality would be the same, the whole feel of the app will end up being different.
So, to appeal to users on a particular platform (Android or iOS) with a user experience design based on that platform’s interaction guidelines, only the core functionality can be considered “cross-platform”. So, you may come to find that there is very little savings in terms of time to market when your developers are having to craft individual platform UIs in HTML, CSS, and JavaScript, with very little cross-platform code sharing. That is not to say that you still can’t go down the cross-platform route but if one of the key decision points is time to market across multiple platforms, the savings may not be as significant as you think. To increase that savings by implementing a consistent look and functionality may put at risk user acceptance and to the question of “Will It Play in Peoria?”, the answer for your new mobile app would be no.