I’ll get straight to the point. I don’t like cross-platform web apps. If you want a mobile website, fine. That’s a good thing to have. But if you want an app, something that takes advantage of the phone or tablet as a mobile platform, then you should avoid the cost cutting temptation of an HTML solution and go native. 

I remember being instantly put off Java many years ago when I saw the ugly user interfaces that sprang up courtesy of Swing. This early interface toolkit made Java UI’s look the same on both windows and Unix, but it was heavily biased towards its Unix roots. To a Windows user it felt wrong. And it was sluggish. If you were running a Java application on a Windows box, it felt like an inferior application.

The Java Swing UI

I also remember just a few years ago when companies first started to migrate desktop applications to the web. Anyone use VMWare? Anyone prefer the web interface? I didn’t. It seemed like a massive step backwards at the time.

Nowadays the web and web-apps certainly don’t have the same problem. Today the web is capable of rich user experiences. Soon even richer 2D and 3D graphics will be available as HTML5, WebGL and hardware accelerated browsers become more firmly established. Speed too, is not an issue. Modern JavaScript engines are lightning fast and some truly pleasant user interfaces and applications now exist in the could.

Why then do I suggest that you shouldn’t simply create a web-app and roll it out over a number of platforms? After all, you only pay for the bulk of the development once. Surly that’s reason enough!

Do you want a Website or an App?

Firstly, I will reiterate: Mobile websites are a good thing. Increasingly large volumes of web traffic are on mobile web browsers and yet mobile web sites are still few and far between. Web sites must start taking mobile seriously.

But websites are not apps. It is possible to make an app that is little more than a mobile web site, but to do so is to miss the point. Websites reach out to people on the web. Apps, reach out to people on their phones and tablets. If this doesn’t make sense then let me refer you to a previous post: Context is King

Understand the Platform

Users are tech savvy. They love their devices and they know how they work. They are conditioned to think in the language of their device and often they are loyal to them, at least for a time.

Microsoft have invested heavily in the new Metro design and it looks like its here to stay. If an app strays from this design it starts to look wrong; It stops speaking the language of the phone. Users are quick to notice this. On the web, you have to catch a users attention within the first few seconds of landing on a page. With an app, many are downloaded but few will survive more than a couple of minutes if they don’t feel right.

And its more than the graphics. Each platform has its quirks. Android apps can publish intents that let other apps know about their capabilities. Windows and Android users are conditioned to navigate with a hardware back button. iOS devices do not have a hardware back button and so navigation must be soft-implemented. Each platform can make use of in-app notifications and each one does it differently. Each platform exposes, and indeed requires, slightly different hardware capabilities… the list goes on.

Cross Platform Apps – Expensive?

You don’t need to look very hard to see that native wins every time. Take a look at the Ebay, Amazon, and Twitter apps. They have been tailored to each platform and feel right on each one. They use the controls you expect them to use. They look the way you expect them to look and they are not web apps.

The multi-platform ebay app

I would argue that if you truly do need an app with a wide reach (as opposed to a mobile web site) it is a false economy to go for a non-native solution. These apps will be quickly rejected and fail to gain you the exposure and loyalty that they should. And if your app is multi-platform then there will be an increased cost, but it should be in-line with the effort involved in tailoring that application and redeveloping the UI for each platform. Some, if not most, of the work will be able to be reused.

Conclusion

The trouble with web apps, flash apps or any of these app-builder type apps is that they always lower the bar. You get the lowest common denominator and an app that looks and feels the same on every platform. While once upon a time this may have been seen as acceptable or even desirable, in a world where phones are fashion statements and techno-lust is everywhere, this kind of sentiment will not win out.

Apps need to do more than function. They need to shine.

Project Details