Development Gateway is pleased to announce the release of AMP Offline 1.0 – an offline client application for our flagship Aid Management Platform, available for all clients with AMP 3.0.
AMP has a strong record of independent country ownership, and the Offline tool will further enable progress towards full AMP usability and sustainability. In continuing to build AMP Offline, we will use feedback from each integration in each new one, and will continue to share our experiences on the blog in the coming months.
Figure 1: AMP Offline Dashboard
Through AMP Offline, we aim to enable users with limited or unreliable internet connections to successfully and seamlessly browse, add, and update activity data in AMP. Further, AMP Offline will enable them to do so with fast response times and limited traffic usage. In many developing countries, connectivity issues makes it complicated for users to use web-based data systems, and many of our partners have requested a solution which allows them to work with their data when internet is unavailable. Offline functionality is focused towards prioritized client needs, and DG will continue to push enhancements as we develop new versions.
Offline Synchronization and Functionality
As for how the application works, once it is downloaded, the installer sets up all routines, images, and files needed to render the app on the local machine. The application will then synchronize all data between AMP Offline and the AMP platform itself.
Figure 2: AMP/AMP Offline Synchronization Process
The synchronization will exclusively exchange the data itself (activities, workspaces list, currency exchange rates, etc.), without any other online files required. Though the first synchronization may be slow (depending on connectivity), each one is faster than the last -- as the synchronizations will become incremental, and the application will begin only having to sync new data. When using the application to browse, add, or update activities, no internet traffic will occur at all.
For users with slow internet connections, AMP Offline loads faster than AMP itself, because:
- screen rendering files are not sent using the internet (even on the original page load);
there are no requests for content data made on the original page load or while performing a page action.
A user can install AMP Offline on a laptop, sync up data locally, then work offline from anywhere (with or without an internet connection). Once connectivity to the AMP server becomes available, the user pushes local changes (as data only) to the main server.
Figure 3: AMP Offline User Workflow
While using AMP Offline, users should sync data regularly to avoid conflicting edits done by multiple users on the same activity. Additionally, doing so ensures that users are seeing the most recent version of AMP Offline. To remind users to sync up, the application will show “sync up alerts,” as well as force the user to do so after a certain number of days (currently set to two weeks) -- to avoid stale, counterproductive local data.
Other Features of AMP Offline
The AMP Offline 1.0 release includes the following main features:
- Multi-user Support
Prebuilt Tabs for activities search / preview / edit
AMP Offline Update
Out of the above, new features include Data Synchronization and automatic AMP Offline Update. For the automatic AMP Offline Update, DG built an AMP Registry application to provision AMP with new Offline installers. AMP will periodically check the Registry for new installers and upload them to the server. Each time the user launches AMP Offline, the user will be notified of available updates. Once the user proceeds with the upgrade, the application will automatically complete the entire process, while preserving existing user data.
AMP Offline uses the AMP API to synchronize data or check for updates. The synchronized data is transferred in GZIP compressed mode, relying on a secure SSL API communication configured on the AMP server. To avoid too many small requests, some data is pulled in bulk. For AMP Offline support, we built a new synchronization API as well as extended and enhanced the existing Activities and Authentication API in AMP 3.0.
Figure 4: AMP Offline Components
How We Built AMP Offline 1.0
Using Electron (an open source library developed by GitHub), AMP Offline combines web technologies such as ES6, React.js (developed by Facebook), and Node.js with the speed and flexibility of native applications. Other well known applications like Slack and Microsoft Visual Studio Code are also built with Electron.
AMP Offline is available for many major platforms, including Windows 7+, Mac OS, and Linux (Debian and Redhat based). Windows installers are EV Code signed by GlobalSign using Microsoft Authenticode Technology. This signature verifies that the code hasn’t been tampered with and assures code authenticity. It also registers AMP Offline with Microsoft’s automatic SmartScreen® Application Reputation, avoiding unnecessary security alerts for the user. Similarly, Mac OS installers are signed with DG’s Developer ID in the Apple Developer Program, allowing Mac OS Gatekeeper to verify that the application is not a known malware and has not been tampered with.
We look forward to continuing to innovate and iterate on AMP Offline 1.0, as well as build other applications that push forth AMP as a broadly applicable tool. And in the coming months, we will share updates and lessons learned from the rollout of AMP Offline. Stay tuned for more!