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.

Post to Twitter Post to Facebook

  • http://www.movyloshop.com stefano

    I couldn’t agree more.
    Apps are made to shine and web apps…are just something in between lowering the bar.
    At Movylo Shop (www.movyloshop.com) we deal with mobile commerce: we had the goal of giving merchants a mobile website + the apps (iPhone + Android) and we developed first of all APIs to communicate with functions of the platform, then we developed everything from scratch so that…everything is “native”. Then you can of course edit and customize centrally, but the developed software is native and developed from scratch in any platform.
    This costs a lot MORE in terms of development, but it lets you get the best of any plaform and the apps…..shine at the end.
    Stefano

  • http://www.in-traction.com Kev

    Stefano, looks like an interesting platform. Do the app’s go beyond the functionality offered by the mobile websites, or is it more about providing an optimised native experience?

  • Gaz

    As someone who has done a fair amount of GUI work I’m inclined to agree with you here. I used to be excited at the prospect of Swing apps, but then the first time I actually used one my heart sank as I realised how pants it was. If you want an app to shine then you need to exploit every cool feature of the underlying OS. And invariably, the cool features are the ones which the other platforms don’t have – otherwise they wouldn’t be cool would they?

    The problem I have is the cost! Especially to small businesses! Deploying a website to work on the variety of compliant (and non-compliant) browsers out there is hard enough, but at least we are coding in the same language. To then have to spend time, energy and money on native apps for each of the major platforms is really time-consuming and costs a huge amount of money. Not to mention the cost of potentially learning a new language. Small businesses especially cannot afford that hit. Which causes them either to forget it altogether, go for a ‘web’ style solution or simply concentrate on one platform. None of those are ideal.

    In the world of Java, they have created something called the ‘Standard Widget Toolkit’ (or SWT). It’s the layer that the Eclipse platform is built on. Basically it is an extremely thin JNI wrapper of the main OS calls written in Java. Then there is a further layer of classes on top which allows easy creation of say a ‘Window’ or ‘Button’. However, the result is something that looks native (because the calls are going straight into native OS calls) and with an implementation of SWT on other platforms, the same code will look native on another platform. (If you’ve ever used Eclipse, you’ll know it looks and feels native, where in fact it’s written in Java) In the event that an OS doesn’t have a particular widget (say for example, a native date picker), SWT will implement it non-natively in Java (just like Swing used to). It makes that widget slower than a native one of course – but the idea I think is brilliant. One codebase, the same results, looking native.

    Of course that is not a perfect solution and trade-offs do include speed, resource usage and limitations to what the SWT provides. This is clearly crucial for a mobile device, which is why I don’t think we’ve seen anything like it. However, I wonder if that is the way the wind will blow eventually. Until then, what do you recommend for small businesses wanting to shine, without paying out lots of hard earned money?? Have you got a 5 point plan or something?!? Should we just concentrate on one platform?

  • http://www.dootrix.com Rob Borley

    Thanks for your comment Gaz. It’s a really tricky question. Small businesses have a difficult task managing their online strategy while balancing their books.

    Money can be spent on a shiny web-site, a mobile site, social media (facebook, twitter, etc), online advertising, and of course, native mobile apps.

    The answer has to be to look at the return on investment. Which media is going to maximise your revenue? There is no point in splashing out on a social media manager if none of your customers are on twitter or facebook. It’s points to have a shiny new iPhone App if your customers all use android. And there is no point in spending your money on the best web site in town if all of your customers engage with your brand solely on facebook.

    I wonder if, instead of technology tending towards the lowest common denominator in order to allow everyone to have everything, it might be better to consider the context of your audience and seek to server them, where they are, to best of your ability.

    The key is to know your customers I guess. And have the confidence to meet them where they are.

  • http://twitter.com/kramii Mark Sandland

    There is an interesting article on the same subject here: http://www.tbray.org/ongoing/When/201x/2011/06/14/Native-vs-Web

  • http://twitter.com/kramii Mark Sandland

    There is an interesting article on the same subject here: http://www.tbray.org/ongoing/When/201x/2011/06/14/Native-vs-Web