kinvey-xamarin-sdk-2 (1)Our Xamarin 3.0 SDK Early Adopter Program is now open for registration. This new version of the SDK features enhanced offline operation and new flexible and granular data sync policies to support field service and other app use cases that lack good network connectivity for extended periods of time.

Less than 30% of the U.S. workforce sits at a desk. Field workforce mobilization is a hot use case for many industries including logistics, facilities management, manufacturing, pharma, food service, and others. More than just accessing the right data at the right time, mobile features allow field workers to optimize their schedule, receive on-site instructions, capture data, take pictures, use dictation, and complete transactions while on the road in real-time. Contextualizing the user experience increases both field service and back office operational efficiency while improving overall customer service.

Kinvey’s Xamarin SDK allows developers to build cross-platform apps that can work with data completely offline, and synchronize that data on-demand with their backend systems once good connectivity is restored.

Our Xamarin SDK has supported caching and offline data storage since the beginning in v1.0. The v3.0 SDK enhances these capabilities by providing more granular options with simplified APIs that provide streamlined setup to support a richer user experience with little to no effort. To support caching and offline data storage in your app, all you need to do is select the type of data store (shown below) you wish to use based on your app’s use case. The SDK will handle the configuration of your storage, policies, etc.

DataStoreType(s) options:

  • You want a copy of some (or all) the data from your backend to be available locally on the device and you’d like to sync it periodically with the backend: use DataStoreType.Sync
  • You want data stored on the device to optimize your app’s performance and/or provide offline support for short periods of network loss: use DataStoreType.Cache
  • You want the data in your backend to never be stored locally on the device, even if it means that the app cannot support offline usage: use DataStoreType.Network

Should your app use case require more control over how data is managed, we have even more granular and flexible configuration options provided in the 3.0 SDK.

Synchronization

The sync and push APIs allow you to to synchronize the data on the device with the backend.

Calling the sync API on a datastore kicks off a bi-directional synchronization of data between the SDK and the backend. First, the SDK pushes local changes to the backend. Subsequently, the SDK pulls data in the collection from the backend and stores it on the device. You can provide a query as a parameter to the sync API, to restrict the data that is pulled from the backend.

The push API initiates a uni-directional push of changes from the device to the backend. It differs from sync since it does not retrieve any data from the backend. You can call push on a Sync or a Cache datastore. You can also retrieve a count of entities modified locally and pending a push to the backend.

Delta Set Caching

The SDK implements a mechanism to optimize the amount of data retrieved from the backend. When you use a Sync or Cache datastore, data requests to the backend only fetch data that changed since the previous update. We call this mechanism “Delta Set Caching”.

Delta set caching is enabled by default on all Sync and Cache datastores for improved data delivery performance.

Get started today

Securely mobilizing corporate data for field workers is no longer an option – it’s a requirement to compete. Supporting mobile use cases that require offline operation and data sync is hard. Why waste your time developing the caching and sync plumbing? By using Kinvey, you can focus on designing your app experience and be assured that the mobile platform is there to support your needs.

Our Xamarin 2.0 SDK is available in our Dev Center today. Contact us to enroll in the Xamarin 3.0 SDK Early Adopter Program.