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?

First of all, you can use your existing Web-development skills to build great looking, enterprise grade apps. All you need is JavaScript, HTML5 and CSS3 skills. So no need to make new investments in both time and money learning Android SDK or Objective-C. Secondly, if you have already invested in technologies like Visualforce, Apex etc, you can continue to use them and still build mobile apps!

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!

Salesforce Developer Salary Survey

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.

Job Trends for Salesforce Developers

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:

  1. Force.com, Heroku1 and ExactTarget Fuel platforms with new APIs and more mobile support and
  2. A front-end hybrid mobile app.

Components of Salesforce1 Platform
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.

Salesforce1 Platform Overview

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!
Dashboard Salesforce1 Mobile App

2. The Power of “Hybrid”

When I say “hybrid” mobile app, I mean that is a mobile app written in HTML5, JavaScript and CSS3, but runs in a native (iOS or Android) shell. Since Salesforce1 provides a hybrid container, people with knowledge of HTML5, JS and CSS3 can easily extend and enhance the app without having to learn technologies like Android SDK or Objective-C. Secondly, since it is hybrid, all your changes are instantly deployed / reflected inside the app without having to go through app-store processes and patch your app every time.
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!

Say your app has ten different pages / views. Your client has asked to build couple of custom views. You can use sforce.one JavaScript object to easily navigate from custom-to-native views and back! This means you can save most of your work! — again thanks to Salesforce1.
Check out Sforce.one JavaScript code here.

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.
3rd party apps in Salesforce1 Mobile Container
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?
Salesforce1 Mobile App Container

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.

The Choice

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!

tagged , , , , , , , , , Bookmark the permalink. Trackbacks are closed, but you can post a comment.
  • Peter Knolle

    Thank you for the very comprehensive and well-written article.

    I don’t fully understand why the title is directed at India developers. Is there some reason this article is specifically more helpful or targeted to developers in India as opposed to just novice/new mobile developers interested in mobile development on the platform?

    • Gaurav Kheterpal

      NOT speaking for anyone else but there are a few references which may explain why this is directed to a certain geography – “I’ve been traveling and meeting Salesforce developers across India over the past month”

      Also, the statistics cited are with reference to India. The author (Raja Rao) was a speaker at a Salesforce New Delhi DUG event last month – http://www.meetup.com/New-Delhi-Salesforce-Platform-Developer-User-Group/events/149480462/#! (Disclaimer – I was a speaker there too) and I believe he then went on speak at a few other meetups in Bangalore and other places as well primarily educating developers on the various aspects of Salesforce1.

      And since I was at the meetup, there were plenty of questions related to ‘How do I start on Salesforce1′, ‘I know Apex & Visualforce but I don’t really know much about mobile, what should I do next’, ‘What kind of job prospects does it open up (touchy subject)’ etc. So I believe the post is directed to answer some of those queries.

      At the same time, I believe your observation is quiet valid – the observations (sans the statistics) would be somewhat valid for other geographies as well.

  • http://www.facebook.com/pandeyharshit Harshit Pandey

    Beautiful, quite convincing, hope many of developers out here, open up their eyes and find real Nirvana

  • http://www.bobbuzzard.org/ Bob Buzzard

    Are there any plans to provide developers with access to hybrid functionality via Salesforce1? I’m thinking of access to offline storage, device contacts, camera for scanning etc via JavaScript for example.

    • Gaurav Kheterpal

      +1 on the offline storage part. For others (device contacts, camera), I’ve actually been writing up a small open source toolkit which I am hoping I can share for the benefit of the community in general.

      At the same time, it would definitely be better if Salesforce could go ahead and publish a reference Salesforce1 mobile pack demonstrating these key use cases.

      • http://www.bobbuzzard.org/ Bob Buzzard

        Yeah, I’ve been toying with building some of my own stuff too, but that leads to a proliferation of toolkits where you end up needing a combination to do anything useful. It would be preferable for Salesforce to expose and support this as we then wouldn’t have to worry about new versions of the underlying tech.

  • Jitender Kumar

    Thanks for this enlightening article,
    I am preparing for salesforce certification therefore the ques I am about to ask may seem weird..
    Is it possible to create apps on salesforce and migrate to some other platforms or out of salesforce cloud to private clouds… in context if organizations need to build such..?
    Another, does learning this technology(Apex, Visualforce, Certification) has broader aspects in cloud field and not limited to only salesforce. ?