Every mobile application has core requirements like identity management, data security, data integration, social integration, offline support, analytics, etc. But with Salesforce, you don’t have to reinvent the wheel: You get a trusted implementation of these application services, configurable in a metadata-driven point-and-click environment.
For the right use cases, Salesforce even allows you to build the entire application declaratively, without code and complex deployment.
Liberated from writing commoditized code and worrying about infrastructure, mobile developers can focus on high value, branded and custom experiences for the use cases that require it.
In this article, we explore the mobile services, development tools, and deployment options that allow Salesforce to deliver state-of-the-art mobile applications faster than any other platform.
The Right Tool for the Right App
If the only development tool you have is a hammer, you’ll treat all mobile applications as a nail. But all mobile apps are different and have different requirements.
For example, “Customer Engagement Apps” require a highly branded and custom User Experience. Your app becomes your brand: a great app makes your company feel great, and a cumbersome or antiquated app can make your company seem exactly that. To deliver a modern, intuitive, and branded experience, you typically use a custom development approach that gives you control over every pixel on the screen.
Employee “Productivity Apps” allow employees to run their business from their phone. A clean, modern and efficient UX is still very important, but the focus is primarily on productivity: shortcuts, quick actions, compact layouts, and other power-user features are important to get things done fast.
There are other categories, each with its own set of requirements, and the lines between categories are often blurred. But the point is that if you only have metadata-driven development in your toolbox, you’ll develop applications fast, but you may fail to meet the user experience requirements of Customer Engagement apps. If you only have a code-driven development strategy, attempting to custom build everything is likely to become a bottleneck and create a mobile application backlog.
Salesforce provides a unique combination of metadata and code-driven tools and lets you use the right tool for the right task. The Salesforce Mobile App adds drag-and-drop component-based development to your toolbox, while the Salesforce Mobile SDK and Heroku allow developers to build fully custom apps with any language or framework.
Salesforce Mobile App
The Salesforce mobile app is a container for mobile applications. available on the Apple and Android app stores. It allows you to access your CRM apps, custom apps, and business processes through an integrated and modern mobile experience. You can customize existing apps or create new ones, and instantly deploy them within the Salesforce Mobile App container: No complicated or time-consuming app store deployment required.
Watch the video below to see the Salesforce Mobile App in action in the context of DreamHouse, a sample real estate app built on Salesforce. Brokers use the Salesforce Mobile App to manage their properties and customers, upload pictures, and even unlock doors! Most of the application is built without code.
Salesforce Mobile SDK
The Salesforce Mobile SDK allows you to build entirely custom mobile applications on Salesforce. It is available for the following mobile development environments:
- Native iOS
- Native Android
- Native Windows Phone
- Hybrid (Cordova-based)
- React Native
Watch the video below to see how the Mobile SDK was used to build the Customer Engagement side of the DreamHouse application.
Mobile applications have specific requirements like identity management, social integration, offline synchronization, and push notification. A careful implementation of these services often makes the difference between an engaging, immersive, and viral application, and an application that is underutilized or never used. Salesforce provides a trusted implementation of these mobile services so that you can focus on your application and not on infrastructure.
Salesforce provides built-in identity management features including user identity, two-factor authentication, social logins, etc.
Social integration is a key component of modern mobile applications. With built-in features like social logins and the Chatter feed, Salesforce makes it easy to build social engagement into your mobile apps.
A local data store is a requirement for many mobile applications, but the security of locally stored data is a concern for many businesses. That’s why the Salesforce Mobile SDK includes SmartStore, a multi-threaded and encrypted offline datastore that allows mobile applications to securely store and access data locally on mobile devices.
An encrypted local data store is only half of the solution. The Salesforce Mobile SDK also includes SmartSync, a data synchronization library that works together with SmartStore to provide a complete offline synchronization solution.
Modern mobile applications don’t wait for the user to start the app and interact with the user interface: they are always on, initiate interactions, and proactively engage users (share, challenge, motivate) using push notifications. Salesforce provides built-in support for push notifications on iOS (APNS) and Android (GCM).
Application Services at Scale
In addition to specific mobile requirements, mobile apps are also just apps. They share most of the requirements of traditional apps: data security, roles, and permissions, validation rules, analytics, reports, dashboard, process automation, etc. Because the Salesforce Mobile App and Mobile SDK are built on top of Salesforce, they feature a trusted implementation of these application services, configurable in a metadata-driven point-and-click environment.
With the Salesforce mobile development, you can also leverage the full Salesforce toolchain. For example, you can use Process Builder to automate business processes and use App Builder for drag-and-drop component-based mobile development when customizing the Salesforce Mobile App. Watch the video below to see how Process Builder is used to automate Push Notification in the DreamHouse customer engagement app:
Salesforce allows you to deploy everything from web apps and mobile web apps to REST services and microservices. Whether you get hundreds or millions of hits per day, Salesforce provides the deployment options that fit your needs and allow you to scale precisely to meet demand.
Depending on scalability and language requirements, one application could connect directly to the Salesforce servers, while another could leverage Heroku to host code in any language and scale without limits. In the latter deployment option, Heroku Connect can be used to replicate the Salesforce data and make it available at web scale.
One of the characteristics of Enterprise systems is that they are heterogenous: made of different pieces accumulated over the years for a variety of reasons. Even more than traditional applications, mobile applications need to hide the complexity of heterogeneous data sources and present a clean, simple, and integrated view of the data to the user. Salesforce once again provides a unique combination of declarative and code-based data integration options giving you productivity for most use cases, and full control when required.
Salesforce Connect provides a series of point-and-click, metadata-driven data integration features (External Data Sources, External Objects, Data Connectors, etc) that make it easy to integrate data from Oracle, Microsoft, IBM, SAP or any other on-premise or cloud-based system.
If your requirements call for custom data integration scenarios, Salesforce has you covered with dozens of APIs that allow you to integrate anything: REST, SOAP, Streaming, and IoT.
To learn more about Salesforce mobile development options, check out our Mobile Dev Center.