Professional PDF Management Institution

Maktabati

A comprehensive digital library platform designed for researchers and institutions, offering seamless PDF management and viewing capabilities.

The Overview

Engineered internally at Kay Technology, Maktabati acts as a complete digital library platform for researchers needing direct access to securely managed digital archives. It is more than a UI wrapper, serving as a powerful offline-capable document manager prioritizing low memory overhead during heavy PDF view operations.

The Challenge

Most digital archive applications fail when facing high-resolution, 1000+ page institutional PDFs. The Android memory model natively struggles to cache large bitmap streams without firing OOM (Out Of Memory) exceptions.

At the same time, an architecture was required that allowed separate internal agency teams to parallel-develop isolated segments of the app (Authentication vs. PDF engine vs. Downloads manager) without inducing code-merge collisions.

Architecture & Technical Decisions

The solution necessitated strict adherence to multi-module Clean Architecture, enforcing hard physical boundaries between components.

Enterprise Modularity

  • Strict Feature Isolation: Features (Auth, Library, Viewer, Settings) act as standalone endpoints. Downward dependency on the core-domain and core-data prevents circular dependencies and heavily cuts incremental build compilation durations.
  • Solid Memory Management: By integrating Barteksc PDF Viewer alongside custom background caching handled heavily by WorkManager, we load dense graphical PDF pages lazily. This isolates UI scrolling threads via Jetpack Compose from the main data-mapping logic.
  • Download Resilience: The DownloadX framework combined with Room ensures that 10GB+ library synchronizations can resume flawlessly post-disconnection, securely persisting to encrypted storage partitions inside the app hierarchy.

Development Impact

The modular separation led to pristine LeakCanary audits, allowed QA teams to test business-logic flows without bootstrapping UI constraints, and paved a direct pathway toward dynamic feature delivery payloads on the Google Play Console.

Impact & Results

  • Eliminated Out-Of-Memory (OOM) Errors completely, providing butter-smooth 60fps rendering for 1000+ page institutional PDFs.
  • Faster Team Development unlocked by creating strict multi-module boundaries that completely decoupled Auth, Viewer, and Download feature teams.
  • Smooth Downloads spanning massive 10GB+ library synchronizations supported safely in the background via encrypted storage chunks.

The Tech Stack

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