As part of our effort to develop our mobile offerings for HPI and other applications, we took a detailed look at a number of different frameworks during our TSG sponsored Hack Day. This post will present our findings.
Native versus Web Applications
One of the major decisions for development was whether to go with a native application for a specific device (ex: iPhone or Android) or simply use a mobile browser. Native applications have full access to device specific goodies and APIs that allow developers to create rich mobile applications, just like in the desktop world. A couple of downsides to the native application approach include:
- Difficulty in supporting all the different types of devices consistently – Our clients have a variety of devices (ex: iOS, Android, Windows Mobile, and Blackberry OS) and we were concerned about having to dedicate developers to each platform to deploy a consistent application.
- Difficulty in updating/releasing – All mobile native applications are subject to the individual systems approval and release. (iTunes, Android Market, etc). As a native application, the vendor wants to make sure that the application will not affect other components of the device. This can present an issue with timing of releases (pending approval) as well as requiring the user to upgrade the release.
- Support of different devices was addressed through the browser and consistent standards. We feel strongly that the mobile browser platforms are rapidly developing (Google, Facebook….) and will continue to evolve across vendors with open standards.
- Changes could be released quickly without vendor involvement or requiring the user to upgrade the application on their device.
- The majority of the UI’s being used for mobile applications for ECM can be easily created with HTML/CSS, and when necessary, the HTML5 canvas can be leveraged for amazing graphics. Search and retrieve and approval of documents does not require an “Angry Birds” interface.
Mobile Web Application Frameworks – HTML5 Approach
After reviewing Sencha Touch and jQuery Mobile on a wide variety of Blackberry 6/7, iOS devices, and various Android devices, while great for quick prototypes, it seems clear that these frameworks are built for iOS and “support” the others because of their use of a WebKit browser. We also found that mobile browsers are actually just as annoying as their desktop equivalents as there doesn’t seem to be much consistency yet. See related link for additional detail: http://www.quirksmode.org/mobile/viewports2.html
jQMobi and knockout.js– a different approach
We recently found jQMobi: http://jqmobi.com/ and it definitely follows the pattern we’ve come to love from desktop jQuery. Instead of starting with all of jQuery from the desktop library, jqMobi provides the equivalent features, but has removed many of the components that would cause performance issues. In addition, simple plug-ins are included to cleanly deal with mobile events and gestures. As with any of the frameworks we’ve tested, we’ve run into issues as we deviate from the out of box examples. Unlike the other frameworks, instead of being stuck in a markup nightmare and having thousands of lines of script to look over, we wrote the markup and can easily tweak it for whichever device is not behaving properly.
As of the date of this blog post, we are committing ourselves to begin offering many of our applications utilizing jQMobi and knockout.js. Look for updates soon in regards to Search/Retrieval as well as Approval for HPI.
Please comment below if you have any experience or other thoughts worth sharing.