The need, or at least desire, for mobile enabled websites and applications has been steadily growing for quite some time. A number of my existing clients are now asking or planning for site upgrades that support mobile users and new clients often express a desire for these features as well. I suspect we are on the cusp of another technological shift similar to the 90’s era boom of web-innovation when so many client/server developers migrated to the web. Web-based application developers are no longer going to be able to ignore mobile development.
As a web application developer, I’m already familiar with HTML and CSS and have been experimenting with these technologies in the mobile space. HTML5 and CSS3 have some great features for making robust, rich internet based applications. I believe web-based applications targeted for mobile devices offer many advantages over native-app development, many of them the same as they hold over traditional desktop applications, but they currently have some limitations when it comes to accessing device hardware features such as the GPS or camera. Additionally, there are times when your application needs to be functional even if in a limited capacity when the user is offline; something that is very difficult to do with a mobile web application. For these things you need a native mobile application. However, as anyone who has looked into this knows, this requires a significant investment in time and money in order to cover all the bases.
Mobile application development for the .Net developer just got interesting!
Novell, a sponsor of the Mono project, has a couple of very interesting products in the works, MonoTouch and MonoDroid, which promise to allow .Net developers to build software for the iPhone, iPod Touch, iPad, and Android based mobile devices using C# and core .NET APIs. The iOS version is available now, while the Android version is in an early development phase. I’m particularly interested in MonoTouch’s ability to work with WCF services in a familiar manner, given that they are often a part of the web applications I build. This coupled with the ability to access the phone’s camera and GPS opens up a whole host of integration possibilities for a number of sites I’m working on; some of which are required to remain functional in an offline state. The Mono project has finally spawned something for which I can get excited about.
Bryan Costanich has a nice article describing what development with MonoTouch is like. You can read it here: InfoQ: MonoTouch: .NET Development for the iPhone. For those interested in building location aware mobile applications, have a look at this post by Bob Hitching.