Decisions decisions...

When I want an offline mobile application for Salesforce Should I use the Salesforce 1 Mobile app or the Salesforce Mobile SDK? Do I need Hybrid or Native? Which Salesforce Mobile Pack do I use? Can I encrypt device data? How much will our development cost? What development skills will I need?

Before MobileCaddy came along, our team had often faced these questions as well as the choices of which of these rich, powerful and awesome technologies we should use. We faced them one more time - when we created MobileCaddy. This is how it all began.

MobileCaddy Requirements

Mobile apps must work seamlessly and securely offline by default with Salesforce data sync being a simple function call. They must run on iOS, Android, Blackberry (and others) and have a fully customisable UI. Javascript devs will write new apps quickly using our tools/emulators without the need to learn new frameworks, Apex or Visualforce.

  • Offline Data
  • Offline Functionality
  • Speed of Development
  • Multiple Devices
  • Fully Customisable UI
  • Easy to Deploy
?

SF1 App Vs Salesforce Mobile SDK

The most obvious technologies to use are either Salesforce 1 Mobile Application or Salesforce Mobile SDK. Let’s gauge our requirements against them.

Requirement Salesforce 1 Mobile App Salesforce Mobile SDK
Offline Data Some Yes
Offline Functionality No Yes
Multiple Devices Yes Yes
Speed of Development Yes No
Fully Customisable UI No Yes
Easy to Deploy Yes No

Conclusion

Mobile apps go offline - often due to a poor signal. Our apps must be available 24/7 in any location, be responsive and allow the developer to store their choice of platform data locally. We cannot develop the Salesforce 1 Mobile App and so we are pushed towards the Salesforce Mobile SDK which will allow us to develop around its gaps - ie development speed and ease of deployment.

"So we made our first decision....custom and offline won the day

?

Native Vs Hybrid

When developing with the Salesforce Mobile SDK you immediately are faced with a big decision point. We have application development options - Native, HTML5 or Hybrid. HTML5 apps do not offer secure offline storage so are not considered.

Requirement Native Hybrid
Gestures Swipe, Pinch, Spread Yes Yes
Fast Graphics API Yes No
Camera Access Yes Yes
Geolocation Yes Yes
Appstore Distribution Yes Yes
Secure Offline Storage Yes Yes
Native Look and Feel Yes Some
Cross Platform No Yes

Conclusion

Native apps offer the user that familiar look and feel with very responsive graphics - ideal for graphics intensive apps and games. However a Hybrid app only needs to be written once (with web development skills) and deployed to multiple platforms. A native app must be written once for each mobile platform (Objective C/Swift for iOS, Java for Android etc). The MobileCaddy choice here is for Hybrid apps - write once and deploy on multiple platforms.

"Tough call but we believe in HTML5 and love the idea of a single code base

?

Could we do better?

The MobileCaddy team developed very successful mobile applications for several customers once the decision to use Hybrid and Salesforce Mobile SDK had been made. Our choices above seemed sound! But we always want to do better! So one day we thrashed out a future project wish list - how could we improve?!

Requirement Existing MobileCaddy Wishlist
Skills
  • HTML5, JS, CSS
  • Apache Cordova
  • Smartstore
  • Visualforce Remoting / REST
  • Visualforce
  • Apex
  • Platform Administration
  • SmartSync, Underscore, Backbone
  • HTML5, JS, CSS
  • Platform Administration
Initial Costs
  • Develop App Logic
  • Develop Mobile Database
  • Develop Database Sync Code
  • Develop to Operate Offline
  • Mobile App Store Submission and Review
  • Develop App Logic
  • Mobilise Data with Platform App
Ongoing Costs
  • Changes to App Logic
  • Change Mobile Database
  • Change Database Sync Code
  • Resubmission to Mobile App Store and Review
  • Manage Multiple Versions of Code
  • Changes to App Logic
  • Re-run Mobilisation Wizard
  • Point and click to setup another version
Dev. Time Variable depending on number of objects. Days to weeks in our experience. Have working prototypes available in under a day

From this wish list we dived in and created MobileCaddy!

And now we can get an app up and running ready to configure in 45 minutes - see for yourself or check out the full feature list that will get you building robust offline apps with the ease of normal platform development.