Offline mode is a great competitive advantage for your business. Even if users appreciate an app, a lack of offline functionality can make them seek alternatives. For instance, Notion, a note-taking and productivity app, is criticized for working without offline mode. Another note-taking app, Evernote, provides offline access for its Premium subscribers. As of 2021, Evernote had 250 million users compared to 20 million Notion users. Trello listened to their users’ reviews and provided offline support for Android and iOS in 2017.
It’s best to keep ahead of the game and provide offline capabilities for your customers and employees even before they request them. Making your users constantly rely on an internet connection is unwise (at least for now) and can lead to profit and customer loss. A 2019 survey by Pew Research Center and Elon University on The Next 50 Years of Digital Life forecasts that in only 50 years we will be able to talk about the omnipresence of the internet and even the inability to disconnect from it. Until then, we have to take into account the possible loss of internet service when purchasing or developing web and mobile software solutions.
In this post, we’ll focus on the business and technical sides of implementing offline mode. Let’s have a look at the possible business areas in which offline capabilities can be beneficial.
Business use cases for implementing offline mode
There are plenty of use cases for implementing offline mode in almost any industry that already makes use of digital solutions. In this section, we analyze logistics, FinTech, and healthcare. We have a proven track record of delivering quality software products for these domains.
Software with offline mode for the logistics industry
To satisfy customers, the logistics industry should have an uninterrupted flow of deliveries and pickups. The risk of loss or absence of an internet connection either during deliveries or in the warehouse should be mitigated.
When transporting freight, truck drivers usually pass through areas without an internet connection, yet it’s essential for them to always have access to the driver app. With its help, drivers can view their deliveries and necessary freight documentation as well as track working hours and gather ELD data. Proper functioning of GPS navigation in any area is also crucial for efficient and on-time deliveries.
Samsara’s driver app can switch to an offline mode in which telematics devices in the vehicle still collect necessary data so that the app could show up to date information when it reconnects to the internet.
The FleetUp fleet management system (FMS) gathers ELD data even in areas with no service to send data to the FleetUp mobile app when the internet connection is re-established.
We’ve mentioned a few ready-made options, but you can always choose to develop a custom driver app to include as many offline capabilities as your particular drivers may need. For example, for the on-demand delivery app Brilliant Move, we’ve implemented an offline mode so delivery teams can ensure order completion even without an internet connection.
Usually, even small logistics companies have at least one warehouse or distribution center, most likely located in the suburbs. These are often big buildings with high shelves that may hinder network signals. Ensuring a wireless network in the entire warehouse can be costly and difficult. But warehouse operators may need an internet connection in different warehouse sections to, for instance, scan barcodes and manage inventory. For a seamless warehouse workflow, a software solution with an offline mode for operators’ mobile devices can save the day.
For instance, Mobile WMS by Tasklet Factory enables warehouse employees to process orders online and offline from any part of the warehouse. The warehouse staff only need to log in and log out from the system in an area with a good Wi-Fi connection. All work around the warehouse can be performed even without a stable internet connection.
With offline availability, transporting and storing goods can be a seamless experience, satisfying customers and employees. Let’s switch now to the adoption of offline mode for FinTech.
Software with offline mode for the FinTech industry
FinTech companies can also largely benefit from offering features with offline mode and, in particular, from winning clients’ loyalty. Below are some typical use cases for implementing offline capabilities in the FinTech domain.
Some banks provide offline capabilities within their web or mobile platforms. For instance, Citizens Bank offers a number of offline features on their banking platform:
- Account listings with balances
- Bill pay
- Message center
- Log out
Adyen, a financial platform with machine learning capabilities, allows offline payment processing of two types: Europay, Mastercard, Visa (EVM) payments, and store-and-forward payments. Such transactions have a floor limit, which is the maximum amount of payments a terminal can process offline. A floor limit is necessary to reduce risks like credit card fraud.
Offline capabilities are also applicable to the cryptocurrency domain. To store cryptocurrencies, users can use cold storage or a hot wallet. Cold storage is offline and is considered a more secure and reliable way to store cryptocurrencies than a hot wallet. However, it’s easier to transfer cryptocurrency from a hot wallet than from cold storage. Thus, cryptocurrency owners store larger amounts of Bitcoin or other assets in cold storage and keep smaller amounts in a hot wallet for spending purposes.
Offline availability can encourage more customers to use loan origination software.
The Haibe Originate loan origination software allows account officers to manage clients’ data in offline mode. And the whole solution has an offline-first approach, which makes loan management possible in areas with no internet connection thanks to a data syncing algorithm.
Of course, FinTech solutions can’t function completely without an internet connection for security reasons. But allowing users to perform at least minor actions offline is already beneficial and can enhance your customer retention strategies. Now we’re moving to the last industry on our list — healthcare.
Software with offline mode for the healthcare industry
Offline capabilities for healthcare software can benefit both practitioners and patients. Practitioners can always have uninterrupted access to patients’ data, smoothly prescribe treatment plans and drugs, and react to emergency situations in a timely manner. Meanwhile, patients can access their prescriptions and health data anywhere, including on a plane, abroad, or in remote locations.
If an EHR system is available offline, clinicians can be sure that in case of an unexpected loss of internet connection, they won’t have to go back to paper patient records. Besides, an EHR solution with offline capabilities can help to preserve the usual hospital workflow in the event of internet connectivity issues and assure patients they can always receive the necessary care. For instance, HospitalRun can work entirely offline, allowing access even in the most remote areas of the world.
Medical appointment scheduling
With offline access to a medical appointment scheduling system, patients can book appointments anytime and anywhere. For instance, Timify allows patients and clinicians to book and manage medical appointments round-the-clock in offline mode. Once users get back online, all the changes are synced automatically.
Implementing offline mode for healthcare software solutions can be worth the time and money. With offline mode, you can provide healthcare services under almost any circumstances and place your focus on patients’ well-being.
Read also: Cloud-based medical imaging system
But how can you determine which functions you should provide in offline mode and which technologies you need to implement them? Further in this post, we share some tips.
How to decide on offline features for your software
Unfortunately, there’s no one-size-fits-all approach to creating an offline mode that can cover all of your specific business needs. Before deciding on purchasing or developing any business software with offline mode, you have to do your own homework using the following formula:
- Review your business workflow and break it down into clear steps.
- Translate these steps into software functionality.
- Prioritize features in terms of those that:
- your business can’t live without
- are important but not absolutely urgent
- would be nice to have
- Decide what you want to achieve through your software.
Discussing your findings with your IT team can help them clearly understand your business goals and suggest the proper technologies for a well-tailored offline solution. To decide on offline functions, you can use the Eisenhower Decision Matrix. It can help you see the actual importance of your functionality. To fill out the matrix:
- Outline functionality that you want to be available offline.
- Check with your employees and customers to see how important each feature/interaction is for them.
- Define how difficult it will be to implement offline functionality for each feature.
- Put this information into the matrix and prioritize.
Finally, you’ll have a complete list of offline features and will be able to figure out how to implement them.
For example, say you want to implement an offline payment gateway for your digital banking app. You can conduct a poll among your users to find out whether this feature is important for them. After that, you can estimate the time and effort you’ll need to invest to implement it. The place of this feature in the matrix will help you see if it’s worthwhile.
How to choose technologies for offline mode
Your development team’s choice of technologies defines how well your web or mobile app will function in offline mode. To make this choice easier, you can draw on the following criteria:
Frequency of data synchronization. Discuss with your developers how to ensure the most suitable synchronization frequency. For instance, reconnecting to a mobile device too often might wear down the battery. But if synchronization happens too seldom, users can miss important updates. Investigate how often your software users have access to high-speed internet. For your employees, you can also define time frames in their usual schedules that are good for syncing data. If the data connection is strong, those slots can be short.
Data synchronization cycles and time. Prioritize your data based on your business needs. While some types of data should be updated once a year, others should be updated daily. Thus, you can define different synchronization cycles and times for different data. It’s best if data packages that need frequent updates are small. You may not need to synchronize your app constantly, so you can choose to sync your data at a specific time. For example, transport carriers fully synchronize only when vehicles are in depots. In other situations, vehicles report only vital data, like information about accidents en route.
Managing changes in shared data. When certain users are using the app offline, changes they make aren’t visible to other users. This means that when several users modify the same data, they can’t see who made particular modifications. If such a scenario is inevitable, rely on exception handling and define how to deal with those exceptions. According to IBM Developer, a possible solution for such scenarios could be to consider the first update to data as of primary importance and ignore all other updates.
Handling sensitive data. Caching private user data is a bad practice for security reasons. The cache folder on a user’s smartphone stores such data as logos and blog posts so this data doesn’t need to be downloaded each time the user accesses it. However, anyone can view cached information by pressing the browser’s Back button or by checking the browser’s cache. That’s why sensitive data such as credit card details and usernames should not be cached.
Method of syncing. When choosing a syncing method for your offline mode, answer the following questions:
- Do you need synchronous or asynchronous data transfer?
- Do you want to sync data manually or automatically?
- Is the app going to request the server to send updates or is the server itself going to send any data updates to the app?
By answering the above questions, you’ll be able to determine the best syncing method for your web or mobile application.
Web and mobile apps can be created with local storage/databases and data synchronization. Let’s check out the details of implementing offline mode for the web.
Implementing offline mode for a web application
In this section, we’ll overview tools that enable storing data in the browser as well as key frameworks for integrating offline capabilities into a web application. We’ll take progressive web applications (PWAs) as an example. PWAs are the most common type of web applications that can work in offline mode thanks to the technologies they’re built with.
Tools for storing data in the browser
IndexedDB. Offline web applications obtain data by means of offline storage APIs. IndexedDB provides a better API than the local Storage API for offline data storage. Your app shouldn’t make any HTTP calls so as not to fail in offline scenarios. For web apps, IndexedDB can store user actions as jobs to sync. As soon as the network is available, these jobs can be processed one by one. In low-storage situations, browsers may clear IndexedDB. You can use the persistent storage API introduced in Chrome 52 to solve this issue.
Service workers. Service workers operate as client-side proxies. They can intercept requests from clients (windows, web workers, shared workers) and can choose how to respond. Service workers lie at the heart of PWAs and help ensure robust offline capabilities. Google libraries – sw-precache and sw-toolbox – for caching static and dynamic content are good for implementing your own offline strategies.
Tools with the possibility of implementing offline mode for PWAs
In this section, we’ll consider the most widespread and suitable frameworks for PWA development: Angular and React. Among their many benefits, Angular provides a compilation method for fast app rendering and high security, while React is the best for high-performance app development.
Angular. Integrating service workers into an Angular web application can help transform it into a PWA. This way Angular web applications can work in conditions with an unstable or even no internet connection. An Angular service worker conducts all file updates in the background, giving the feel of a native application. An important condition for the Angular service worker to properly function is access to applications over HTTPS. Browsers don’t react to service workers on insecure web pages.
React. To make your React app work in offline mode, it’s also preferable to transform it into a PWA by adding service workers and web manifest. The latter is a JSON file that informs the browser about how to use the app. It’s best to deploy a React app on Firebase hosting, as it provides many benefits for PWAs such as fast response times.
Converting your web app into a PWA can offer your users more opportunities, including a rich offline experience. As we’ve briefly touched upon web applications, let’s switch now to the topic of how to make a mobile app available offline.
Implementing offline mode for a mobile application
The primary difference in implementing offline mode for web and mobile applications lies in the fact that web apps store data in the browser, while mobile apps store it locally.
SharedPreferences.To develop an offline Android app, you can use SharedPreferences. However, the SharedPreferences solution is limited to storing serialized objects, pictures, JSON, XML, and other files.
Local (internal/external) storage. When you have to store data on a mobile device’s file system that doesn’t require a relational database, you can use the internal/external data storage method. Internal/external data storage properly stores all data and is simple to use. The internal storage method stores data privately for the app. If the app is deleted from the device, the data is removed as well.
SQLite database. Android and iOS both support SQLite databases. Each mobile platform has its own database management tools. SQLite provides apps with the speed and power of a full-featured relational database and uses a single file to store data. An SQLite database can’t solve too much on the sync and conflict resolution side; however, it’s an easy-to-use option for queuing and caching data. If you need to store information that has to be queried, consider an SQLite database.
When using a mobile app offline, there are many actions and much data you have to sync with the server. This syncing can happen whenever an internet connection is available.
Offline sync for a mobile app
When users take actions in your offline mobile app, the changes they make should be synchronized with a central data repository. To enable this synchronization, your app will have to govern the flow of data between the server and client.
Mostly, users can use offline mode for editing information on the server side and on the mobile side. This is the best solution. Though it sounds tempting to develop offline apps with two-way sync, this method is actually the hardest. With two-way sync, synchronization logic has to simultaneously ensure that data is relevant on both the mobile and server sides.
Data storage methods that enable offline mode differ for iOS and Android apps. We’ll overview a few such methods.
Android. For integrating offline mode, the Android platform provides SharedPreferences APIs. They can be used for storing a relatively small amount of simple data in key-value pairs. With SharedPreferences, you have a key and the value for that key. The Android platform privately stores all SharedPreferences files in XML format. A mobile app can have diverse SharedPreferences files. Below are two methods for receiving a SharedPreferences object:
- getSharedPreferences() is used for apps with a single preference file
- getPreferences() is used for apps with multiple preference files or if you want to give a certain name to the SharedPreferences instance
iOS. For implementing offline mode in an iOS app, you can use the NSUserDefaults class that saves and updates users’ preferences. This class provides a programmable interface that allows an app to tailor its behavior based on users’ preferences. For example, you can allow users to save a picture offline or add functionality that saves documents. The app stores users’ preferences in the user’s default system. Thanks to this, data is cached, allowing you to avoid opening the user defaults database every time you need a default value. If such a default system is available in your mobile app’s code, any saved data will remain across all app sessions. If users close the mobile app or restart their mobile devices, they still can use all saved data once they log in to the app again.
Offline mode can be the icing on your app’s cake. If you think your app needs offline mode, we’ll be glad to implement it for you. We can either augment your existing software with offline capabilities or develop a completely new business solution. Check out our expertise to learn about our experience with the most cutting-edge technologies.