There’s a lot of talk these days in the enterprise space around mobile development.
In a series of short interviews, watch the infectiously energetic Jerry Cuomo (WebSphere CTO) explain that for many customers mobile is not an option. They need to have a roadmap to mobile deployment, and they need it now. Drawing parallels to the growth of the web over a decade ago, Jerry talks of the current ‘frenzied excitement’ which he believes will lead to an environment of better choice, architecture and the design moving forward.
And choice is something we’re not short of in the mobile development space. Should you develop web-based mobile apps? Should you develop native apps to cover the whole gamut of platforms (which still includes Blackberry if you’re talking B2B development).
Whilst now developers are faced with a number of mobile architectures on which to develop, the Holy Grail is to leverage existing skills, whether they be around the web, open standards, Java, etc. to write an application once and deploy to many devices.
WebSphere Application Server has taken this approach for its mobile strategy with the launch of the Web 2.0 and Mobile Feature Pack. Built on the popular Dojo Toolkit, the Feature Pack gives developers access to HTML5 mobile themes (to develop web apps that look like native applications), mobile widgets, diagrams and improved gauges and charting.
As IBM’s Chris Mitchell explains in this video, for the clear majority of developers of enterprise applications, the user interface (UI) is simple enough to not require all the full-blown features of a native app. Displaying an XML feed of first-quarter product sales is a substantially different proposition to rendering a realistic 3D racing game. Having said that, mobile frameworks like Dojo are becoming richer and really stretching the paradigm of what can be displayed on the web.
For instance, Eric Durocher over on the Web 2.0 and Mobile Development Blog shows how a complex diagram like an organizational chart can be rendered for a mobile device:
What are the best practices for developing these applications?
Chris Mitchell suggests an architecture that decouples the server from the client. Data from the server side can be exposed using REST or web services. These can be accessed from the client side, whether the client be a web application or a mobile one. In this way you only build one core application with only minimal work on the front-end to cover any web-enabled device.
If you want to take this a step further and offer native apps (say, if there is a requirement for the app to appear in an App store like Apple’s or Android’s), you can create a hybrid application with a tool like PhoneGap. You effectively build a web-based mobile app and let PhoneGap provide a wrapper so from a user perspective it looks and runs like a native app.