Tech Stack Overview
Android App:
Kotlin + Jetpack Compose for the entire UI layer
Material3 for theming (dark/light + custom palettes)
Room for local caching of surah/ayah data, themes, and user preferences
Retrofit + OkHttp for API calls
Coroutines + Flows for async work and state management
ExoPlayer (lightweight setup) for ayah-by-ayah audio playback
Custom “chunking engine” for rendering long Arabic ayahs without breaking layout
Custom text rendering to support multiple scripts (Arabic, Urdu, English)
Data Layer:
A topic-based ayah classification system built in JSON
Around 6,000+ mappings organized manually + semi-automated checks
Thematic categories stored locally to allow instant offline lookup
API integration for translations, tafseer, and audio metadata
Performance considerations:
On-demand loading per surah to avoid loading full Quran in memory
Pre-processing long verses to maintain Compose stability
Caching audio segments for faster repeated playback
Heavy emphasis on layout efficiency due to Arabic typography variance
Backend:
Lightweight middleware for translation sources
Quran data normalized and optimized for fast mobile lookup
Pre-indexed thematic JSON to avoid runtime processing on device
Infra:
Firebase Analytics for anonymous usage patterns
CI/CD via GitHub Actions + Play Console integration
Happy to share the tech side.
Tech Stack Overview Android App: Kotlin + Jetpack Compose for the entire UI layer Material3 for theming (dark/light + custom palettes) Room for local caching of surah/ayah data, themes, and user preferences Retrofit + OkHttp for API calls Coroutines + Flows for async work and state management ExoPlayer (lightweight setup) for ayah-by-ayah audio playback Custom “chunking engine” for rendering long Arabic ayahs without breaking layout Custom text rendering to support multiple scripts (Arabic, Urdu, English)
Data Layer: A topic-based ayah classification system built in JSON Around 6,000+ mappings organized manually + semi-automated checks Thematic categories stored locally to allow instant offline lookup API integration for translations, tafseer, and audio metadata
Architecture: Clean Architecture (UI → ViewModel → Repository → DataSource) Stateless UI, reactive state flow Modularization in progress (core, data, features)
Performance considerations: On-demand loading per surah to avoid loading full Quran in memory Pre-processing long verses to maintain Compose stability Caching audio segments for faster repeated playback Heavy emphasis on layout efficiency due to Arabic typography variance
Backend: Lightweight middleware for translation sources Quran data normalized and optimized for fast mobile lookup Pre-indexed thematic JSON to avoid runtime processing on device
Infra: Firebase Analytics for anonymous usage patterns CI/CD via GitHub Actions + Play Console integration