Mobile SDK 4.1 Release Notes

SmartStore Enhancements
QuerySpecs can now be targeted against indexed arrays
Salesforce Labs Update
Support for React Native .20 and updated sample app

Mobile SDK 4.0 Release Notes

Library Modularization Enhancements
Mobile SDK libraries have been refactored to support independent consumption. Native apps no longer require Cordova dependencies. Pick and choose just what you need.
Support for the latest Mobile Operating Systems
The latest release of iOS9 and Android Marshmallow introduced numerous changes to for developer productivity. The 4.0 release fully embraces core new features like bitcode, dynamic CocoaPod framework targets, and the latest target APIs. We’ve also raised the minimum requirements to iOS 8.0 and Android 4.4 (KitKat).
Alignment with the most recent versions of Cordova
Cordova remains the indispensable tool for creating hybrid app. Our unified architecture lets developers consume the same powerful libraries in native or hybrid apps without compromises.
Salesforce Mobile SDK Labs
The new SalesforceReact library provides the ability to use React Native in Salesforce connected apps Mix and match the best aspects of native components driven by JavaScript and some of your most favorite SDK libraries. Refer to the React Native chapter in the Mobile SDK Development Guide for details on how to use this feature.
Other Technical Improvements and required development tools
TLS 1.1 and 1.2 are now the default protocols used for networking on Mobile SDK. See this blog post for important information.

Raised the minimum XCode version required by Mobile SDK to Xcode 7. Android Studio and Gradle are fully supported. Eclipse and ant are no longer supported. Removed the dependency on SalesforceCommonUtils. Mobile SDK for iOS is now fully open source. Improvements to sample apps. Various bug fixes and community pull requests.

Mobile SDK 3.3 Release Notes

SmartStore Library Enhancements
SmartStore now provides the ability to perform full text search (FTS) in smartstore. This includes an enhanced query syntax for faster text searches in large data stores. Refer to the SmartStore chapter in the Mobile SDK Development Guide for details on how to use this feature.
Touch ID support (iOS Only)
It is now possible to use Touch ID along with a numeric PIN on passcode enabled orgs. This provides enhanced security with ease of use.
Other Technical Improvements
  • Upgraded SQLCipher to version 3.3 for better smartstore performance.
  • Removing `httpcore` dependency from Android SDK.
  • Various bug fixes and updates. See the iOS Readme or Android Readme for additional details.


Mobile SDK 3.2 Release Notes

SmartSync Library Enhancements
New controls and merge modes for managing incremental sync and conflict resolution.
Support for custom targets for tailored sync implemetations with Apex REST APIs or 3rd party API services.
SmartStore Library Enhancements
Support for global(app-level) SmartStore instance. This is useful to store app settings that persist even after user logs out.
Network Library (iOS Only)
A faster and simplified network library (SalesforceNetwork) to replace SalesforceNetworkSDK and MKNetworkKit.
Sample App Updates
NoteSync, a new app to access notes offline. It uses SmartSync's custom target feature to download notes content.
Other Technical Improvements
  • Support for API access as unauthenticated user.
  • Various bug fixes. See the Readme for additional details.


Mobile SDK 3.1 Release Notes

SmartSync Library Enhancements
  • The sync down operation now offers multiple modes that let the developer decide whether to overwrite locally modified data.
MDM Features
  • MDM providers can now configure the default login host, remote access consumer key and callback URL at runtime, for applications built on Mobile SDK 3.1.
Note: The above features are supported only in iOS7+ and Android Lollipop (API 21) and above.
Other Technical Improvements
Various bug fixes. See the Readme for additional details.


Mobile SDK 3.0 Release Notes

Brand New SmartSync Library for iOS and Android
Salesforce Mobile SDK now has a new library called SmartSync built natively on iOS and Android. This library provides:
  • Caching layer to cache salesforce records or metadata based on pre-defined cache policies.
  • SmartSync layer to synchronize a set of salesforce records between a local store (SmartStore) and Salesforce servers. This allows you to perform all CRUD operations on the synchronized data while offline.
  • A new Cordova plugin (SmartSyncPlugin) to enable consumption of the SmartSync library in a hybrid app.
  • A new native sample app, SmartSyncExplorer, that demonstrates the power of this library.
CocoaPods for iOS
Added the ability to consume the Salesforce Mobile SDK for iOS through CocoaPods.
Library Upgrades
iOS 7 is now the minimum OS version of iOS supported. Salesforce Mobile SDK for Android now requires Cordova 4.0 CLI for hybrid applications and supports Android 4.2.2 (API 17) or above.
Other Technical Improvements
Various other bug fixes and improvements, including a new master component on iOS, SalesforceSDKManager, to handle all of the details of conditional authentication at startup, passcode validation, etc.

Mobile SDK 2.3 Release Notes

Cordova Plugins for Core Salesforce Specific Features
Salesforce specific functionality for hybrid apps are now available as independent Cordova plugins. Developers can consume Salesforce OAuth2 Identity, SmartStore Secure Offline Database, and Push plugins in the very latest versions of Cordova independent of Mobile SDK releases.
Push Notifications for Hybrid Apps
Hybrid mobile apps can register for push services defined in the Connected App policies and react to incoming notifications using a slightly modified PushPlugin, designed specifically to work with notifications triggered through force.com APIs.
Hybrid 
Locally hosted Cordova JavaScript Plugins for Remote Apps
Cordova Plugin JavaScript files can now be served from the container for apps that have core functionality remotely hosted on Visualforce. This pattern makes it easier to upgrade to later version of the Mobile SDK and independently manage code on the client and server.
SmartStore Enhancements
SmartStore has new APIs to re-index existing soups and gather information about stored data.

Mobile SDK 2.2 Release Notes

Multi User Support
The Salesforce Mobile SDK now supports the ability to log into multiple user accounts simultaneously. Different accounts can be different users on the same org, or different users on different orgs (such as production and sandbox, for instance). After sign-in the user's credentials are saved, so that the user can switch between accounts seamlessly without having to re-authenticate against the server. All of the SmartStore and Push Notification services are separated into user-specific sandboxes.

Mobile SDK 2.1 Release Notes

Push Notifications Pilot
Registration and delivery of push notifications are now supported for Connected Apps where push notification capability is enabled.
File API Support
The SDK now provides convenience methods that build specialized REST requests to download, upload, and share Files from Salesforce. Two new sample apps: FileExplorer and HybridFileExplorer have been added to demonstrate the new functionality.
Networking Library Enhancements
The underlying networking libraries have been replaced with Volley on Android and MKNetworkKit on iOS. Now developers have the ability to configure advanced features, such as managing the network queue and cancelation of requests.
SmartSync for Any REST Endpoint
SmartSync now supports for custom endpoints , such as Apex and other REST APIs using the Force.RemoteObject class.
Android Specific Updates
Upgraded SQLCipher to v2.2.2, in order to support Android 4.3 (Jellybean) and Android 4.4 (Kit Kat).
Added the ability to merge Android Manifest files from the Mobile SDK library projects, using the `manifestmerger` attribute.
Added the ability for an app to supply a custom `PasscodeActivity`, using the `setPasscodeActivity()` method in `SalesforceSDKManager`.
iOS Specific Updates
Handling of OAuth errors is now configurable.
Upgraded the openssl library to v1.0.1e, to fix possible security concerns with older versions of openssl.


Mobile SDK 2.0 Release Notes

Highly Flexible Mobile Architecture
OAuth2 Authentication can now be handled on-demand, enabling mobile apps to start un-authenticated.
Mobile Apps can now authenticate against standard force.com and community licenses.


SmartSync data framework allow developers to work with real objects by encapsulating REST APIs.
Write substantially less code for CRUD operations.
SmartSync can also seamlessly integrate into the SmartStore offline storage database for storing data offline without additional code
Node Packaged Module (NPM) installers. Salesforce provides two packages
forceios for the iOS Mobile SDK, and forcedroid for the Android Mobile SDK. These packages provide a static snapshot of an SDK release.
Create new native and hybrid apps directly from the command line with a simple script.


General SDK
Refresh tokens are now explicitly revoked from the server upon logout.
Added support for community users to login.
Consolidated our Cordova JS plugins and utility code into one file (cordova.force.js).
Updated forcetk.js and renamed to forcetk.mobilesdk.js, to pull in the latest functionality from ForceTK and enhance its ability to work with the Mobile SDK authentication process.
Fixed session state rehydration for Visualforce apps, in the event of session timeouts during JavaScript Remoting calls in Visualforce.
SmartStore now supports ‘Smart SQL’ queries, such as complex aggregate functions, JOINs, and any other SQL-type queries.
NativeSqlAggregator is a new sample app to demonstrate usage of SmartStore within a native app to run Smart SQL queries, such as aggregate queries.
SmartStore now supports three data types for index fields – ‘string’, ‘integer’, and ‘floating’.


iOS
All projects and template apps have been converted to use ARC.
All Xcode projects are now managed under a single workspace (SalesforceMobileSDK.xcworkspace). This allows for a few benefits:
During development of the SDK, any changes to underlying libraries/projects will automatically be reflected in their consuming projects/applications.
You can now debug all the way through the stack of dependencies, from a sample app down through authentication and other core functionality.
No more “staging” of binary artifacts as a prerequisite to working with the projects. install.sh now simply syncs the sub-modules of the repository, after which you’re free to start working in the workspace.
Native and mobile template apps no longer rely on parent app delegate classes to successfully leverage OAuth authentication. This means that you the developer are free to form up your AppDelegate app flow however you choose, leveraging the updated :SFAuthenticationManager component wherever it’s practical to do so in your app.
All hybrid dependencies are now decoupled from SalesforceHybridSDK.framework (which has been retired). Which means you can now mix and match your own versions of Cordova, openssl, etc., in your app. The core functionality of the framework itself has now been converted into a static library.
Android
Extending ForceApp or ForceAppWithSmartStore is no longer a requirement.
Added SalesforceListActivity and SalesforceExpandableListActivity, that provides :Salesforce wrappers around the standard ListActivity and ExpandableListActivity respectively.
rest.xml has been removed and replaced with bootconfig.xml. Login options do not have to be supplied through code anymore, they can be specified in bootconfig.xml.
Bootstrap flow for hybrid apps now occurs on the native side, thereby enabling faster initial load times (bootstrap.html is no longer required or used).
Changed the package name of the SmartStore library, so that it can coexist with other library projects.


Mobile SDK 1.5 Release Notes

Updated iOS and Android SDKs to Cordova 2.3
Make sure to change all the older cordova-xx.js references to cordova-2.3.0.js in your projects
Security Enhancements
Snapshots of the app screen sent to the background can be substituted to a white screen to prevent capture of sensitive information
iOS SQLCipher Versioning
Enhanced passcode security and configuration are now available options for the secure offline database
String Localization
Both the iOS and Android SDK now support localized strings in an external resource


Mobile SDK 1.4 Release Notes

Updated iOS and Android SDKs to Cordova 2.2
Make sure to update to the latest cordova.js and associated SDK JS plugin files when you upgrade. These can either be taken from the repo, or from a newly-generated hybrid template app
API Versioning
Cordova JavaScript libraries are now versioned to benefit hybrid apps that deploy multiple versions at the same time.
See “Versioning and Javascript Library Compatibility” in the “Introduction to Hybrid Development” chapter of the Mobile SDK Developer Guide.
Reactive Session Management for Hybrid Apps
Developers get more control over managing web sessions inside the hybrid container. Apps that previously relied on proactive session management will require some modification. :Please upgrade with caution. (forcetk.js clients should not be affected.)
See “Managing Sessions in Hybrid Applications” in the “Introduction to Hybrid Development” chapter of the Mobile SDK Developer Guide.
Passcode Reset
Added option for users to logout from the passcode screen
Android Specific Updates
Library Project Settings
Login host settings externalized to an XML file
SQLCipher libraries updated to support the Android x86 Architecture
“UpgradeManager” can be used to handle SmartStore schema changes and other artifacts
iOS Specific Updates
SmartStore for native apps Xcode template



Mobile SDK 1.3 Release Notes

Cordova Library Updates
The Salesforce Hybrid SDK has updated its PhoneGap/Cordova support to Cordova 1.8.1. All plugins and infrastructure have been updated to Cordova patterns.
Default SmartStore Encryption
If an app does not implement user passcodes, its SmartStore data will be protected with a default encryption scheme.
iOS
Native iOS apps can now function offline if the user has authenticated at some point. Once the device comes back online, the app will reconnect with the user's existing credentials. (Hybrid apps already have this capability.)
Android
SDK is now a Library Project Refactored SalesforceSDK as a library project, which requires minor Eclipse project updates for upgraded apps.

Mobile SDK 1.2 Release Notes

Included in the 1.2 release:

Connected Apps Pilot
Apps implemented with the Mobile SDK will now respect Connected Apps policies. Rules defined by administrators for PIN code protection and session timeout intervals will now be enforced by native and hybrid app implementations. (Note: This feature requires that the Connected Apps Pilot be enabled.)
SmartStore Enhancements
Upsert records based on external Id. SmartStore can now determine record uniqueness and perform the proper updates based on an Id defined by the developer. This design reflects the Salesforce REST API, making it easier to implement data synchronization.
Mock SmartStore Implementation
Developers can build and test SmartStore apps directly in the desktop browser.
Optional Self-Encrypted SmartStore Databases
Developers have the option to self-encrypt SmartStore databases, which can be securely backed-up.

Mobile SDK 1.1 Release Notes

Included in the 1.1 release:

Secure Offline API
Store sensitive business data directly on a device with enterprise-class encryption for offline access. The Salesforce SDK provides a robust API for storing, retrieving, and querying data without internet connectivity. Check out this blog post for more information.
Flexible OAuth2 Authentication Flow
For hybrid apps, you now have the flexibility to configure whether or not your app needs to authenticate immediately when the app starts, or whether you'd prefer to defer authentication to a more convenient time in your app's lifecycle. Check out this blog post for more information.
Blocks APIs for iOS
For native iOS developers, the REST API libraries have been updated to support a blocks-based callback interface, to make responding to asynchronous REST calls much easier. Check out this blog post for more information.

> Return to Mobile SDK page