Let’s Take This Offline

The key to building and implementing your offline support is choosing the correct use cases and understanding the technical challenges and solutions ahead of time.

Cloud computing is transforming the way we do business.  Software can be deployed, administered, and updated remotely while continuing to reduce complexity and improve ease of access. Although cloud solutions are readily available for urban businesses, they can be more problematic for rural agricultural enterprises.

Farmers and agronomists working in remote areas, without good 5G coverage, will continue to be disproportionately affected by a lack of stable communication channels.

This is a particular challenge for anybody who wants to implement modern high-tech agricultural methods. Farmers working in remote fields need to use farm management software and analytics systems. Agronomists developing fertilization plans for agricultural land may need access to data and programs. Individual farmers using IoT devices need to send sensor data to backend services.

There is a wide range of solutions for the lack of reliable internet connection in remote areas.

1. Low-level communication protocols such as LoRa can enable long-distance IoT communication.

2. In-field edge devices for local processing can reduce the amount of information that must be submitted remotely, and can function as an offline cache.

3. An offline support system that works without a reliable network connection. We wanted to make our crop nutrition platform readily available at field level. We took a different approach and developed Offline First.

Offline development is a potentially powerful differentiator, but successful implementation requires careful planning and a clear understanding of your development goals. These include deciding what you want to make available to your users offline, to more technical challenges such as developing offline applications.

Offline first

Offline First allows for a process of progressive enhancement. The basic idea of progressive enhancement is to start with an assumption of base-level capabilities for an individual device. It’s then possible to take advantage of more device capabilities as they become available. As a starting point, we assume that your app does not have a working network connection.

As network connectivity becomes available, your app can be progressively enhanced to take advantage of the greater connectivity. This approach requires a shift in mindset to understand that lack of connectivity is no longer an error condition.

Choose the right technology platform

It’s important to plan strategically when selecting your technology stack. This initial decision will directly affect your ability to solve offline challenges. You can take a minimal approach with PWA, or consider hybrid and native solutions.

Progressive Web Apps

If you’re a web developer your first priority is to evaluate progressive web apps. The basic idea of progressive web apps is to combine the easy discoverability of web apps with the power of native mobile apps. As an end-user, you browse to a progressive web app just like you would browse any other website. If no web connection is available, a built-in mechanism loads the necessary files to allow offline viewing.

The fundamental difference between progressive web apps and normal online content is that progressive web apps allow for comprehensive offline support.

Ionic

Ionic is a tool that allows you to create hybrid mobile apps using SPA applications. Ionic can deploy to native platforms (including iOS and Android) using Apache Cordova, or you can deploy an Ionic app to the browser as a progressive web app. You can also extend the offline-first capabilities of your Ionic app by adding PouchDB to the mix.

Shifting business logic

Using web and cloud technology, it is possible to transfer elements of secured business logic from cloud storage to mobile devices to support offline capabilities.

This approach utilizes an existing codebase and is much harder to achieve. API changes to other assets also need to be migrated and shifted to the frontend.

Application Assets

Any application must include all the necessary resources to run an offline service without any connectivity. Techniques such as hydration, cache the application’s assets on the device the first time the app is used. The next time the application is running online, it will be automatically updated.

Another approach requires the user to notify the system before going offline. The system can then prepare itself for offline mode and fetch all relevant assets.

This method can be even more complex if we also need to handle 3rd party providers such as Google Maps API and any vendor-based API calls. Additional solutions can include Mapbox Maps SDK for Android or iOS. This downloads maps of selected regions for use when a device lacks network connectivity.

Local Database/Data persistence

Data on the device is stored in a local database. If you have the right technology stack, the solution will vary from SQLite (which runs together with your native app) or your hybrid app using the Ionic plugin.

Security considerations

Most users will have two main security concerns: How to achieve offline user authentication, and how to store data securely on the device.

If you have sensitive information, SQLCipher can enable you to secure your data with 256-bit AES encryption.

As the device was previously online, and user authentication must have previously succeeded, we can shift to a frontend authentication mode, while ensuring that the authentication key is well protected.

N.B. If you are operating in a highly regulated environment, this solution may require approval by your IT security department.

Offline Synchronization

Offline synchronization is the most challenging part of the wider process. You have to carefully analyze the individual use cases for your application and know which solutions are best for each case. Are your mobile users going to read data only, or do they need to modify existing data?

A few common patterns can ease the pain of data conflict handling. Requirements include Read/Write data last write wins, to conflict detection and resolution techniques. Some database solutions such as WatermelonDB and Firebase natively support offline persistence and database synchronization.

Crop Digital Nutrition Launching in India

Our corporate digital platform has been successfully launched in the Indian market. It is a user-friendly platform that will help ICL agronomists and field agents to recommend, and optimize nutritional requirements for crops. The goal is to fulfill each field’s potential and reduce fertilizer waste. The platform will not only improve the engagement of the local ICL agronomists with their customers but will leverage the ICL brand as a tech leader among its competitors.

One of the digital platform’s biggest advantages is its ability to implement and to easily and rapidly outsource data. This is due to its agile database structure. The localization process includes agronomical and common practices. Our digital platform, and all consultations, use locally recognized units of measurement e.g. Kg/ac. We also support local languages such as Marathi.

 How We Do It

The implementation process methodology is simple and straightforward, it includes the following steps:

1. It begins with an introductory meeting with the local management team and defines the scope of the work and the local point of contact for the localization process.

2. The localization kickoff involves collecting the required data on the most commonly grown crops in the particular market.

3. We quickly establish average yield ranges, growing practices, specific phenology, and the nutritional demands for each crop. We can then consider which fertilizer products to use, based on the local fertilizer catalog.

We have an ongoing emphasis on supporting local users and collecting feedback and additional requests.

Maharashtra Training Workshop

Our local training workshop provides full onboarding for 20 regional managers in Maharashtra, India. The program includes an introduction to the digital platform and a full demo. There is also a realistic simulation and a question and answer session.

Implementation during the COVID -19 pandemic was challenging as all contact was channeled via the web. Nevertheless, the training was conducted effectively. Our students learned to use the platform and gained the necessary skills and knowledge to achieve their farming goals.

The implementation in the Indian market was highly successful. It has proven to be a valuable tool to increase engagement with ICL customers in India and will provide the company with a competitive edge in the market.

Agmatix 2021, all rights reserved @ | Developed by Netrise

Agmatix 2021, all rights reserved @ | Developed by Netrise