Professional PDF Management Institution

Maktabati

A digital library platform for researchers and institutions, with built-in PDF management and viewing.

The Overview

Maktabati was built in-house at Kay Technology as the digital library product for researchers who need direct access to managed digital archives. It is an offline-capable document manager built to keep memory use low even on long PDF reading sessions.

The Challenge

Most digital archive apps choke on high-resolution, 1000+ page institutional PDFs. Android's memory model struggles to cache that many bitmap pages without throwing Out Of Memory exceptions.

The other requirement was an architecture that let internal teams work in parallel on separate parts of the app (auth, PDF engine, downloads manager) without constant merge collisions.

Architecture & Technical Decisions

The fix was a strict multi-module Clean Architecture with hard boundaries between components.

Modularity

Each feature (auth, library, viewer, settings) is an isolated module. They depend downward on core-domain and core-data, which avoids circular dependencies and brings incremental build times way down.

Memory management is the critical path for the viewer. Barteksc PDF Viewer renders pages lazily, with WorkManager handling background caching, so the Compose scroll thread is never blocked by data-mapping logic. The download layer combines DownloadX with Room: 10GB+ library syncs can resume after a disconnect and persist to encrypted storage inside the app's private directory.

Development impact

The modular split kept LeakCanary clean, let QA test business-logic flows without spinning up the UI, and made it straightforward to ship features as dynamic delivery modules through the Google Play Console.

Impact & Results

  • No more Out-Of-Memory crashes on 1000+ page institutional PDFs, with steady 60fps scroll.
  • Auth, viewer, and downloads teams shipped in parallel once the multi-module boundaries were in place.
  • Resumable 10GB+ library syncs running in the background with encrypted storage.

The Tech Stack

Language Kotlin
UI Framework Jetpack Compose
DI Framework Koin
Networking Ktor Client
Persistence Room DB
PDF Engine Barteksc & Afreakelf
Downloader DownloadX