Cross-platform mobile development: worth pursuing, or a mirage?

I was interested to read Martin Fowler's piece on Cross Platform Mobile. Fowler is Chief Scientist at ThoughtWorks, which does software development and IT consultancy:

I think cross-platform mobile toolkits are a dead-end. It's just too hard for them to really mimic the native experience. If it's worth building a native app, it's worth building it properly, including an individual experience design for that platform.

I do not altogether agree, though he makes a good case and I accept that there are significant obstacles to success. I recommend his piece; all the issues he mentions are real and considerable.

On the other hand, I see it more in terms of acceptable compromises than a binary choice. An Aston Martin is better than a Ford, but a Ford will get me to work and costs less.

The question then becomes: how much compromise do you have to accept if you build a cross-platform mobile app?

Another issue: Fowler says web apps are a capable alternative route, but he adds:

When you do the web app, don't try to make it look and feel like a native app - make it look like a mobile web app

It sounds like good advice; but is there a UI standard for mobile web apps? I am also not sure what this advice means if you wrap a web app as a mobile app using a tool like PhoneGap. Even if you do not want to do this, it may be necessary in order to get access to more native features of the device. Should such an app aim to look more like a web app, or a native app, or is the whole idea a mistake?

Another tricky problem is that with multiple form factors, it is not clear when to apply mobile standards and when to apply desktop and laptop standards. An Apple iPad is a mobile device, but its screen resolution is 1024x768, which is pretty much a full size screen.

There is also a cost involved in not doing cross-platform development. If you only need to support, say, Apple iOS, then fine, get stuck into Xcode 4 and Objective C in the Apple-approved manner. If you need to support more than one platform though, the case is more difficult. Creating an "individual experience design" for each platform means that you have two code bases to maintain, and ensuring parity of features and fixing bugs in both become issues. Multiply the platforms, and it gets worse.

Adobe's Creative Suite is an interesting case. It works on both Mac and Windows, but the UI is more tilted towards consistency between the two versions, rather than looking native to each platform. Dreamweaver CS5.5, for example, looks nothing like a standard Windows application, with its buttons in the top frame of the main window.

However, I would rather have that, than what Microsoft has done with Office on Mac and Windows. The UI is different, the release cycle is different, the features are different, and in general I find it a better experience on Windows than on the Mac, whereas I am equally happy with Creative Suite on either platform.

My guess is that Adobe, with its own internal cross-platform tools, succeeds in sharing more code between the two than Microsoft manages, which is why it is able to deliver synchronised releases. It has tilted the balance towards consistency across platforms, rather than looking native, and that is a valid compromise.

That said, I have been conducting my own experiments with cross-platform toolkits and it is not going all that well. Each toolkit has involved compromises, even with a simple app, and performance has been an issue.

I can also see that the way navigation between difference screens in your app generally works is different on iOS than on Android. Which do you choose?

Cross-platform toolkits may not be desirable then; but they may be inevitable (like death and taxes) unless you have huge resources or are willing to lock-in to a single platform.

I also believe that performance issues will reduce as devices get more powerful, and that web technologies which are common between all the main mobile platforms form a runtime that goes a long way towards solving cross-platform issues.

0 TrackBacks

Listed below are links to blogs that reference this entry: Cross-platform mobile development: worth pursuing, or a mirage?.

TrackBack URL for this entry: http://www.itjoblog.co.uk/blogadmin/mt-tb.cgi/189

Leave a comment

Current Vacancies from CWJobs

(* Required field)










Preferred format