Despite the idea we are living in a permanently connected world, mobile users are on the go and have usually intermittent network access. For some users, such as field service workers, the connection can be either restricted or unavailable.
If you want to provide your users offline access for some or all of your application’s functionality, OutSystems provides the necessary capabilities for your application.
To make your application offline-ready in OutSystems you only need to define you local data model and synchronization logic. The platform takes care of making the core logic and user interface of your application available offline.
OutSystems caches the application's assets on the device the first time the user starts the app. Published changes to your app are updated the next time the application is running online (see Generating Mobile Apps).
Developing for Offline
Underlying our solution is an offline-first approach. In offline scenarios, cached data is served first, data manipulation is executed client-side and changes carried out in the local storage.
We provide a configuration framework allowing you to define events triggering your custom data synchronization logic.
Defining early what are the use cases you want to make available to your users offline will save you development time. While planning your offline scenarios, the basics you need to consider are:
- What offline scenarios to make available? — Do your users only need to browse data offline? Or can your users also push local changes back to the server? Is there any critical information you want to send to the remote database as soon as a connection is available or can users wait to synchronize all data later?
- What data will you store locally? — Ideally, you should only store a subset of your database in your device. Embedded databases are lightweight and device storage capability can pose size limitations. Also, hand-held devices have limited computing power and battery capacity, so you need to have this in mind when designing your offline implementation. See also Local Storage.
- What are the conditions which will trigger synchronization? — Is data synchronized only the user requires it? Or will synchronization be triggered by certain events, such as on user login or when the network is restored?