5 ms·
Thank you Nathan for your feedback. Happy to share the tech side. Tech Stack Overview Android App: Kotlin + Jetpack Compose for the entire UI layer Material3
by ahmadshahwaiz 11mo ago
Thank you Nathan for your feedback.
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