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.
Posted by zunetips
I’ve been writing computer programs since the old Timex Sinclair 1000 came out when I was in Middle School back in the 70′s. Back then it was some form of BASIC language that was stored and loaded from cassette tape. Over the years I’ve learned several languages such as Fortran and C, as well as scripting languages such as tsh, Perl, Javascript, etc. I’ve written programs for the Pocket PC and later Windows Mobile devices, as well as UNIX X11 apps and Microsoft Windows (WIN32) apps all using straight C programming. Recently I’ve written several apps for the Palm Pre/Pixi WebOS smartphones using Javascript and various HTML5 components.
For the last 8 or so years, I’ve been writing apps for the Microsoft Pocket PC (and subsequently the Microsoft Windows Mobile OS) devices. In the early days, I was making some substantial income selling these apps on the Internet, however, my software sales have gone down every passing year to where I’m making just enough to cover my minimal operating expenses. I don’t think you can even buy a new Pocket PC PDA these days, as most people favor using their smartphones with the same integrated features. So in my opinion, the Windows Mobile OS is a dying platform for application developers.
Arguable, the Apple iPhone is one of the most successful smartphones on the market. Its slick, flashy user interface and tie to the Internet for data retrieval are its most attractive features. Its only downfall is the exclusivity on the slow and spotty AT&T Network.
For the last several months, only a select group of developers were allowed access to the Palm Pre SDK (early access program for developers). All that were accepted in the program had to sign non-disclosure agreements to keep what they were seeing in the beta SDK confidential. Fortunately, I was one of the select few who were accepted into the program about a month ago, so I have had some time working with their SDK. As of this morning, Palm has officially released the SDK to all developers publically, so anyone who wants to create Palm Pre apps can now do so.
I’m trying to get back into developing applications for the Windows Mobile Devices (primarily because I need these certain applications for my own use) and make them available for sale on my software web site. I need to let you know that it’s a big undertaking. Here are the major steps required to create and sell a new application:
Since about 2001, I’ve been developing applications for the Microsoft Pocket PC and now Windows Mobile devices. It’s been a part-time effort, where I spend evenings and weekends creating the Windows-based applications. Since the Pocket PC/Windows Mobile OS is basically a slimmed down version of Windows, all the programming structure, function calls, etc. are the same. So, if you know how to develop executables for the Desktop Windows machines, it’s nearly the same thing for the Windows Mobile devices.