Native mobile app for Salesforce Communities - Part 1

Gist: An overview of technology options to offer mobile experiences for "Salesforce Communities". Technical details and "how to" with Titanium Appcelerator in the Part 2, UI design in Part 3 and Integration in Part 4.

Salesforce Communities enables businesses to connect with their customers and partners. It also offers features such as social logins, chatter collaboration, flexibility in branding, and a unique licensing model, along with the scalability and performance of Salesforce's cloud.

Sample Communities login page with Facebook SSO and branding

In addition, Communities also offers a mobile optimized experience.

For a more customized mobile experience, Salesforce 1 platform can be used to develop a mobile app with little or no code. It is a good choice for quickly deploying CRUD apps and enabling mobile capabilities for common scenario such as opening cases etc. With its "clicks, not code" approach, it is a nice return on a relatively small investment of time and effort.

But what if you wanted to build highly customized mobile interactions and offer features such as Augmented Reality, or live videoconferencing for customers with service agents, or an NFC based interaction. These type of requirements typically require a native mobile app.

Fortunately, Salesforce's Mobile SDK allows for a standards based approach to build native iOS and Android app, and works great. It is a nice option since Salesforce has built the underlying plumbing that makes it easy to authenticate, integrate, utilize push notification, securely store data offline etc. It is also actively maintained.

However, almost all approach to developing native mobile apps require knowledge of Objective C (iOS) and Java (Android).

An alternative for those who don't want to learn yet another programming language (and know JavaScript) is Titanium by Appcelerator, which utilizes JavaScript for programming and then cross compiles the JS code to a native iOS or Android app.

Note: While Titanium can use the same JS codebase for iOS and Android (with an 'if / then' branching logic for O/S specific nuances), I have found that keeping two separate JavaScript codebase for Android and iOS is a cleaner approach.

Let's take a look at how we can use Titanium to build a native mobile app for Salesforce Communities, and dive into the technical details in the Part 2.