By Quinton Wall
The world has changed. Mobile apps rule the world. Unfortunately, most mobile app strategies fall short in identifying a critical ingredient for building killer mobile apps. This missing ingredient is context . Context allows developers to create apps that support the who (Identity), where (location), what (social graph), and how (workflow) required to transform data into information. Contextual apps do this by leaving traditional integration strategies behind, and relying on Platform as a Service (PaaS) providers to deliver the apps users love.
The world has changed. Mobile Apps rule the world. Every day we tap, touch, and swipe our way through both our personal and professional lives. As a developer, you know the ingredients to building a great app - lightweight APIs and data formats like REST and JSON, integration with social networks, and you have studied your options for development: native, hybrid, or web. But, too often, especially for productivity apps, we forget a critical ingredient that enables killer mobile apps.
This critical ingredient is context.
Every mobile application has rich context around how it's used - the who (identity), where (geolocation), what (social graph), and how (workflow). This notion of context is so prevalent in our daily lives that we don't even realize it. Think about the last time you received a call from an “unknown caller” on your cell phone, or a piece of junk mail from an unknown sender. Your instant reaction is that this is not as important as something from a friend, or colleague. This is the power and importance of context.
What is a Contextual App?
So how do we build a contextual app, and what does a contextual app look like? From a high level, a contextual app should consist of four primary aspects:
1. The app must know who, and where, you are
When was the last time that you created a unique login for a mobile app? If you are like me, it has been a while. The new standard for identity is to leverage a trusted provider like Google, Facebook, Salesforce.com, or Apple. Once a user's identity has been validated, and location pinpointed via geolocation services, a contextual app can now serve information specific to that user, and their locale.
This contextual information may include topical news, local services, availability of a user's records, and recommendations. By introducing context, app developers can dramatically improve the user's experience, and effectiveness of the app. Both Yelp and Foursquare are both great examples of using user and locale context to offer recommendations. Amazon.com's one-click technology is another example where, by embracing context, they have changed the game for the online shopping experience.
Figure 1.0: Geolocation on mobile devices can drive locale context (Click for larger image)
2. Processes can span multiple Apps
The way we work has radically changed. We use apps for note taking, sharing files, collaboration, and more. These apps are often very good at one thing, and users must jump between apps to complete typical workflow tasks such as collaborating on the creation of a document. Contextual apps leverage services such as identity, authorization, and platform APIs to easily share information between apps allowing users to complete workflow tasks in whatever app they choose.
This idea of using any app you want fundamentally changes the integration landscape. Developers who look to traditional integration models, which require complicated middleware stacks to provide synchronization across apps, are doomed to fail. The mobile-first, app-centric world is built upon lightweight APIs, and open authentication standards now served from cloud platforms. Further, traditional integration models focused on moving data from one system to another. Contextual app integration is about changing this data into information, and making it available in the apps users love.
3. Changes in the app instantly notify the social graph
The social graph allows users to express interest in a particular person, record, or file - effectively any piece of information that they have identified as important to getting their job done. Contextual apps constantly interact with the social graph to ensure that any change, via any app, instantly notifies any follower. What's more, with contextual information such as locale, or related records, this notification can allow the follower to make more informed decisions.
Figure 2: Connecting to the Facebook Social Graph from a Ruby app on Heroku
4. Developers must think beyond app boundaries
Mobile developers often focus on the app - I'm writing an iPad app, therefor I spend my day coding Objective-C. This approach of development, however, limits the developer from recognizing another aspect of context - how the app fits into the context of a broader platform. Phil Simon, in The Age of the Platform, describes how, by offering additional services - he refers to as planks -companies like Google, Amazon, Facebook, Apple, as well as Salesforce, are building ecosystems to increase the influence of their platforms. Developers are also seeing the advantage of the growth of platforms.
Developers, who were typically focused on their specific app, can now leverage contextual APIs exposed by cloud app providers to make it easier than ever to create the apps their users want, and support workflow tasks. Further, by thinking beyond app boundaries, developers can look to PaaS providers who support the ability to rapidly create their own APIs based on schemas, or cloud-based app logic, as an extension to their current development capabilities.
The world of mobile-first, app-centric development requires developers to embrace context to build truly game changing apps - apps their users love. These contextual apps turn data into information by focusing on who and where the user is, how the app can span multiple apps to fulfill workflow tasks, and instantly engage with the social graph of leading social networks to promote collaboration.
Many of today's most popular apps already support at least two of the aspects of contextual apps described in this article. Game changing mobile apps will support all fours aspects by leaving traditional integration models behind, and looking to PaaS providers as a strategy for building app logic available in the cloud.
About the author
Quinton Wall is the Director of technical platform marketing at salesforce.com, and aspiring fantasy author. He is a regular speaker at cloud and developer events around the world, active contributor to open source projects, and the developer.force.com site. When he is not working with the salesforce platform, building mobile apps, or writing books, Quinton can be found on twitter (@quintonwall) sharing his thoughts 140 characters at a time.
Disclaimer: This site does business with some of the companies associated to this article.