On cross platform toolkits

by: dermdaly

With the recent Nokia-Microsoft announcement, the smartphone race just got a shot in the arm. There will now be 3 main players in the smartphone and apps market. They are of course:

  1. iOS Running on iPhone, iPod Touch, iPad and most likely AppleTV
  2. Android, running on handsets from Samsung, HTC, Sony Ericsson, Motorola (and many others), and a plethora of Tablets
  3. Windows Phone 7 – Running on handsets from Nokia, Samsung, LG, Dell and many others

If you’re a brand manager, and you are considering a mobile strategy, you probably want to ensure that your mobile strategy has the widest reach possible, so will probably want your apps on all of the above. This is possible, but costly.

Allow me to get technical for a moment. iOS is developed in Objective-C, using a Mac, with Tools supplied by Apple. Android is based on a Java Eco System, and Windows Phone 7 is based on a .NET ecosystem.

This may be gobbedlygook to you, but what this means is they are very different, and very little crossover occurs. An app written for iPhone essentially needs to be re-written (at similar levels of effort an cost) for Android, and again for Windows Phone 7.

And at this point we usually get asked a fairly obvious and sensible question

Isn’t there some sort of tool that can publish on multiple platforms?

Here’s the definitive answer to this:

NO. There isn’t

But, this needs elaboration. There are plenty of toolkits out there that claim to offer this. Be careful. If you want to use these you can but the results always end up the same.

I’m cynical about these toolkits for very good reason. This is pretty much the third time around for this kind of thing for me. In the early 90’s there were a slew of toolkits that offered compatibility across X/Windows, Microsoft Windows and Mac OS. In the early 2000s the Eclipse people gave us SWT the “Standard Widget Toolkit”, and in fact, there a few others such as QT or wxWindows I can name.

The one thing that always stood out when they were used was

You could spot them a mile off

Applications written using SWT looked like an SWT application, not a Windows application when running on Windows, and a Mac Application when running on Mac.

These cross platform toolkits always ignored one thing

When you attempt to provide something that runs on many platforms, the best you can hope for is “least common denominator”

So the end result? Consistency – Yes. But consistently bad.
Applications written using cross platform toolkits work consistently bad on all platforms. So you end up with a rubbish application on Windows, rubbish application on X/Windows and, you guessed it, a rubbish application on Mac (or.. a rubbish application on iOS, Android and WP7)

I think this can only get worse on Mobile. The devices are so specific, with a broad range of capabilities. Trying to cross them is just folly. In addition to this, the “good taste” barrier has leapt upwards since the introduction of the iPhone. Imagine giving an “android 2.0” experience in an iPhone app, or attempting the “iPhone experience” on Android – Neither user will thank you.

And let me get back to the Brands. If you’re a brand manager, your job is to enhance the brand. If you put out something which gives a poor experience on any mobile device you’ve done worse than not releasing – you’ve in fact tarnished the brand. Now if you do that across many mobile platforms, the damage will be multiplied.

So do yourself a favour; If you want quality, and a native experience for your end users there’s only one way to go. Get it developed natively, and avoid the short term savings a cross platform toolkit claims to get you.

You’re reading the tapadoo blog. Did you know that as well as publishing our own applications, we offer iPhone development services and consultancy? If you have an idea, project or something you think we can help you with, please get in touch through our contact page.

You May Also Like

We built a product in a lockdown

At the start of the lockdown, around March last year, I have to admit a case of the jitters. I was prospecting on five different projects. Some with existing clients, some with new clients. Our order book was good - but we always have to have an eye on up coming...

read more
The Rise of the Super App

The Rise of the Super App

Imagine being able to chat with your friend through instant messaging, then book dinner, a movie or a gig and pay for everything all from one single app. That’s the power of a super app.  Mobile users worldwide have dedicated apps for specific tasks. This is not...

read more


  1. Ronan Cremin

    What about HTML? Do you consider it to be a cross-platform toolkit?

  2. Patrice

    You’re wrong, .net is supported on the three platforms you mentioned thanks to MonoTouch and MonoDroid

  3. Padraig

    Great post, Dermot.

    I think it’s an interesting point. I agree that those cross platform toolkits will always produce a lower quality product than natively written apps, but I can see the attraction of PhoneGap and the like.

    Ubiquity is more important than perfection to many businesses.

    Take a small restaurant for example. If they have an app that lets me check the menu and make a reservation that’s better than not having one at all.

    Some clients may see significant benefits by doubling or trebling their app budget to make native versions, but are the drawbacks of a cross platform version so bad for every example that they’re better not having an app at all?

  4. Colin

    I’ve only developed on the iPhone so far but already feel the frustration of knowing that if I want to port elsewhere, I need to completely start from scratch.

    Although I’ll save the effort involved in look-and-feel and usability, the main issue for me at the moment is that Android is so fragmented. I can develop an app that will work on most iPhones in the field relatively easily but for Android, I need to spend a long time testing on multiple devices, making it tricky to remain an independent developer. I’d like to see that problem solved quicker than I’d like to see a cross-platform development tool (particular since I agree with your “lowest-common denominator” objections to the resulting apps.)

  5. Alexander Viken

    I agree with you that there is no perfect multiplatform framework available, but i also think that it’s not just all black and/or white..

    Thinking strategic as a brand manager there are alternatives that can work for your brand depending on your needs. IE. if your solution require little hardware integration you could go for HTML5 or even a open source framework like PhoneGap.

    Tools like MonoTouch and MonoDroid enables you to use a common language (C#) for 80% of your code for iPhone, Android and Windows Phone, leaving you to “only” have to do custom front end development for each platform.

  6. Alexander Viken

    I agree with you that there is no perfect multi platform framework available, but i also think that it’s not just all black and/or white..

    Thinking strategic as a brand manager there are alternatives that can work for your brand depending on your needs. IE. if your solution require little hardware integration you could go for HTML5, or go “native” with open source frameworks like PhoneGap, if the user interface can live with the constraints of what is possible to do within CSS and HTML. If your needs require more access to hardware, frameworks like MonoTouch and MonoDroid will allow you to use a common language (C#) for nearly 80% of your code, leaving you to create interface spesific code for each platform for iPhone, Android and Windows Phone. Each app will then have a complete native look and feel. Having apps for these three platforms should suit most brand managers.

    I don’t think it is fair to say you get lower quality product either, you get a product that suits your needs if you take the time to search for the right tools, and most problems rise from the fact that you don’t know what you need, and do ad-hoc planning and development.

  7. Christian Helle

    Excellent point! I myself target multiple platforms and always make sure that I use the tools designed specifically for the platform. I mean, you don’t serve Coca Cola in a Pepsi glass. I believe that the platform is your best friend, and one should take full advantage over what the platform has to offer.

    But there are some successes in cross platform tools, especially in the desktop computing world. QT is my favorite example. There are decent applications written in QT, Google Earth is a good example. QT also provides their own development IDE, which is actually pretty neat.

  8. dermdaly

    Wow lots of great comments. Love when a post generates discussion. So…here’s my response to the above:
    Ronan: HTML5 is an interesting question. Because there are many apps that could have been done just as good as a mobile website than an app. They can have a level of consistency and quality, but unfortunately you don’t get the marketing benefit of placing the app in the store (Apple have started rejecting pure wrappers for example). Also, by only being on the web, it is difficult to ensure the end-user will come back. An app, installed on the device gives you a higher likelihood of being ‘sticky’
    Padraig: I agree that a client may prefer Ubiquity over quality, however people who sell cross platform solutions sell the ubiquity side of the equation (obviously) and leave the client in the dark over the downsides, so they may well get the reach, but by unhappy with the results when it is too late.
    Patrice: Thanks for your candid response. However I think mono touch and mono droid are a great example of what I am talking about. The apps coming out of this (the one’s I’ve seen) don’t give a native experience. In other words, consistent, but consistently bad.
    Alexander: See the comment to Patrice. Also, the point about 80% common, and only have to concentrate on front end is misleading I think. Given the nature of apps, UI is typically a much larger slice to the app. More so with connected apps, which will have a common back end, and be all about the UI.
    Christian: Whilst QT is a good toolkit, it usually shows; Again it looks like a QT app rather than a Windows app for example. Its interesting you mention google earth; I didn’t know that it was developed specifically using QT, but I’ve always felt the UI is not quite right, and don’t really like it. It never feels native. Thanks for clarifying!

  9. Alan

    What do you mean by MonoTouch applications don’t give a native experience? MonoTouch exposes only the iPhone UI toolkit, they’re completely indistinguishable from what you refer to as ‘native’ apps. How are you able to tell a MonoTouch app from a non-MonoTouch app them? Are you aware that a huge proportion of the top selling games on the appstore are built using Unity3D, which is itself a cross platform toolkit?

  10. Geoff Norton


    I’m not sure how you can suggest that MonoTouch doesn’t give a native experience, since it uses the native widgets. Look at apps like TweetStation and iCircuit and Creatures & Castles for some great examples.

  11. Adam

    There’s a lot of discussion happening on a thread over at Hacker News at the moment, pretty much talking about all the points being mentioned above.

    Worth a quick flick through.



Submit a Comment

Your email address will not be published. Required fields are marked *