There are far too many options when trying to figure out where to publish your mobile application. Do I go with native and code it up for a single device? Is it easier to reduce capabilities and publish a simple browser-based application? Do I do some work to mobilize the web content? Or is there something in between, perhaps a hybrid container hosted on a mobile enterprise application platform (MEAP)?
For the last 12 months I’ve been reading far too much, spoken with hundreds of people and attended numerous discussions around which path to take. After the entire dialog there is still quite a bit of ambiguity around which path to deploy your applications. Not until you start factoring in some items specific to your enterprise.
Let’s take the example of an application used to capture notes that can be shared across both desktop and mobile devices. You’ll need some form of data storage, a user-interface for both the mobile device as well as the desktop, and some method to connect each to the other - securely.
On the internet, you can simply drop a public cloud-service and use some single-sign-on like those provided by Facebook or Google. Then connect via a browser-based application (one code stack) which can be skinned for each device accordingly (through the use of cascade style sheets). Or you can look at solving it for the majority by writing a native application for the iOS, Android and Blackberry population (three code stacks).
Each delivery method has benefits, just not to the same crowd.
Number of code stacks
Browser: Easier to maintain a single-stack, less complexity for updates and upgrades when working with a single team for development and support.
Amount of testing
Both: Each specific target device has to be checked for user experience issues. One benefit of browser-based is that the majority of mobile-browsers are based off of WebKit, making for more consistency is performance.
|Time to Market (TTM)||Faster||Slower||Browser: When considering how rapidly you can be consumed on the various mobile devices and across multiple browsers. Of course, if you have a team of well trained developers doing parallel development off the same screen designs, this could be the same.|
|Total Cost of Ownership (TCO)||Lower||Higher||Browser: Maintaining multiple code stacks, across multiple teams as well as the licensing and training needs for development; it all stacks up rapidly against native deployment models.|
|User Experience (UX)||opinion||opinion||I would argue against anyone who states one is better than the other. It all comes down to the quality of your designer and the experience of your development team to implement. We have taken the same screen designs and implemented it natively and as an HTML5 solution that was indistinguishable, from a UX perspective.|
There are articles around talking about this, and we have a strategy which has a mixture of browser-based, MEAP, native as well as virtualized delivery. There are use-patterns where one makes more sense than the other, however, when it comes to the enterprise we are leaning heavily towards browser-delivery (and hybrid) to give us the highest TTM + lowers TCO.
When walking project teams down the “do I need to go mobile”, I often involve my 4-C’s:
Is there sufficient content that can be enabled for delivery via a mobile platform?
Is your audience on a supported device, connected to our environment?
Are you willing to absorb the costs associated with a different UI (design, develop, deploy) as well as the necessary infrastructure (service creation)?
Have you done the analysis to determine if there is indeed a case for mobile consumption?
Basically, are you trying to do something on a small-form-factor device that is better suited for a 24” screen or mouse, or can you leverage the different styles of interaction on the device?
Have you optimized your interaction (flow) model, to truly design an experience vs. taking legacy content and dropping it without the right level of design?
What are you doing in this space?
Are you using a mix or single mechanism?
Are you adopting a mobile strategy in your company?