Sunday, 12 April 2009

I had breakfast with a friend the other day. He's been writing some really cool iPhone apps and mentioned that he's wanting to focus for the future on apps that can be written and maintained cross-platform. He'll prefer to leave out the platform-specific "extra" functionality, he said, in order to be able to do the bulk of the work once and maximize the deployable surface area.

I got to thinking about this the rest of the day and came up with a whole list of questions for my friend. It's an interesting and logical approach, and certainly not wrong by any stretch of the means. Contrasted against the common move by devs to focus only on the iPhone platform for example, my friend's approach really makes me think. Now, to be clear, I have no idea what it takes to actually deploy an app to the iPhone and also have a version to deploy on Android or RIM devices, or on the upcoming Palm Pre (which looks really cool, by the way), or whatever. At least not without writing each one from scratch. My friend does, though. What I took from our conversation (as a business guy) was that it can be done at least to some extent, but that doing it in a cost-effective way means limiting functionality on any given platform. I may be oversimplifying, and in fact I probably am.

Then today I noticed that Mike Rowehl, who writes "This is Mobility," just posted an interesting article entitled "Please don't mistake my apathy for a lack of understanding," in which he takes on the recent meme suggesting that mobile developers are blindly leaving platforms other than Apple's behind, suck os Nokia's Ovi Store.

Which leads me to ask the obvious question: "What the heck is Nokia's Ovi Store?"

Granted, I'm not buying tons of mobile devices and deploying them like I used to, and certainly I'm not a mobile developer, but I'm still pretty well plugged-in (irony intended).

My past involvement in cross-platform development and porting of apps taught me that it's almost always a complicated and expensive endeavor. But it's not just building the app for the first time that one has to consider. Maintaining multiple platforms of the same app is can also be prohibitively expensive, unless there's a relatively simple and effective way to build once and deploy in many places/platforms. In the mobile world, it just isn't simple, cost effective and reliable enough (from what I can see).

And honestly, I want to choose the best devices and buy apps that take advantage of all the cool features those devices offer. I don't often want apps that leave out the latest hardware features and software enhancements.

Who's doing cross-platform mobile development and truly making it work? How are you doing it? If you've found the way, drop me a line - I'd like to hear about it.

Add/Read: Comments [4]
Mobile | Tech
Sunday, 12 April 2009 17:03:07 (Pacific Standard Time, UTC-08:00)
#  Trackback

Referred by: [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral] [Referral]

Sunday, 12 April 2009 21:04:05 (Pacific Standard Time, UTC-08:00)
Skype and Fring come to mind. I used both on WinMo and iPhone. TomTom has their stuff on a bunch of devices (including WinMo, Symbian, and, possibly, iPhone). I suspect that all of these folks spend enormous amounts of time porting and maintaining their code. Simply because all these operating systems have very little in common. Yes, you can architect your app in such a way that your routing engine is reusable (for TomTom), or your voice codecs are platform independent (for Skype) -- but all the system APIs are completely different on each platform, so for each platform there is a whole lot of code that needs to be developed from scratch, and then maintained in multiple branches forever and ever. (Which is probably why TomTom for WinMo costs $150, and G-Map USA costs $40 for the iPhone)
Sunday, 12 April 2009 21:28:31 (Pacific Standard Time, UTC-08:00)
Actually developing for mobile is a lot harder than for desktops. With a desktop application you deal with the OS manufacturer's API only. Before the iPhone, it was not enough to develop an application, due to restrictions by manufacturers and carriers you had to have the application signed and not just once...but many times. Carriers were locking the APIs down, so only if you signed an application by them could you gain access certain APIs which caused quite a bit of headaches and the cost of mobile applications went up. Now if you multiply this by the number of mobile platforms available then Blackberry, Windows Mobile ( with several flavors ), Symbian, Sony Ericsson just becomes unreasonable to manage.

The trade-off is the iPhone model, where developers are kept in a sandbox...where you can essentially write widgets and games, but not really expand the functionality of the phone itself. There is a big difference between what developers have access to on the Blackberry compared to the iPhone for example. This is why I refrain from referring to iPhone "Apps" as actual applications and more in the realm of widgets and games.

In many respects the limitations imposed on developers are in the name of security, but like many things sometimes security is used as an excuse for retaining control.

Developing iPhone apps is easy compared to other mobile platforms, but then again you are very restricted to what you can actually do. There are over 20,000 iPhone applications now, many of them are copies of each other and others serve no real purpose, as they do not extend the phones functionality, but simply run in a sandbox.
Monday, 13 April 2009 09:18:26 (Pacific Standard Time, UTC-08:00)
My company develops software for mobile phones focusing on the BREW platform. While you may think that all phones running BREW should run an application the same way across phone models you basically have to port the app to each phone model individually and get licensed for that phone model (and, even more, carrier, if two carriers have the same model). Its funny that its supposed to be a universal platform for those phones but really every phone has its own quirks, especially at the BREW platform API level. Developing on BREW alone is extremely costly in time/money/tools, let alone trying to port to other platforms.

We are also writing an application for the iPhone that's similar in purpose to our BREW application, but because the iPhone is so vastly different pretty much every single feature of our application had to change.

Then we have Blackberry (Java) which is yet another platform to target, and that one is not only different in development language and features from the iPhone, but very different from the BREW platform.

I really hope we never get a wild hair to write for Symbian, but I am certain that we'll have to do something for the Palm Pre.

The number of programming languages and quality of tools available for mobile devices is so vastly different that just thinking about trying to port an application to multiple platforms causes me great mental anguish.
Saturday, 18 April 2009 00:32:35 (Pacific Standard Time, UTC-08:00)
There are to may mobile system (platform) then PC, Windows mobile, J2ME, Symbian S40, Symbian S60, ... ...
Comments are closed.