We all know our mobile devices are not only for making calls, sending text and listening music anymore. It goes far beyond that and they have become part of our everyday life in recent years -- so much so that we like to do almost all our personal and business transactions using some form of handheld devices.
Businesses treat handheld devices as one of the primary channels today to create a differentiator, improve customer satisfaction and more importantly engage customers toward its brand. Enterprises like to build simple, intuitive, innovative business applications and knowledge worker tools for handheld devices so that employees enjoy maximum flexibility with increased productivity.
At the end of the day, it's all about ease of use, engaging users, flexibility, productivity and accessing the right information anytime, anywhere. This is one of the most disruptive innovations that has happened in recent years. With the pace it is moving and the explosion we have seen already, industry is going to see a phenomenal growth of usage of handheld devices like smartphones, tablets across the globe. Businesses definitely like to take this as an opportunity to be part of this transformation journey for good reasons.
Setting the Context
I am going to mention some tools and technology throughout the article. These are just examples and there are other equally good tools are available in the market --you may need to evaluate for your specific implementation. I am not going to focus on any tool specific implementation, rather I will talk about implementation strategy at conceptual level for different scenarios/use case(s) and I will use the names of these tools/technology to make the discussion more relevant. I do not have any intention to promote or demote any tool/technology through this article.
I am not going to talk here on the popular subject of developing mobile apps using platforms like iOS vs. Android, nor will I focus much on the kind of application (native, web application- HTML5 or hybrid) we should build. Though I personally believe:
- Each one is going to stay in its own way and HTML5 will become stronger day by day. Especially with the help of PhoneGap app platform, native APIs can be accessed and compelling interactive apps can be built on HTML5 and this app may look as good as native app. This is certainly an attractive option from a supportability standpoint.
- The decision of choosing a specific/tool technology will depend on the kind of target mobile app (eg. gaming app vs. business app) you are planning to build and the features you like to have in the app.
- Sometimes time to market, target devices, availability of developers in marketplace, profitability, user experience and non-functional requirements (like supportability, security etc.) also drive the technology choice.
You can find two types of enterprises today -- some of them have already defined (or in are in process of defining) their mobile strategies for the next three to five years. They have evaluated and identified (or are in process of evaluating) Mobile Enterprise Application platforms (MEAP - like Antenna Software, IBM Worklight, Sybase Unwired Platform etc.) for building/delivering their native or web apps.
Some organizations (enterprises or SMB) still have not decided on specific tools/technology for mobile development because of lack of maturity or for cost reasons, or they prefer to deal with the situation case by case based on priority as and when they come. There is lot of churns in the industry. Every other day there is another tool and technique to build and deliver a mobile application. Good part of it -- iOS (Objective C), Android (Java), RIM- - BlackBerry (Java), Windows Mobile (C++, C# etc.) and web app (HTML5) mostly remain the core platform/technologies to build apps for native applications and web applications.
The areas I am going to focus on in this article:
- Why delivering content via handheld device is so relevant in this journey of transformation
- What are the implementation options are available while delivering content across handheld device
Why Delivering Content Across Devices is so Relevant - Some real Scenarios/Use cases
What is mobile content? In loose terms, mobile content is any type of content which is delivered and viewed on mobile devices -- it can be anything from graphics, songs, videos, documents, web content, forms, etc. Let us now talk about some of the use cases that involve consuming or delivering content using handheld devices:
- In a typical auto claims processing system (case management), claimant like to take a snapshot of the damaged car and upload the digital picture in the claims application using his/her smartphone while initiating the claims process. The Adjuster and claims processing manager use this information in the downstream content centric workflow to process the claim.
- Passengers within a long flight would be more comfortable to watch movies or listen songs using a tablet rather than using the In-Flight entertainment system. In other words, delivering interesting content via tablet for in-Flight entertainment is another example for content usage for handheld devices.
- No need to mention that enterprise users would be very happy to do the basic day to day business work, involving content centric applications using their tablet starting from invoice processing, bill payment, HR document upload.
- For any publication (book, news etc.) industry, publishing content to Smartphones and tablets is almost mandatory. Delivering news based on a user’s location (location awareness) can add value for the readers.
- If we take an example from retail industry, it's all about delivering personalized digital content of the product to the prospective customer based on customer context.
- Any business would like to make available the relevant web content (part of standard website) across diverse devices to improve the brand and increase the traffic.
This list can go on and on. So there is no doubt delivering content via handheld device is playing a very important role for success of this journey of transformation and enterprises are taking a ‘mobile friendly’ or ‘mobile first’ approach to reach the large number of audiences quickly and effectively.
Implementation Options Available to Deliver Content Across Handheld Devices
There are two kinds of application we talked about above dealing with content:
- Delivering traditional enterprise content (word, pdf, ppt etc.), associated transactional content centric functionality and workflow across devices.
- Delivering web content and associated functionality across devices.
No matter what tool, technology or platform you use for mobile app development, user experience of mobile apps would be treated as the key differentiator for any application you are building. User experience design for desktop applications and mobile apps will not be the same in most cases:
- Mobile App will be task or action oriented so that user can quickly find the relevant information and completes a transaction.
- Mobile Apps should only focus on important information the user will be interested in.
Let us now look at the strategies we have in hand to implement mobile apps for content centric business applications or for delivering web content across mobile devices.
Delivering Traditional Enterprise Content and Content Centric Applications Across Handheld Devices
Mobile App & platform provided by ECM Vendor
Some of the ECM vendors (EMC Documentum, OpenText, Alfresco, etc.) already have made their mobile apps available for Smartphones and Tablets. Mobile apps provided by ECM vendors tend to take the form of some of the select content management use cases like:
- Create, manage, view and search content
- Initiate and review content centric workflow tasks
- Collaboration features like share, comment, discussion around content
- Share content via email
The above list is not complete and will vary to some extent based on the app provided by vendor. Customers can use these apps if they have standard content management needs. EMC Documentum and Alfresco have apps for iPhone and iPad. OpenText supports its app for platforms like RIM BlackBerry, Apple iPhone and iPad, and Google Android. Most of these vendors use REST as the underlying technology to access the ECM repository. Interestingly OpenText and Nuxeo provide a mobile application development platform too so that customers can easily build rich content centric mobile application across devices. The apps provided by these vendors are mostly native apps and the reasons might be:
- Better User Experience and Usability for target App
- Better Offline data management and local storage
- Transactional nature of the application
Custom app (native or web) development
Customers can always choose to build innovative content centric business applications and workflows for mobile devices for their specific business needs. The key architecture and design decision might be the same across the content management platform:
- Choosing the right type of App (Native or web app) -- As discussed earlier, your target app functional and non-functional requirements are going to mostly drive the decision of whether you would like to build a native app (Android, iOS etc.) or a web app (HTML5). You should take stock of your current and future feature set that you want to enable via handheld devices and evaluate whether those can be built using HTML5. Before making the decision to build the app using HTML5, you need to also consider some of the limitations HTML5 today has like its local data storage capability, offline management of data, limited capability of accessing device specific features, etc. If your target app really has some deep requirements related to these areas, you may need to re-consider your decision to build a web app. Although there are lot of choices, if you ultimately decide to go ahead with a web app (HTML5) approach, Sencha Touch, jQuery Mobile, Dojo Mobile, Wink etc. are standard java script frameworks which can support building mobile web app (HTML5) that can run across the mobile devices.
- Server side technology -- Lightweight REST services might be the standard approach for interacting with a content repository server to pass data to the client (native or web app). Though you need to be aware of the fact that a pure REST service is stateless and will have less options for implementing security standards around it. Most ECM vendors expose their fine grained content management features via vendor specific APIs (Native SOAP/REST) or CMIS SOAP/REST. If you would like to build app that can connect to any underlying ECM repository, the CMIS REST (AtomPub Binding) implementation might be certainly a better and attractive choice. Though you should remember at the same time that the CMIS specification may not be able to support all the content operations for a given repository you are looking at for your app. So, you need to evaluate against your requirements whether you would like to go ahead with a vendor specific REST API or a CMIS REST API to connect and do the content centric CRUD (Create, Read, Update, and Delete) operations for an ECM repository. In certain cases, a hybrid approach can be taken, though it can bring certain complexities in the application design.
The following diagram depicts the conceptual components at very high level :
Customers already invested in a MEAP (Mobile Enterprise Application platform) still can use the above basic architecture principles for building content centric robust mobile apps with an established methodology, runtime, development environment which comes with any Mobile Enterprise Application platform (MEAP).
Developing content centric app leveraging ECM Platform on Cloud
Some enterprise customers running their ECM platform on premises like to enable their content centric business solutions across mobile devices and they like to do it very quickly and without having much dependency on internal IT functions. Some vendors (like Box, Dropbox etc.) offer a content management platform in the cloud to enable collaboration and access to content across different devices including iOS or Android smartphones and tablets. There are connectors available (provided either by the vendor itself or by any third party) to bring relevant content from an on premises ECM platform (like EMC Documentum, SharePoint, etc.) to a Cloud platform. Once content and relevant data moves into an ECM cloud platform via connector, the existing mobile capability of the ECM cloud platform can make the content and related features available across devices in a secure manner. Actually, Box and Dropbox also provide platform/SDK API to build custom content centric business app for mobile devices.
Delivering Web Content and Associated Functionality Across Devices
Let us now focus on delivering web content across mobile devices. Companies running their standard websites are for consumption on desktops or laptops of certain screen size. What should be the strategy they need to adapt these sites if they want their employees or customers to consume the information across different devices of disparate form factors? Most of enterprises and SMBs (Small and Medium Business) already have outlined their strategy around Web Experience Management (WEM) and Web Content Management Platform (WCM). Delivering content across mobile devices is simply part of it. All modern WCM platforms (SDL, DAY, Oracle WebCenter Sites/Fatwire, etc...) today have the capability to deliver content across devices.
Keeping the fundamentals right while delivering web content across devices
A consumer’s location, preferences, social connection, consumption channel largely drive the user web experience. The first step might be to measure and analyze to understand how consumers are using the existing website (not optimized for mobile) on mobile devices. You want to know the kind of devices consumers are using to access the site, the pages they are viewing and actions they are taking while they are on their devices. These statistics can be captured with the help of a web analytics tool (Google analytics, Webtrends, etc...). The stats will help you decide what would be most important information and related actions you would like to make available on different devices of different form factors and ultimately it would help you derive your user experience strategy for mobile devices.
The second most important aspect is to design the content model for structuring content following some best practices so that you create content once in a WCM repository and reuse it across the different channels based on the user experience need for a specific channel (desktop vs. tablet vs. smartphone, etc...). You do not want to create separate content, web infrastructure and sites for specific mobile devices unless there is a compelling reason to do so. Content granularity -- the way you structure and store your content really helps to have your content and the presentation separate allowing you to repurpose the same content (created just once) in several ways across the channels.
Delivering web content across devices using template
Modern WCM (Web Content Management) platforms (like Oracle WebCenter Sites -- powered by netomat, SDL-- powered by Netbiscuits, DAY CQ5 powered by WURFL -- Wireless Universal Resource File) have server side capabilities to detect the device and accordingly deliver the web content across the device. If you are already using Web CMS (WCM) solution, you already know that templates play an important role -- they are the building block of the design layout of a website. Templates actually drive web page output -- how a web page will look like when it gets rendered in a browser or any device. In general, you need to follow the following basic steps for web content delivery across devices for a given WCM platform:
- You need to plan the group of the target devices for which you would like web content to be optimized and delivered. As example, you can plan groups for feature phones, smartphones, tablets, etc... based on device capability and further this can be filtered out based on individual capability of the device.
- Separate templates need to be built based on the form factor and device capability/device type to deliver optimized mobile sites to smartphones, tablets, etc... Most WCM platforms have the ability to deliver content based on even a user’s location.
The diagram below shows the high level conceptual components around a WCM platform to deliver the web content to across devices.
Delivering web content across devices following the Responsive Design approach
You have been also hearing about responsive design for some time as another approach to deliver content across mobile devices. This client side approach helps by adjusting the layout based on form factor. So you do not need pre-built separate templates, rather one single code base will do the job for you to adjust the content and images automatically based on different device form factors.
The main technology ingredients of responsive design are CSS3, HTML5 and java script. So, obviously the phone browser needs to support these technologies in the first place to follow this approach. This approach can be adapted when you want your desktop, mobile and tablet sites to look similar. This may not be the case always though. Sometimes a user would expect an altogether different experience while accessing the same site over their smartphone verses their desktop. Although template driven and adaptive design are two different approaches for delivering web content across handheld devices, they are not mutually exclusive. The best of both worlds can be utilized based on the use cases and scenarios. Some of the WCM platforms support responsive design.
When you are building a website, sometimes you may need to deliver other associated features like payment gateways, alerts, mobile commerce, and rich transactional self-service activities (touching across underlying legacy or bespoke applications). The mobile application development support provided by your WCM platform may not be able to handle these rich sets of complex mobile requirements -- in those scenarios, you may need to look at Mobile Enterprise Application platform (MEAP) along with WCM.
Process, Tools, Technologies, architecture best practices are available today to deliver content centric rich applications across mobile devices and every day it is getting more mature. It’s very important to evaluate the right set of strategy, tools, and technology based on the customer’s context, business problem and requirements. Product vendors, service providers are constantly working towards it.