Overall Project:
This project involved developing a multilingual Quran app supporting English, Persian, Arabic, Urdu, and French. The app offers a comprehensive range of features, including prayers, supplications, hadiths, Qibla direction, nearby mosques, offline audio playback, and more.
Specific Features:
- Multilingual Support: The app supports multiple languages, allowing users to access content in their preferred language.
- Quran Recitation: The app provides offline and online Quran recitation with the option to change reciters.
- Highlighting and Bookmarking: Users can highlight and bookmark specific verses for easy reference.
- Automatic Scrolling: The app automatically scrolls through the Quran as it is being recited.
- Offline Download: Users can download specific portions of the Quran for offline access.
- Prayers and Supplications: A collection of prayers and supplications in various languages.
- Hadiths: A compilation of hadiths from the Prophet Muhammad.
- Qibla Direction: A built-in Qibla compass to find the direction of Mecca.
- Nearby Mosques: A map-based feature to locate nearby mosques.
- Customization: Users can customize the app’s appearance and functionality.
Technical Implementation:
- Full Database: The app utilizes a full database to store Quranic content, translations, and user preferences.
- MVVM Architecture: The app follows the Model-View-ViewModel architectural pattern for better separation of concerns and maintainability.
- Kotlin: The primary programming language used for development.
- Coroutines: Asynchronous programming is handled using Kotlin coroutines for non-blocking operations.
- Room: A local database is used to store app data, such as user preferences and downloaded content.
- DI with Dagger Hilt: Dependency injection is implemented using Dagger Hilt for efficient dependency management.
- Custom Views: Custom views are created to provide a tailored user experience.
Additional Considerations
- Offline Functionality: The app is designed to work offline, allowing users to access downloaded content without an internet connection.
- Performance Optimization: The app is optimized for performance to ensure smooth playback and navigation.
- Accessibility: The app is designed to be accessible to users with disabilities, adhering to accessibility guidelines.
- User Experience: The app focuses on providing a user-friendly interface with intuitive navigation.