ShareShareShareShare
White Paper

Building Offline Apps

On
Off

Offline apps are a necessity in many scenarios. For instance, they provide seamless user experience during limited or zero Internet availability. Modern mobile apps built for navigation, gaming and reading use offline mobile apps. In this whitepaper, we discuss the solution approach, key best practices and the DevOps for building an offline mobile app using Xamarin framework.

Offline Apps

In this whitepaper, we have considered a usecase for agent enrollment in the insurance domain. The application discussed in this whitepaper is built as a thick client for desktop, laptop and tablets. We will discuss the drivers, solution architecture and best practices of offline mobile apps.

Given below are the main drivers for the use case:

  • Seamless agent enrollment in offline mode across various user devices
  • Handling complex business logic offline without any dependency on enterprise systems
  • High mobile app experience
  • Quick download of huge reports
  • Seamless viewing of large PDFs in offline mode
  • Integration of the mobile app with the existing enterprise applications Overall solution

Overall solution architecture

This application is supported on Windows (tablet/desktop) and Mac OS, and users are mainly producers/agents/brokers. The application has been developed using Xamarin technology, where 80% of code sharing has been done between Mac and windows. There has been an explicit use of custom renderers, behaviors, converters and the dependency service to exploit the native functionality. The user interface (UI) of the application is responsive and can be used in different screen sizes and resolutions. Data download deals with fetching all the needed data to support the offline mode using static and dynamic global dump. The existing web APIs are being used to get the group specific data and once the entire data is available, the business logic and computations are handled to determine the eligible data, which the user can use for subscription of policy. The communication with the docker is established to generate a PDF once the policy is subscribed.

We have exposed multiple interfaces to avail different services that are needed to process business logic. Some of these are SQLite service, service helper, DB service, and logger. Data layer is the main repository where there are huge records of data stored using SQLite segregated across multiple database, with data being secured using database encryption. We have also used preferences to persist primitive data types. All the CRUD (Create, Read, Update and Delete) operations are implemented to deal with data transaction.

NuGet packages provided by .net framework has been used to incorporate some of the services. There is also dependency on external systems such as ping authentication for secure login and payment gateway for payment-related services. Kibana integration is done to trace and debug API failures. We have also used a login tool called Sentry, which provides both offline and online crash/ exception reports for Windows and Mac platforms.

Download Whitepaper to read more

Building-Offline-Mobile-Apps
Get in touch

Thank you for your submission. We'll be in touch.