Grokking Android

Getting Down to the Nitty Gritty of Android Development

Chrome-Apps on mobile devices – a good idea?

By

Google announced a new set of tools this week to help developers publish their Chrome apps on iOS and Android. That's the next logical step by Google to win over more developers for Chrome apps. In September Google already announced that from then on developers could publish their Chrome apps as offline apps, allowing users to use them like any other desktop application. Those offline apps from now on can also be published on iOS and Android. BTW: It's interesting that Windows Phone is no target platform for Chrome apps and hasn't even been mentioned on the blog post.

To make this work, Chrome apps have to use a thin wrapper to be considered a "native" app and to access phone functions not available via HTML 5 as of yet. For this Google uses Apache Cordova, better known as Phonegap. With the help of this project and further additions made by Google, Chrome apps can be published on Google Play and Apple's App Store. You can read more about it on Google's blog post.

Users cannot recognize those apps as Chrome apps in the respective app stores. They just show up as any other app. And that's where the problem starts.

Taking a web app, which works fine on a desktop, wrapping it with some tools and publishing it, that's just not enough. Those apps would fall short of users' expectations.

First of all those apps would look totally out of place. Just have a look at this screenshot of Google's blog post:

Screenshot of one of Google's sample apps
Screenshot of one of Google's sample apps

There's no action bar, those buttons look weird, the header is very unusual - it just doesn't fit. Of course you could get around most problems and make it look properly - but that would require some additional work. You would no longer just wrap an existing app, but start to provide platform specific deviations to achieve proper designs.

Secondly interaction patterns on the web, on desktop apps and on mobile apps are totally different. Consider the differences between iOS and Android alone. Tons of difference like navigation patterns, action placements, list treatment and so on. This problem is much worse and has much more influence on whether an app feels like a properly done app or not. And no cross-platform tool can help you with that. You will end up with multiple versions for all supported platforms anyway. Just consider the code. You probably can structure this in a way that is maintainable - but not if the main reason for taking this route was saving costs in the first place.

Third I wonder about the quality of the apps. This is a very personal fear based on my experience with Firefox OS apps. Those are very often normal desktop apps as well - which too often do not work on a mobile device. It might happen, that desktop app developers simply wrap up their app and do neither test properly nor know about those limitations. Of course those apps would get ratings that bad, that they wouldn't show up for most searches anyway. But Google is setting expectations for devs here - and those devs might be very disappointed down the road.

As you've seen there are plenty of issues with the user experience. But obviously technical issues exist as well.

It seems that it's not that easy from a technical point of view as Google makes us believe it is. Just have a look at the sample apps. Five (!) of those 17 apps do not run on Android at all. Another six only with limitations. Or put it another way: Only one third of those apps works properly on Android. For iOS it's about the same (though with different apps): Six apps don't work at all, another five only with limitations. Only two out of 17 apps work properly on both supported platforms! And this is about to help devs? This should be a proper way to develop cross-platform apps? Not at all!

The only thing that I am confident to work properly is the responsiveness of those apps. Web developers do that for years. They understand and grok responsiveness.

If you want to publish apps and want your users to like your apps, you have to take the patterns and specifics of each platform into consideration. That means work. No matter which approach you choose. I guess that the total amount of work is even less if you design and develop different apps for Android, iOS, Windows Phone and (hopefully) Firefox OS than when you try to use a cross-platform tool. And I have yet to see a cross-platform app that actually does work properly on different platforms.

Google has done so much in recent years to consolidate the design, interaction patterns and overall usability of Android. Which makes the recent announcement all the more disappointing. It's a step backwards. It's going back to where we were some years ago: A world without a unified design language without common interaction patterns. I do not want this. And I strongly believe, users do not want this as well.

As a developer you have to keep an eye on this project. At least because your clients might mention it. But it's not working. At least not yet. If it ever will - I do not know.

Project managers and product managers should also carefully consider the limitations of this approach. Don't think it will save you money! Don't think it will save you time! If you're not careful and use it without proper analysis, you're bound to see costs rising unexpectantly (well, actually that's to be expected) and your users will still rate your app poorly.

Note: This post has initially been written for the German publication computerwoche.de.

Wolfram Rittmeyer lives in Germany and has been developing with Java for many years.

He has been interested in Android for quite a while and has been blogging about all kind of topics around Android.

You can find him on Google+ and Twitter.