Over the holidays, my daughter reminded me that I promised to teach her how to build a mobile app. So I told her to grab her laptop, I’d grab mine, and app building we would go.
First, we had to come up with an idea for what the app should do. Of course, she suggested, “How about a game?” to which I replied, “I don’t build games.” So I suggested a simple app to keep track of something important. She agreed that’d be fine, but again, didn’t have any suggestions. So I proposed that we build a simple mobile app that I could use to keep track of car maintenance records. I’d been doing an awful job of writing things down, and thought this might help me solve a problem too.
Next, I took a couple of minutes to teach her what a schema, objects/tables, and fields were. She uses spreadsheets for schoolwork, so the concepts were easy for her to understand. The schema for the app we built looks like the figure below.
As you can see, we kept it simple. After all, this was her first app–I didn’t want to lose her enthusiasm before we even started.
Disaster … Avoided
Now we were ready to start coding. Wait, she’s never keyed in a line of code, didn’t have an IDE on her laptop, no database–she didn’t have any of the skills or software that she’d need to get started. Her device is Android, mine is iOS. Wow, this quickly became more complicated than I thought it would.
The entire situation would have been an epic failure if I had decided to install all sorts of software and then taken the afternoon to teach her some basic programming skills. She’s fourteen! Instant gratification is almost a requirement. Plus, the entire family wanted to go for a walk soon and enjoy our sunny day.
Fortunately, Salesforce1 was something I know a little bit about. No software to download and install, no servers–and coding is optional! Perfect, just what I needed for her first try at software development.
We jumped over to the Salesforce Developers site and both registered for a new Developer Edition so that we could do a little pair programming in our own environments. Literally a minute later we were both in Setup and launched the App Quick Start.
The App Quick Start is awesome for newbies to Salesforce1 because it creates your initial object with a single custom field along with a corresponding Application and Tab for navigation. It makes getting started so easy. Once we had the bare bones Auto object in place, we point and clicked our way to adding the other fields we needed to keep track of the details on each auto.
The next step was to create a related Record object so that we could associate maintenance records with our different cars. Again, a few mouse clicks later, and the Record object and it’s fields were in place. Then to finish it off, we added a Master-Detail Relationship field in the Record object to finalize our schema.
At that point, I told her we were largely done and could start inputting some test records to make sure things functioned properly. We clicked on the Autos tab and entered information about our cars. Now we saw a problem: How were we going to input car maintenance records for each car? It seemed like we should have a way to manage maintenance records while working with an auto.
To augment our application functionality, all we did was modify the default page layout for Auto and add a related list of car maintenance records. The UI builder automatically gives us buttons and links that let us add, edit, and delete related records right from the Auto page.
“But Wait … It’s Not Mobile Dad!”
To which I replied, “Oh yes it is! That’s one reason why it’s called Salesforce1. Build it once and you have both a web and a mobile app for any device.” After a quick visit to the Google Play store, she had Salesforce1 on her device and logged into her org. Presto, she’d just built her first mobile app in about 25 minutes!
Big smiles. “Cool” was what I remember she said.
A few minutes later we were walking the dogs on the beach enjoying the rest of that sunny day.
Get started building your first mobile app in no time at all with Salesforce1.
About the Author
Steve Bobrowski is an Architect Evangelist within the Technical Enablement team of the salesforce.com Customer-Centric Engineering group. The team’s mission is to help customers understand how to implement technically sound Salesforce solutions. Check out all of the resources that this team maintains on the Architect Core Resources page of Developer Force.