On cross platform toolkits

Profile
Written by dermdaly on February 13th, 2011

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.

Comments (15)

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

[…] This post was mentioned on Twitter by Steve Troughton-Sm…, Ryan Booker, Caius Durling, Padraig Kennedy, Bosca and others. Bosca said: On cross platform toolkits: With the recent Nokia-Microsoft announcement, the smartphone race just got a shot … http://short.ie/z7cffd […]

Patrice says:

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

Padraig says:

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?

Colin says:

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.)

I’d add the Mono stuff to this – monotouch, monodroid, etc let you write .NET code and ‘run’ it on Android/iOS. A nice example for this: http://sigurdsnorteland.wordpress.com/2010/11/27/tweet-search-one-code-three-mobile-platforms-wp7-monodroid-monotouch/

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.

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.

Sorry about the double post.

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.

mm dermdaly says:

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!

Alan says:

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?

Geoff Norton says:

@dermdaly

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.

Adam says:

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.

http://news.ycombinator.com/item?id=2201706

[…] On cross platform toolkits for mobile | tapadoo This entry was posted in Uncategorized and tagged dev, mobile. Bookmark the permalink. ← If you care about experience design in software, you must get high quality engineering to back up yo There’s some discussion on Apple-centric and tech news websites about a video that’s doing the r → […]

Comment on this post

Let us build your app

We offer native app development for iPhone, iPad, Android and Windows Phone; with full service from idea generation through to getting your app on the App Store. If you’d like to discuss your app development needs, get in touch.

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close