I’ve been traveling and meeting Salesforce developers across India over the past month. One thing that stood out was how technically adept and savvy these developers are when it comes to developing web-apps and extending Salesforce using Visualforce and Apex, and also how good they were administering Force.com Platform itself. However, I also noticed that most of these developers are still very new to mobile app development.
After talking to them, I realized that many haven’t had the opportunity to work on mobile apps because from what I heard, much of the work undertaken by the devs, and SIs in general is around web-app development and maintenance vs. mobile development. As we know, that’s changing quickly as mobile is becoming more important and clients are forced to provide a mobile solution.
In my conversations, some developers who were totally new to Salesforce1 Platform commented that becoming a mobile developer is fine, but why? what are the advantages and incentive for developing on Salesforce1 though?
Lastly, consider the following survey of job salaries for developers. In addition to Salesforce being a great platform to build on, it is growing so quickly, that people are willing to pay much higher salaries!
Here’s another data point. According to SimplyHired’s search for Job Trends, Salesforce jobs have Salesforce jobs have actually increased by 18%. So being a part of the Salesforce eco-system has its advantages.
Note: These are U.S. jobs stats data but according to our Indian colleagues, it correlates more or less directly to job market in India as well.
Further, there were other more detailed questions around our new platform, Salesforce1, that boiled down to whether Salesforce1 could actually help them become mobile developers?
So I decided to write this blog to help people understand the problem Salesforce1 is trying to solve and help budding developers along the way.
The Front-end Problem
It doesn’t matter which country you are in, developing a mobile app (front-end) can be very time consuming and expensive. This is especially true if one wants to roll out apps for both iOS and Android devices and also roll out for tablets like iPads, Google Nexus etc. This is what I call “The front-end problem”.
Salesforce1: More Than Meets the Eye
While Force.com, Heroku etc. make for excellent platforms for building backend-side of mobile or web apps, they weren’t necessarily solving the challenge of building mobile front-ends aka “the front-end problem”. And that’s really where Salesforce1 comes in.
At a high-level Salesforce1 encompasses two components:
- Force.com, Heroku1 and ExactTarget Fuel platforms with new APIs and more mobile support and
- A front-end hybrid mobile app.
This hybrid app essentially provides a mobile front-end to the enhanced Force.com platform for every Salesforce Org. When a user logs into to the app by entering his or her org information, a mobile version of Salesforce is auto-generated and displayed to the user. That is, Salesforce features like Chatter, or standard objects like Opportunities, Leads, etc. are all automatically displayed in a mobile friendly manner.
Further, the app’s look-and-feel are completely customizable and brandable to the extent that one can’t even tell that it is built on Salesforce1!
But if you dig a little deeper, Salesforce1 more than meets the eye. Along with Force.com, and Salesforce1 Hybrid App, Salesforce1 actually built on top of several “core services” to support cloud, social and mobile aspects; and several distinct “platform services” like Force.com, Heroku1 and ExactTarget Fuel. And further exposes these services as APIs so people can build either Salesforce1 or Custom Apps with ease.
Let’s Take A Look At How Salesforce1 Helps in Mobile Development.
1. Look Ma, No Code!
Similar to how earlier Force.com used to create a “web” UI for all default and custom objects, Salesforce1 auto-generates a “sleek mobile UI” for all objects including custom objects!
By default you’ll get three views: list-view, detail view and edit view for each object. If you have Chatter enabled, you will also see Chatter related views for each object. In other words, you as a developer don’t have to build mobile UIs, even for your custom objects!
2. The Power of “Hybrid”
Note: While Hybrid has its advantages, you can’t build apps that are graphic intensive like Angry Birds. But for most enterprise CRUD apps, it works as good as native apps.
3. Uber Custom Salesforce1
Great you get auto-generated mobile UI and it is a hybrid app but what if your client asked you to build an uber custom landing-page? Thanks to Salesforce1, you can now use Visualforce or Canvas etc. technologies to build whatever you want and make them show up inside the app!
Note that when you build your own UI, you need to ensure it looks pretty in all mobile form factors and the look and feel matches rest of Salesforce1. Take a look at Salesforce1’s style guide to learn more.
4. Save 50%-90% by Customizing Only What You Need!
5. Third-party Apps in Your App!
Using Force.com’s Canvas (not HTML5 canvas), you can easily embed, interact (2-way), single sign-on, with 3rd party apps like Box.net, Docusign etc. And since 1000s of 3rd party apps are making their apps “Salesforce1 ready”, you can easily integrate with them without lifting a finger.
In the above picture, “Shipify” is a 3rd party app that’s integrated directly into Salesforce1.
6. “Social Networking of Things”
Forget about social networking of people. In Salesforce1 anything and everything is capable of social networking!
A user of your app can follow, like, add comment to any “thing” (opportunities, invoices, documents, etc.), similar to how they interact real people on Twitter or Facebook! This is like Internet of Things but in a social-networking context!
So if you are thinking about bringing a social-networking aspect into your app, Salesforce1 has it covered. In fact, everything in Salesforce1 revolves around social-networking and collaboration! Just think how much code and effort you will save not having to build social-networking features on your own?
7. Extend Salesforce1 Backend with Apex
It’s not just the front-end and configuration, but if your app needs server-side features, customizations you are welcome to do so using Salesforce Apex. For those who don’t know, it similar to Java but provides lot more support for server-side development.
8. Enterprise-grade Security
Typically most mobile developers have to worry about implementing things like 2-factor authentication, mobile PIN security, OAuth etc. But since the entire app is running inside Salesforce’s environment, you’ll get all these things out of the box.
I think you’d agree that a serious, enterprise-grade, production-ready mobile app that 1000s or millions of people actually end up using needs most or all those features or capabilities whether you build it on Salesforce1 or not. And Salesforce1 comes with all those things out-of-the-box. So the choice is either to build our app by building all of those features yourself or to build your app on top of Salesforce1.
I think the choice is clear, download the Salesforce1 Platform Developer Guide and start cranking out some cool mobile apps!