Cross-platform mobile application case study

Access Agriculture Mobile App

Visual Purple built the Flutter mobile application that helps Access Agriculture take practical farmer-to-farmer training videos beyond the website and into the hands of mobile users. The app is deployed through both Google Play and Apple's App Store.

Users can register, browse multilingual agricultural content, stream videos, download protected copies for offline viewing, and transfer downloaded videos directly to another nearby phone without either device needing internet access. Locally recorded activity synchronizes when connectivity returns.

Access Agriculture mobile app showing multilingual agricultural training videos
The mobile library makes practical agricultural videos discoverable by language and topic. Official Google Play screenshot.

Product challenge

Making a global video platform useful under local constraints

Access Agriculture enables global and local access to quality agricultural training videos in local languages. Its wider platform contains thousands of agroecology videos across more than 100 languages, covering subjects from crops and livestock to equipment, business skills, and sustainable land management. A mobile app must make that depth useful without assuming that every user has continuous or affordable internet access.

The application therefore combines connected discovery with offline continuity. When online, users can retrieve current video listings, stream content, download selected language versions, and access connected services. When offline, locally stored downloads, metadata, thumbnails, favourites, and recently watched records continue to support useful viewing and navigation.

The design goes beyond individual offline access. Downloaded videos can move between nearby phones over a shared Wi-Fi network or one phone's hotspot. The sender exposes the selected local file through a temporary server and displays a QR code. The receiving phone scans the code, downloads the video and its metadata directly, and adds it to its own offline library.

Distribution model

Stream online, download once, and keep sharing locally

The application supports more than one route from the platform to the learner. Connected users can stream immediately or download a protected copy. Once downloaded, the video remains useful offline and can be passed directly to another phone nearby.

Diagram showing Access Agriculture videos streamed or downloaded to a phone and then shared locally with another phone
A downloaded video can continue moving through a local network or hotspot without requiring internet access.

Connected streaming

Video details provide a network playback source through the Flutter player, allowing users with a suitable connection to watch immediately without first storing the file.

Protected offline downloads

Selected videos and thumbnails are stored locally. Downloaded encrypted media is prepared on the device for playback and remains available through the user's downloaded-video library.

Nearby phone sharing

A downloaded video can be shared over local Wi-Fi or a hotspot. A QR-guided transfer carries both the file and its descriptive metadata to the receiving app.

Discovery experience

Helping users find the right video and language

The app supports discovery across a broad and changing library. Users can explore agricultural categories and subcategories, switch the selected video language, search titles, and open detailed records containing descriptions, categories, available translations, thumbnails, and playback controls.

Search extends across the main library, favourites, and downloaded videos. This matters after content has been stored locally: a user should not have to return online simply to find a video already held on the phone. Favourites and recently watched records provide additional routes back to useful material.

The interface itself is multilingual and supports right-to-left presentation where required. An optional Audible Mode downloads a language-specific guidance pack and plays voice feedback for interface actions, supporting users who benefit from spoken navigation. Dark mode, account deletion, device information, language selection, and update handling are available through settings and supporting flows.

Access Agriculture app search screen showing categories and language-based video discovery
Users can search and filter the library, favourites, and downloaded content. Official Google Play screenshot.
Access Agriculture mobile video detail screen with language, download, favourite, and description controls
Video details connect playback, language choice, downloading, favourites, and supporting information. Official Google Play screenshot.

Registration and access

A lightweight entry path with device-aware protection

The registration flow is designed around the mobile installation rather than a conventional email-and-password account. It captures selected profile context such as country, organization type, year of birth, and gender, associates the registration with a device identifier, and retrieves the key material needed for protected content handling.

This provides Access Agriculture with an identifiable deployment while keeping entry practical for the intended audience. The app caches language, category, interface, and video-list information so useful navigation can continue when the network is unavailable. Connected heartbeat, update, and user-detail flows help maintain the wider deployment over time.

The app also includes Ask Agi, a connected conversational feature for agricultural guidance. It complements the curated video library without replacing the offline workflows that remain essential when connectivity is absent.

Operational insight

Recording meaningful activity without making it network-dependent

Programme insight is useful, but collecting it must not prevent the application from working offline. The implementation records supported activity locally first and attempts synchronization when the app has connectivity.

Diagram showing video activity saved locally and synchronized with Access Agriculture when internet access returns
Views, downloads, searches, favourites, and received-video events are retained locally until they can be synchronized successfully.

Local event capture

SQLite records video views, downloads, favourite changes, search terms, and videos received from another device, including dates and sender-device context where applicable.

Delayed synchronization

Events are transformed into uniquely identified activity records and posted with device and installation context when a connection is available.

Confirmed clearing

Successfully synchronized event records are cleared locally after the server accepts them, allowing the next offline activity cycle to begin cleanly.

Verified technical details

One Flutter product across iOS and Android

The details below are drawn from the working Flutter repository, platform projects, official store listings, and implemented application flows.

Cross-platform delivery

Flutter and Dart provide a shared application codebase, with native Android and iOS projects for store deployment, permissions, platform configuration, and device integration.

Local-first data

SQLite, application document storage, shared preferences, cached metadata, and downloaded thumbnails support favourites, downloads, recent viewing, offline lists, and pending activity.

Media and protection

Better Player supports network and local playback. Protected downloads are stored encrypted and prepared on-device using retrieved device-associated key material.

Local transfer services

The sender uses an embedded Shelf HTTP server and QR code. The receiver scans the local URL, streams the file into application storage, and registers the received video locally.

Delivered capability

Digital distribution designed to continue beyond the network

The published Android app has exceeded 10,000 downloads, and the product is available on both major mobile platforms. The outcomes below describe implemented product capability rather than claiming independently measured agricultural impact.

View the live listings on Google Play and Apple's App Store.

Cross-platform reach

A shared Flutter product is deployed for Android and iOS while retaining platform-specific integration where required.

Offline usefulness

Downloaded videos, thumbnails, metadata, favourites, and recent activity remain useful without a live connection.

Local redistribution

One connected download can be transferred to another nearby phone without consuming internet data on either device during sharing.

Deferred programme insight

Operational activity can be captured during offline use and synchronized after connectivity returns.

Buyer questions

Frequently asked questions

Can users watch videos without internet access?

Yes. Users can download protected videos and their supporting information while connected, then find and watch those videos from the local downloaded library when offline.

How can two phones share a video without internet?

The phones connect through the same local Wi-Fi network or one phone's hotspot. The sending app starts a temporary local server and displays a QR code. The receiving app scans the code and downloads the selected video directly from the nearby phone.

What activity can synchronize when connectivity returns?

The implemented local event store covers views, downloads, favourite changes, search terms, and received-video events. These records are submitted with device and timing context and cleared locally after successful synchronization.

Does the app support accessibility and language preferences?

The interface supports multiple languages and right-to-left presentation where required. Users can enable dark mode and an optional Audible Mode that downloads spoken interface guidance for the selected language when available.

Can Visual Purple build or modernize a similar mobile content platform?

Yes. An engagement can cover cross-platform delivery, media streaming, protected offline storage, local sharing, multilingual interfaces, delayed synchronization, or modernization of an existing mobile application and backend.

Start a conversation

Need a mobile platform that remains useful offline?

Discuss your content, users, connectivity constraints, protection requirements, distribution model, and the practical route to a dependable cross-platform application.

Book a consultation