App developer’s dilemma

I’ve been a mobile app developer since the early Microsoft Pocket PC days (circa 2001) and I’m amazed at the selection of smartphones currently available. You have the Apple iPhone, Google Android OS, Palm WebOS, Blackberry RIM, and Microsoft Windows Phone 7 OS devices as the big players. So as a developer, which platform should you choose to develop apps for?

You really can’t developer for all of the platforms, since coding for one usually isn’t easily transportable to another. For example, the Apple iOS (iPhone, iPad, iPod Touch) use Apple’s Objective-C programming language for app development (which you need an Apple computer also). The Android OS requires the Java language, and the Palm WebOS requires Javascript (or C++ for games). Microsoft WP7 requires Microsoft’s own programming language (C# (or Visual Basic) and Silverlight), so as you can see you would need to be trained and skilled in many, many different languages for creating apps for multiple platforms.

So as a developer, you need to make some tough decisions if you want to create apps to sell for a smartphone device. In most cases your time is valuable, so you want to minimize your efforts and maximize your profits and results. I have been in such a dilemma, and here are my thoughts:

For all of the platforms, the Apple iPhone definitely has the biggest online app store. They have tens of thousands of apps available, free and paid. In my opinion, a new developer creating apps for the iPhone would easily be lost in this sea of apps, and the prospect of making a decent return on investment is quite slim. In addition, you need to own an Apple Mac to do such development and also learn the Objective-C language. Developing iOS apps has a steep learning curve and something I’m not willing to do at this moment for the possible return.

The Android OS is in a similar position as the Apple iOS, in that there’s thousands of apps already available. Most ideas for apps you might come up with have already been created. Java is a very popular language and if you already know it, then you’re more than half way there. Android developers use the Eclipse IDE (which is free) and it runs on many different computer platforms (Windows, Mac, Linux). I’ve found that the Android development tools are not the easiest to work with, but they are all free and readily available from the Internet. I’ve opted to not pursue developing Android apps since I don’t know Java and it would be a huge effort to get up to speed in that language. Now, I have not excluded writing Android apps, but at the moment I’m holding off any serious development effort with that platform.

I’ve spent the last year or so developing apps for the Palm WebOS devices, and I find it very easy to do. If you’re a web site developer and know HTML, CSS, Javascript you can create WebOS apps. Palm uses the Eclipse IDE and it’s fairly easy to code up your apps. As with the Android, you can do your development on a Windows, Mac, or Linux machine and all the development tools are free.

The biggest issue I have with WebOS app development, is with Palm. Palm has been very supportive of their developers, but it’s been over 8 months without them releasing any new smartphone devices. Since the acquisition of Palm by HP, handset releases have been non-existant. Sure, Palm release the Palm Pre 2, but that’s basically the same design as the Palm Pre. In fact, a lot of cell phone carriers have dropped selling WebOS smartphones so a developer must question if it makes sense to begin or continue developing for WebOS devices.

Microsoft released their Windows Phone 7 OS devices last year, refreshing their old Windows Mobile OS to something that is comparable to the iPhone, Android, and WebOS touch-screen devices. Amazingly, a lot of pundits like the new look of the WP7 OS (including me). Even though there’s not many WP7 smartphones on the market (GSM version only available), I believe Microsoft will throw lots of money at the WP7 project and won’t give up until they grab a big part of the smartphone market segment. As such, the total number of WP7 apps currently available is the smallest of the smartphone group, which in my opinion is a good thing for developers. This means more opportunity to create useful apps and games that will be noticed in the online catalog. Once you’ve established yourself and have good ratings, you will be in a good position to make considerable profit as more WP7 handsets are sold.

So do you develop apps for the iPhone, Android, WebOS, or Microsoft WP7 smartphones? Which platform will give you the biggest profits? If you have a “killer app” (like Angry Birds) I’d say go with the iPhone and/or Android since they have the biggest user base. If you’re a Java programmer, then go for the Android OS. If what you really know is HTML/CSS/Javascript, then dive into WebOS app development. Finally, if you know C#, Silverlight, or Visual Basic then check out the WP7 platform.

What am I planning to do? That’s a tough question to answer at the moment. I’ve pretty much decided to focus on two platforms: WebOS and WP7 since I already have apps selling on both platforms. I’m concentrating my efforts for the moment on WP7 since it seems to be an easy platform for creating nice looking apps, and their app store is low in quantity of good apps. But, I’m keeping my eye on what HP/Palm will be announcing next week on February 9th. If they announce some incredible hardware and the release of new app SDKs then I may drift back to that platform.

The smartphone industry is quite dynamic at the moment, so a developer needs to stay alert and keep all their avenues open.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: