Thursday, February 16, 2012

Strategies for Mobile Enterprise Development

In SD Times on January 30th, Larry O'Brien writes about Strategies for mobile enterprise development in his Code Watch column.

He talks about three different types of mobile apps: web-based, cross-platform and native.  What's the difference?  Web-based is as you might think: HTML5-based web application that can run on any device, including mobile.  Cross-platform apps are apps that use languages and/or tools that can also be used to create apps for other platforms, such as Mono with its MonoTouch and MonoDroid products or Corona.  And native is when you use the tools provided by the mobile device platform manufacturer, such as Xcode/Objective-C/Cocoa for iOS devices.

Larry talks a little about using MonoTouch for iOS app development and notes that it works well, even if you still have to use Xcode and learn a lot about Apple's Cocoa framework API.  Having looked at MonoTouch myself, I don't see the point.  Why bother to attempt to shoehorn Cocoa into C#, something it was never design to work with?  You might as well take the next step and use Objective-C.

But in the end, he suggests that "the wisest strategy for the majority of enterprises is to make their first mobile projects web-based." His reasons (risk management, speed and simplicity) make a lot of sense.

Risk Management
As Larry notes, there are risks when creating a native application for mobile devices.  After all, mobile devices are in their early stages and change is constant. Going with a web-based technology is more proven.

Here, mostly Larry is referring to the speed of development and deployment.  With a web application, you are already familiar with the technology.  Plus you can roll out changes quickly and easily.  With a native app, you typically have to submit it to a marketplace for review or use their enterprise tools to deploy it to your users.  Either way is less convenient and you probably won't get the level of control you want.

Because web apps won't have direct access to all the bells and whistles of the mobile platform, it forces you to simplify you app.  You can instead focus on what your customers really need, rather than waste time "chasing new platform features."

Keep in mind that Larry is discussing enterprise software here, not consumer software.  For consumer software, a native or cross-platform application is still your best option.  But for enterprise software, think web first.

1 comment:

Seriously? said...

I read the same article and agree. I am the product manager of a small software company - we build apps that bind back end gigantor systems like SAP to usable UIs like SharePoint or mobile, including iOS and Droid. What we know from our customers and prospects is that the mobile use base is diverse and changing....Blackberrys are still very common in the enterprise. While we are not about to develop a native RIM app, we are going ahead with doing mobile web simultaneous to developing some of our core components as native apps for iOS and droid. Native apps seem to be what some enterprise mobile app managers prefer, and we can leverage marketplace deployment, etc., and the user experience is superior, but they all agree that mobile web is a solid bet to address the entire user base at least as a stepping stone.