Salesforce Mobile Architecture: Exam Afterthoughts & Tips by Amnon Kruvi

Amnon Kruvi, Salesforce Solutions Architect
1218 Global – EMEA
Amnon.Kruvi@1218global.com

I took a leap of faith and dove into the world of mobile applications on the Salesforce platform. After passing the Salesforce Certified Mobile Solutions Architecture Designer exam, I wanted to share some thoughts (and tips).

The Invisible Certification

The Salesforce Certified Mobile Solutions Architecture exam has been around for some time now, yet according to ArtisanHub‘s ranking list it is one of the rarest certifications for anyone to hold in the ecosystem. This also means that learning materials, other than those posted on the official study guide or Trailhead, are difficult to come by. There are no practice questions, and so few articles around what peripheral knowledge would help with the exam, that I really felt as if I’ve gone into this exam blindfolded.

After having taken the exam, I can confidently say that most of the material is covered by the resources on Trailhead. Most, but not all.

Exam Outline

It is rare to find a Salesforce certification exam with such a narrow breadth of topics. In fact, the official study guide lists only 2 categories – with one weighing 85% of the total score. I won’t bore you with the list – if you are reading this, then you have probably already read through it several times. But when you take an exam for so few topics to learn, you must use the opportunity to learn them well.

This exam tests areas that sometimes seem unimportant or trivial. I found myself asking “Why does it even matter?” on more than one occasion.

How to Study

What surprised me when studying for the exam is how few Trailhead modules actually exist on this topic and how many “success story” articles took their place. I was baffled, certain that this couldn’t possibly be enough material to pass the exam. This certainly did hold some water in the end.

The available Trailhead modules focus on actually building a sample app. Those topics were left untouched by the exam itself. Yes, doing the modules taught me what the apps can do, but I had already learned these things by reading the Mobile SDK documentation. It only takes a few hours to read through the relevant topics, and you can ignore the actual coding-specific sections. Don’t skip the configuration sections, though.

Another useful resource was Ladies Be Architects, who recently hosted a session by Charly Prinsloo on this topic and put the recording up on their website. I’m a firm believer that one should learn with both their eyes and ears, so giving this video a listen is recommended.

Important Topics:

Native, Hybrid, HTML5, or Salesforce?

A good portion of the exam focuses on identifying the type of application to use for given scenarios. Your options will usually consist of building a Native, Hybrid, or HTML5 app — or maybe using the native Salesforce app. To answer these questions, here are some pointers:

  • Native apps have the best performance, access to all sensors, and access to the full capabilities of the Mobile SDK (including SmartStore and SmartSync). However, you will need to maintain two codebases – one for iOS and one for Android – which are written in different languages. This requires more time, more developers, and more skills.
  • HTML5 apps are websites that run on a browser. They are very easy to develop with HTML and Javascript — or even Visualforce. However, this also means they only have access to functionality a normal website would. They can’t use device features (like your camera) or the Mobile SDK, meaning no SmartStore, SmartSync, and no OAuth authentication (especially refresh tokens). You also can’t make these available on the relevant app stores.
  • Hybrid apps are a middle ground. They are still websites written in HTML5 and Javascript, but they run in a special application framework called Cordova. Think of it like a super-browser that, with the help of plugins, can grant the mobile app access to device sensors, the Mobile SDK (including SmartStore and SmartSync), and storage. You only need to maintain one codebase, and the skills to build this app are common – but performance is greatly degraded compared to native apps.
  • The Salesforce app is the regular app that’s available to mobile phones today. You may know it as Salesforce1, but someone decided they needed to confuse us. It is important that you understand the capabilities of this app inside and out. I’d recommend playing with the app on your phone, in both online and offline modes.

Visualforce

Visualforce can be used to create HTML5 applications, as well as extend the functionality of the Salesforce app via Mobile Cards. However, it is important to know how to write Visualforce pages for mobile:

  • Avoid using any UI <apex:> tags, such as <apex:pageBlock>. Instead, write your own HTML with responsive styling using CSS.
  • Avoid using <apex:commandButton> and <apex:actionFunction> to communicate with the server, as these have to send the whole state back and forth – causing sluggish performance (especially on mobile connections). Instead, use Javascript Remoting and Remote Objects.
  • Lazy-loading using Javascript Remoting, Remote Objects, and <apex:actionFunction> can improve the user experience when larger data volumes are concerned.

OAuth Flows

In a section borrowed from the Identity and Access Designer exam, you will need to understand how mobile applications authenticate themselves against your Salesforce server. You will need to understand how the Username-Password, Web Server, User Agent, and Refresh Token OAuth flows work (details here).

OAuth flows are only available to Native and Hybrid apps (through the Mobile SDK), and the Salesforce app. This means they can access your data using tokens instead of sending the username and password, which is more secure. HTML5 apps require the user to log in with their credentials whenever their session expires.

Push Notifications

How do push notifications work in general, and how do you make them work on Salesforce?

The process starts when your app registers your device to receive notifications. The Mobile SDK handles that for you with barely any code. The notifications will usually be generated by an event on your Salesforce server and sent to either Apple or Google. They, in turn, will forward the message to your device (because you registered to receive them). The device has to parse the message and execute the appropriate logic.

For this whole process to work, you will need to create connected apps on Salesforce (one for iOS and one for Android, as they have two separate push services).

SmartStore

SmartStore is the Mobile SDK mechanism to keep application data cached locally so that the app can access it while offline. It works by saving JSON-encoded objects (like records) inside the SQLite database that exists on your phone. Stores are split into Soups – a store is a database, whereas a soup is a single table for one particular type of data.

SmartStore can save data on a user level, and on a global level. User-level data disappears if the user ever logs out of the app, and is essentially considered “volatile” storage (meaning it could disappear at any time). Global stores cache on an app level, regardless of the user, and are used to cache information that is shared across all users.

I found that, despite the myriad of technical information that is presented for study, it was enough to know what SmartStore is – and not necessarily how it works. Don’t worry if you can’t remember the exact code or the weird query format used with SmartStore.

SmartSync

SmartSync is another feature of the Mobile SDK that allows for offline working. Think of it as a data service (like LDS) that you use to read and update records with – except that it can handle the event of being offline seamlessly, and upload the data at a later time once a connection has been established.

As with SmartStore, I found that you only need to understand what SmartSync does, and not how to actually use it.

Salesforce Wear Developer Pack

While it didn’t play a major role in the exam, there were definitely a few questions I could not have answered without having read about the Salesforce Wear Developer Pack. Remember what applications are available for developers to build on, and you should be able to pass these questions fairly easily.

Afterthoughts

With its narrow breadth of topics, the Salesforce Certified Mobile Solutions Architecture exam is definitely not the scariest one on the path to CTA. Some topics are clearly held back to allow architects with no development background to succeed, which is a great thing as architects don’t have to be developers.

About Amnon Kruvi

Salesforce Architect and Development leader with a background in startup companies and consultancy specializing in Force.com, CRM, and an assortment of web and mobile technologies.

Amnon has excelled as the technical lead to execute and manage projects from the very beginning stages to public release, and on to large international contracts. His technical expertise allows Amnon to analyze customer requirements, design a solution, and follow it to completion – either in a managing or development capacity.