This post is based on my interest recently in current mobile development offerings. Not the specifics of implementation but more around what options are available to us as developers. In this post I won’t be going to go into any specifics as I’m just putting this post out there as a starter for where my current thinking lies. Over the next few months I’m hoping to expand on this with more specifics on the choices available.
In an entirely fictitious scenario let’s imagine our Business User proclaims “We need an app!” This invariably leads to a conversation with the development/design team along the lines of:
Dev/Design: “App? What kind of app?”
Business User: “An iPhone app of course! What else could I possibly mean!?”
An iPhone app
An Android app
A Windows Phone 7 app
A Blackberry app
A web app published on the app store/marketplace, i.e Appcelerator or PhoneGap
A mobile version of our current content site
A mobile version for a specific new product offering”
Skip ahead 12 months…a Windows 8 Metro style app
Business User: “Ah…”
As a developer (.NET in particular) we’ve now got a plethora or choices at our disposal for the provision of a mobile offering. The technology and platform choices we make are broader than that for our typical LOB applications. Whilst it’s ultimately down to the client’s time and budgetary constraints, in the mobile world it’s rarely an option for us to target a specific platform.
We need to consider the two ends of the mobile spectrum – given limitless time and budget we’ll write native apps for each platform and excel at providing a compelling experience on each device. Whilst at the other end of the spectrum we’ll provide a modicum of time to prettify our content/services for the most common mobile platform. For now let’s ignore the psychology of an app on the App Store / Marketplace, there has to be a middle ground for those of us that aren’t writing the next Angry Birds but do understand the significance of mobile going forward and therefore want to embrace it.
Given the above I think it’s valuable for us as LOB developers to have a clear understanding of our options for getting the job done when mobile isn’t (currently) our core target. I believe these options lie in the capabilities of CSS3 and HTML5 and when a need for accessing device features such as the camera or accelerometer arise we can extend this through the use of frameworks such as PhoneGap, Appcelerator and to some degree MonoTouch. Having just confirmed the link to PhoneGap for this post I can’t help but feel disappointment at learning of their acquisition by Adobe. Good luck!
If you’re just dipping your toes into the mobile waters I’d also highly recommend looking at what are commonly known as Web Apps. These are typically mobile versions of a current desktop content/service offering but served up in a very mobile centric way through frameworks such as jQuery Mobile. These tend to go beyond that which can be achieved with a mobile skinning of existing content.
I produced this quick and fairly flippant flowchart whilst thinking about this post and figured I’d add it here. Some of these technologies can of course be intermixed in your mobile solution. For example, jQuery Mobile can work quite nicely with the PhoneGap and Appcelerator frameworks.