App Development

Mafatih

Mafatih puts a large library of Islamic prayers, Quranic text and devotional literature on the phone, in Arabic with Urdu and English translations. Working with a partner agency, we built most of the Flutter app for Android and iOS: offline from the first launch, with content updates that don't overwrite local data.

Technologies
BLoC Flutter Isar PHP REST API
Industry Digital Content & Publishing
Library Entries 700+
Location Canada
Client Mafatih
Mafatih
The Problem

The Challenge.

Mafatih is used for daily prayer and reading, including where mobile data is slow or unavailable. A library that only loads online fails readers exactly when they open it, and this library is large, long-form and written in three languages.

Content also changes. The client's PHP backend publishes updates, and the app has to pull them in without damaging what is already on the device. One sync path had a fault: blank fields from the server overwrote local search keywords.

Then the reading itself: Arabic, Urdu and English each need their own typeface, size and colour, and all 114 Quranic chapters must appear in the correct order.

Our Strategy

Our Approach.

We made the device the primary copy. The core library ships inside the app as bundled data and loads into an embedded Isar database, so it works from the first launch with no connection.

Search runs locally against indexed titles and keywords, so it never waits on a server. Bookmarks, favourites and reading settings are stored on the device too.

Updates arrive through incremental sync with the client's PHP REST API. We fixed the sync logic so empty server fields can no longer overwrite local search keywords, and saved bookmarks and preferences are preserved across updates.

The Journey

The Solution.

The result is a reading app that behaves the same with or without a connection, from the first time it is opened.

We built a parser that converts the HTML source content into clean verse-by-verse layouts, with Arabic text and Urdu and English translations shown together where they exist.

Each language has its own font, size and colour settings, using Amiri for Arabic and Noto Nastaliq for Urdu. Numeric sorting keeps all 114 chapters in order, rather than the 1, 10, 100 sequence plain text sorting produces.

Around the reader sit bookmarks, favourites, verse sharing, full-screen and zoom reading, a tasbeeh counter, a Hijri calendar and user accounts with password recovery. The app is live on the app stores, and English content continues to grow.

Approach & Solution
The Outcome

The Results.

✓
700+ Library Entries

700+ entries sit in a local library; the core content ships with the app, so reading starts without a download.

✓
Search That Works Offline

Keyword search runs against the on-device index, so results come back without a network request, even in airplane mode.

✓
Three-Language Reading Controls

Arabic and Urdu get dedicated typefaces, and each language has its own size and colour settings on one reading screen.

✓
Safe Content Updates

Incremental sync pulls new content from the PHP API without overwriting local search keywords, bookmarks or preferences, fixing a fault that had blanked keywords before.

"The team understood what we needed from the application and handled the project with great attention to detail. What stood out was the reliability of the offline experience and the way the large amount of content was organized into something simple and easy to use. The search, reading controls and overall performance made the application exactly the kind of mobile experience we wanted to deliver."

Project Partner