Salesforce Mobile
Jacksonville Salesforce Developer User Group
December 2018
Relaunching JaxMUG
- Looking for monthly meetings
- Anything iOS, Android
- Native Development
- Cordova/Hybrid
- React Native
- Flutter
- Xamarin/Visual Studio
Why Mobile?
- Billions of devices Worldwide
- More people access internet over phones than desktops
- Salesforce users are mobile
- Field sales common use case
Mobile options
- Salesforce App
- Branded Apps
- Native
- Hybrid
- React Native
Salesforce App
- Salesforce Mobile client
- Hybrid remote
- More native features
- Einstein and Siri
- use lightning components
- poor offline experience
Native Apps
- SalesforceMobileSDK Android and iOS
- SwiftySalesforce
- OAuth Login
- APIs for querying sObjects
- Build Native Views
- Store on Device and on Salesforce
- Written in Objective-C, Swift and Java
- SalesforceMobileSDK @ version 7.0 beta
Hybrid Apps
- Build Apps with HTML and JavaScript
- OAuth
- Hybrid Local
- Hybrid Remote
- Can store on Device and in Salesforce
- Cordova WebView part of Hybrid API
Hybrid Local
- Initial content and code stored on the Device
- Apps are like SPA (Single Page Applications)
- This approach allows syncing between device and Salesforce cloud
Hybrid Remote
- Content is stored on Salesforce
- Build your app using Lightning Pages and Components or Visual Force Pages
- Does not provide a syncing solution
React Native
- React Native Framework from Facebook
- These are actual Native applications
- Can build with JavaScript framework
- React Components built with SF Components
Frameworks
- SalesforceSDKCore
- SalesforceAnalytics
- SalesforceHybridSDK
- SalesforceReact
- SmartStore
- SmartSync
Scaffolding Tools
- sfdx
- forceios create
- forceandroid create
- Install using NPM or Yarn
- npm install -g forceios
- cocoapods 1.4
- Node.js -v 8.11.0
- sfdx plugins
forceios create
--apptype=<Application Type> (native, native_swift, react_native, hybrid_local, hybrid_remote)
--appname=<Application Name>
--packagename=<App Package Identifier> (com.mycompany.myapp)
--organization=<Organization Name> (Your company\'s/organization\'s name)
--startpage=<App Start Page> (The start page of your remote app. Only required for hybrid_remote)
[--outputdir=<Output directory> (Leave empty for current directory)]
sfdx to create mobile
sfdx plugins:install sfdx-mobilesdk-plugin
sfdx mobilesdk:ios:create -n sfdxtest -t native_swift /
-o com.fekke.sfdx -d sfdxtest -k com.fekke.sfdx.sfdxtest
Notifications
- Remote Notifications can be sent from APEX code
- Salesforce has tie ins to APNS and GMS
- APNS requires certificate to be updated annually
- Can test using Salesforce Admin
- Apps can respond to remote notifications
SmartSync
- Uses SmartStore to store data on device
- Framework can detect when a record is out of sync
- Will work with Native and hybrid_local
- Uses SQLite as on device storage w/ 256 encryption
- Records stored as SOUPs
- Great approach is users have bad internet conn.
Apple Partnership
- Dreamforce Announcements
- 70% Salesforce users have iOS device
- Stronger integration Apple Tech
- Better Swift language support
- More Native UI features in App and Framework
- New Trailhead around Apple tools
Demo
Questions?
Resources
- www.npmjs.com/package/forceios
- www.npmjs.com/package/forcedroid
- developer.salesforce.com/devcenter/mobile
- github.com/forcedotcom/SalesforceMobileSDK-iOS
- github.com/forcedotcom/SalesforceMobileSDK-android
- github.com/davidfekke/jaxsfdev.git
Mobile for Salesforce
By David Fekke
Mobile for Salesforce
This presentation covers how to build mobile apps using the Salesforce Mobile SDK
- 1,027