https://github.com/moatazbadawy/sunset-hadith
Islamic app with 50K+ downloads, Built using Kotlin, Coroutines, Retrofit, OkHttp, Room Database, Dagger-Hilt, MVVM, Clean architecture.
https://github.com/moatazbadawy/sunset-hadith
android clean-architecture coroutines coroutines-android dagger2 kotlin modularization mvvm-architecture retrofit room
Last synced: 2 months ago
JSON representation
Islamic app with 50K+ downloads, Built using Kotlin, Coroutines, Retrofit, OkHttp, Room Database, Dagger-Hilt, MVVM, Clean architecture.
- Host: GitHub
- URL: https://github.com/moatazbadawy/sunset-hadith
- Owner: MoatazBadawy
- Created: 2021-08-29T15:39:16.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-03-27T05:21:17.000Z (about 1 year ago)
- Last Synced: 2025-04-15T11:04:09.538Z (2 months ago)
- Topics: android, clean-architecture, coroutines, coroutines-android, dagger2, kotlin, modularization, mvvm-architecture, retrofit, room
- Homepage:
- Size: 179 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Sunset Hadith - حديث الغروب

## Overview 🕌
An interactive islamic app that lets users discover Biography of the Prophet Muhammed, Watch videos, set wallpaper Images, download and reading books.
- Ability to read articles and brochures.
- Ability to copy and share hadiths with others.
- Watch and view Islamic videos through Youtube player API.
- The ability to search in the hadiths of the Prophet.
- Download images and set them as wallpapers for your device, whether for the home screen or lock screen through the application
- A selection of books with the ability to read directly and download them
## App Images 🌹
Home | Videos | Hadiths
--- | --- | --- |
 |  |  || Wallpapers | Books | DisplayBook (Scrolled)
--- | --- | --- |
 |  | ## Project Architecture MVVM

- Yes , liveData is easy , powerful , but you should know how to use.
- For livedate which will emit data stream , it has to be in your
data layer , and don't inform those observables any thing else like
in which thread those will consume , cause it is another
- For livedata which will emit UI binding events, it has to be in your ViewModel Layer.
- Observers in UI Consume and react to live data values and bind it.
responsibility , and according to `Single responsibility principle`
in `SOLID (object-oriented design)` , so don't break this concept by
mixing the responsibilities .
## Built With 🛠
- [Kotlin](https://kotlinlang.org/) - First class and official programming language for Android development.
- [Coroutines](https://kotlinlang.org/docs/coroutines-overview.html) - Asynchronous or non-blocking programming is an important part of the development landscape.
- [Flow](https://kotlinlang.org/docs/flow.html) - A suspending function asynchronously returns a single value, but how can we return multiple asynchronously computed values? This is where Kotlin Flows come in.
- [Ktor](https://ktor.io/) - Create asynchronous client and server applications. Anything from microservices to multiplatform HTTP client apps in a simple way. Open Source, free, and fun!.
- [Android Architecture Components](https://developer.android.com/topic/libraries/architecture) - Collection of libraries that help you design robust, testable, and maintainable apps.
- [Jetpack Navigation](https://developer.android.com/jetpack/compose/navigation) - Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app
- [Material Components for Android](https://github.com/material-components/material-components-android) - Modular and customizable Material Design UI components for Android.