Multi-platform Mobile Development

I’ve been away from the blog sphere for a few months due to contracts I had to complete. I can’t and won’t complain about that since its these piles of work that get the bills payed. The types of jobs I’ve been getting lately have been changing, I’ve seen customers requesting for 3 different platform implementations of mobile applications. So these past few months I’ve been working on Android, Windows Mobile, Windows Phone 7, and as of last week iPhone. I find these challenges to be really fun even though the initial start up with a new platform doesn’t always go that fast. Once you get a hang of it you learn to appreciate the architectural difference of each platform.

There are always a bunch of obstacles, some things are easier done in some platforms and some things are just more straight forward and runs faster in some platforms. The Microsoft platform’s have extremely good development environments where productivity is kept at a constant high. I feel very at home in the Microsoft space since I’ve been doing mobile development since the days of Windows CE 3.0. Developing applications for Windows Phone 7 is very easy as long as one sticks to the development guidelines (provided by Microsoft) from the start.

What I came to really appreciate lately was Android development. I think this platform is very well designed and thought through. Getting started wasn’t so hard and since Java is rather similar to C# I didn’t have any trouble switching languages. The performance of Android applications is to my surprise superior to Windows Phone 7 and highly optimized Windows Mobile .NETCF applications and the API’s provided for Android are elegant and well documented.

I haven’t really gotten too far with iPhone development and I can’t say much about that for now. But I am very pleased with the iPhone itself. Until the release of Windows Phone 7 devices I carried an iPhone around. It’s extremely easy to use and it provided the very first software input panel that actually impressed me and that I really found useful.

I usually don’t post my random thoughts on my blog. So what does all this mean? Well this post is meant to be the start of a long series of articles on multi-platform mobile development. The purpose of this series is to explain and demonstrate how to implement mobile applications on different platforms; to discuss architectural considerations for multi-platform design; demonstrate how to share common assets between the different platforms; to explore the best design patterns applicable to each platform, etc etc.

How to enable Internet Tethering on a Samsung Omnia 7

I recently received a Samsung Omnia 7 and I think it’s a pretty awesome phone. But, Windows Phone 7 in general lags behind with a few things, one of these things is a built in internet tethering feature (like in the iPhone for example). Since I’m going away for a few days I don’t intend on going around with a 3G modem (my laptop doesn’t have a built in 3G modem), neither am I to keen on switching back to my iPhone. So I searched for a solution and stumbled upon a hack to enable launch the Omnia 7 Diagnostic Menu and the Micro USB Test.

Here’s what you need to do

  • Open the phone application
  • Dial  # # 634 # and press Call
  • This will launch the diagnostic menu
  • Enter  * # 7284 #
  • If the code above is entered properly then the Micro USB Test app launches 
  • Select Modem, Tethered Call
  • You are prompted to restart the device
  • Connect your Omnia 7 to your computer via USB

In my attempt I was prompted to install the Samsung USB Driver and Windows 7 provided me with a link. Try it out :)

Chris' Puzzle Game on the Windows Phone 7 Marketplace

I got my first application published on the Marketplace. The process was surprisingly fast, took overnight to get it certified and another day before it appeared on the Marketplace. I have a video demo of the game here and I demonstrate how parts of the game was built in an article called Writing a Puzzle Game for Windows Phone 7 using XNA. Try the game out, I’d love to get some feedback. It’s a game made over a weekend and the main purpose was to experience the publishing process. If you have some comments, suggestions, or questions on the game then please send them to me and I’ll see what I can do.