Lately, I’ve been trying to learn mobile development for both professional and open source coding. The irony is that I’ve been doing mobile development for 8 years. Unfortunately, mobile enterprise data acquisition has been tied closely to Windows CE/Windows Mobile for a long time.
Recently Microsoft created chaos in the market by abandoning support for Windows CE in Visual Studio 2010. They also decided not to release any new version of .NET Compact Framework as a development platform. When they realized how stupid this was, there appeared to be some sort of internal mess as MS tried to make up lost ground with the vendors that had sold bazillions of Windows CE units for them in the past. After stumbling over themselves for a while, they’ve consolidated their embedded offering with their handheld offering to create Windows Embedded CE and pulled together some sort of backward compatible offering called Windows Embedded Handheld (at least that’s what they are calling it this week). At this point, I really don’t care very much. I get the feeling that the market has been burned and will be going to Android.
Motorola Solutions is coming out with its first Android offerings now, and this means a lot of choices are ahead for the company I work for. Should we attempt to write Java when we have never deployed a line of Java code in the past? Should we use an offering like Mono for Android? What if we want to offer applications in iOS as well? Should we learn Objective C too?
The last option I’ve seriously considered is Mono for Android. Any of the options in this article could probably fill an entire blog post with pros and cons, but Mono in particular is an interesting beast to me because I’ve come from a .NET background. The main problem with Mono is that it is such a niche technology and is pretty much owned by Xamarin. Although Xamarin has some very smart people running it, the company is less than a year old and I haven’t seen wide adoption of their technologies. In the development blogs I read, there is rarely discussion of them at all. It just feels like a big risk at this point. The $800 per developer (to get both iOS and Android) is negligible relative to the potential development losses.
How can you really go wrong? If PhoneGap miraculously disappears, you can (obviously) run your app’s hardware agnostic code in the browser. You can consider Rho Elements if you have to port your code as quickly as possible, or you can reuse your business logic in Appcelerator. You can even reuse your client side business logic on the server if you like (using Node.JS).
Of course, the mobile development community changes so quickly that I could be laughing ruefully at this post next year.