Identify Tools to Build Your App
Learning Objectives
After completing this unit, you’ll be able to:
- Describe the tools available for creating an app in a Salesforce org.
- List the technologies that Salesforce provides for integrating with other systems.
- Describe ways in which Chatter fosters collaboration.
- Identify an appropriate use case for Salesforce Communities.
- Describe the technologies Salesforce provides for making your app mobile-ready.
Salesforce Technologies
In this unit, we give you a brief rundown of the tools and technologies available for building your app. We also highlight technologies for engaging a broader customer base and enhancing your design. We hope you find a solution to a problem you thought you couldn’t solve and build the app you’ve always dreamed of!
If you’ve used Salesforce, some of what we present might be familiar. But who knows? You could learn one new thing that provides that extra edge to make your app shine in the marketplace.
Platform Basics
The Lightning Platform, which underlies any app that you build, has a rich feature set for configuring, creating, and customizing apps. For example, you can easily:
- Store, manipulate, and secure data
- Automate business processes
- Manage users and their access to the app
- Create the user interface
Salesforce provides point-and-click tools for configuration and customization. Declarative tools, as we call them, are incredibly powerful. They are designed to get your app up and running as quickly as possible.
Let’s say you need to store venue information for an event management app. In just a few minutes, you can create the object to hold that data and set security on that object. Salesforce also automatically provides UI pages for end users to view, create, edit, and delete data that is stored in that object.
However, some customizations are too complex or specialized to implement in the declarative interface alone. So Salesforce also provides programmatic tools for app development. These tools include:
- Apex, Salesforce’s cloud-based programming language, which is syntactically similar to Java or C#. Apex works with the objects and user actions that are the backbone of apps.
- Lightning Components, a JavaScript framework for building reusable components. These components can render UI, handle client-side events, and communicate with the Salesforce server. You can use these components to build and enhance apps. And if they’re too amazing to keep to yourself, you can sell them on the AppExchange!
- Visualforce, a tag-based markup language similar to HTML, for building UI pages and components. Like Apex, it works with objects and user actions. It also works with third-party libraries like jQuery and AngularJS.
Here’s our recommendation on when to use declarative and programmatic tools.
What We Recommend |
Why? |
---|---|
Try declarative first |
|
Using programmatic with declarative |
|
Go fully programmatic |
Sometimes you need to do what you need to do. |
To learn more, start with this trailmix for declarative, and the Developer Beginner trail for programmatic.
As a partner, you can also sign up for Partner Online Training to access our eLearning catalog.
- Log in to the Partner Community.
- Click https://partners.salesforce.com/partnerTraining.
- Register for a partner training account.
Choose what works for you, and learn away!
Connect Salesforce to External Systems
Many Salesforce customers and AppExchange partners integrate their orgs with external systems. Salesforce has many options for building integrations. We briefly touch on just a few here. When determining the best integration option for your app, check out Integration Patterns overview on developer.salesforce.com and post questions to our experts and your peers in the Salesforce Partner Community.
The APIs
At Salesforce, we have always followed an API-first approach. Data and metadata—the data we store about configurations—is available through an API. For example, when you create a data object, the metadata describing that object is immediately available using the REST and SOAP APIs. And when users create data using that object, that data is also immediately available using APIs. We have general-purpose APIs and special-purpose APIs, and we provide the option of building custom APIs.
Using the general-purpose SOAP API or REST API, code can pull and push data to and from database records and introspect on the structure of that data. Let’s say you’ve developed your forecasting algorithm for the deal progress forecaster in a Java app. You want to feed data from a customer’s org into your program and then return the results. You can solve this problem with the SOAP API or REST API.
You can also enable methods written in Apex as SOAP or REST services with a simple annotation.
To pick the right APIs for your app, check this list.
Other Mechanisms for Integration
But wait! Salesforce has integration tools beyond the APIs. We highlight a few here.
Outbound Messaging sends notifications to an external app when data is modified in your customer’s org. Outbound Messages are configured declaratively using flows. Flow rules watch for specified field changes and trigger automatic actions, such as creating task records or sending an outbound message to an external system.
Apex Callouts call external SOAP or RESTful services right from your Apex code.
Platform Events provides a framework to monitor your systems and communicate changes to other systems.
Salesforce Connect, a tool using the OData protocol, exposes external data objects inside Salesforce. Users interact with external data as they would with data stored inside platform objects. Salesforce Connect is available at an extra cost.
Heroku Connect syncs data back and forth between Salesforce and an external app running on Heroku with a Postgres database. Heroku Connect is available at an extra cost.
Canvas is a great way to build a composite app. For example, you can embed an order page from an external system and have it share data with Salesforce.
Collaboration with Chatter
Chatter enables users to collaborate and communicate as individuals, around common themes, and—get this—around data!
Chatter addresses inefficiencies in how people have traditionally engaged in business discussions. Let’s say you’re a member of a sales team. You engage some company experts to correct data on a key prospect’s opportunity record. You send an email with a hyperlink to the record to start a discussion. Danger sign! Soon you have a long thread, which then splits into three threads. This conversation is happening in the wrong place.
Or maybe you send team members manual updates about a key project’s status, because they can’t be checking the record every 15 minutes.
Chatter solves these problems. Like other social collaboration tools, Chatter has user profiles, feeds, and groups, both private and public. When an object has feed tracking enabled, records based on that object have a Chatter feed. When a field changes on the record, a post appears in its Chatter feed. If users follow a record, they are sent posts.
We’ve just touched on some of Chatter’s capabilities. Chatter helps your app become more mission critical. Your customers’ orgs automatically have Chatter, so use it to help sell your app!
Salesforce Experience Cloud
Experience Cloud is a great way for customers to share information and collaborate with their customers and partners. Communities support both secure information, which requires a login, and public information that anyone can see.
Here are some perfect opportunities to use Experience Cloud.
- A subcontractor compliance management app tracks that subcontractors have passed all compliance requirements for projects. Employees indicate the compliance requirements that a subcontractor must meet. The subcontractor is responsible for providing documentation of compliance. Employees then review the requirements to allow subcontractors to complete the work.
- A product information app, used by companies that sell directly to consumers, provides product information with ratings and customer feedback. It makes product recommendations based on what customers have purchased. It provides a public forum where consumers can provide feedback, suggest product enhancements, and even answer each others’ questions.
For you, the AppExchange partner, including Experience Cloud use case functionality in your solution expands your user base, which translates into more licenses and more revenue for you. The table compares two Experience Cloud license types: Customer Community and Customer Community Plus.
Customer Community |
Customer Community Plus |
|
---|---|---|
Maximum number of users |
10 million |
2 million |
Audience |
Customers |
Partners or other businesses |
Common uses |
|
Business-to-business processes, such as reselling |
Highlights |
|
|
Companies also use mixed-use communities. For example, a company that sells printers could have a community that serves customers looking for support and partners who service the printers.
When building an ISVforce app, you can provide your customers with an app that enhances their existing communities or that provides a new community. However, customers must purchase the Experience Cloud user licenses from Salesforce.
To see an Experience Cloud site or Chatter in action, look at the Salesforce Partner Community!
Make It Mobile!
Doing business from a mobile device can be the edge that closes a deal. Field technicians with an app on a tablet device can quickly find information and file reports. And having your app accessible on a mobile device is often a necessity. Salesforce makes it easy to create a mobile-ready app. It also provides options for creating your own Salesforce-connected mobile app.
Salesforce Mobile App
The Salesforce mobile app is ready-made for iOS and Android. Standard pages work on the Salesforce app. Custom Visualforce UI requires tweaks to make pages responsive. However, for the best user experiences on mobile devices, use Salesforce’s declarative tools to optimize mobile navigation, compact layouts, and actions for mobile users. No mobile app development experience needed! Learn more in the Salesforce Mobile Basics trail.
Learn about support for Salesforce Communities on the Salesforce mobile app here.
Lightning Components
Lightning Components are a great way to enhance or build new mobile apps and support Lightning Experience, too. The component-based approach enables you to assemble mobile apps quickly. And, remember, you can offer components for sale on the AppExchange.
Salesforce Mobile SDK
The Salesforce mobile app works well for almost all cases. However, you might want to use device-native features or provide extensive offline capabilities. The Salesforce Mobile SDK simplifies app development for iOS and Android devices. It makes it easy to work with the Salesforce platform on the back end by handling user authentication, security, and more!
Final Wrap Up
The end is in sight! Let’s review what we’ve covered.
The technologies |
What are they used for? |
Our two cents |
---|---|---|
Declarative tools |
Configuring and building your app |
Use as much as possible! |
Apex, Lightning Components, and Visualforce |
Configuring and building your app |
When declarative is not enough, bring in programmatic. |
The APIs and other integration tools |
Integration between Salesforce and external systems |
Pick the option that most closely fits your needs. |
Chatter |
Collaboration |
It’s a selling point! |
Communities |
Collaboration with customers, partners, and employees |
Easily extend the reach of your app to a larger audience. |
Salesforce mobile app, Lightning Components, Salesforce Mobile SDK |
Making your app mobile ready |
Businesses love mobile. |
All the technologies we’ve covered are out there waiting for you to build an awesome app! Finish the quiz. Get your badge. Off you go!
Resources
- Developer Doc: Integration Patterns Overview
- Developer Doc: Mobile SDK Developer Center
- Trailhead: Develop with Mobile SDK
- Trailhead: Developer Beginner Trail
- Trailhead: Get Started with iOS App Development
- Trailhead: Get Started with Declarative Tools Trailmix