🗡️ Deddit demonstrates modern Android development with Hilt, Coroutines, Flow, Jetpack (ViewModel,Paging3), and Material Design based on MVVM architecture.
The following functionality is completed:
- Explore Memes from reddit
- Apply filter to enjoy best subreddits
- Notification using Firebase Cloud Messaging
- Paginating data
- Download and Share your meme
- Meme API : https://github.com/D3vd/Meme_Api
- Firebase Cloud Messaging API : https://fcm.googleapis.com/fcm/send
Tech stack & Open-source libraries
- Minimum SDK level 26
- Kotlin based, Coroutines + Flow for asynchronous.
- Hilt for dependency injection.
- Lifecycle – Observe Android lifecycles and handle UI states upon the lifecycle changes.
- ViewModel – Manages UI-related data holder and lifecycle aware. Allows data to survive configuration changes such as screen rotations.
- DataBinding – Binds UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
- Paging3 – It has support for requesting the next page to load more data automatically.
- Work Manager – WorkManager is intended for tasks that require a guarantee that the system will run them even if the app exits.
- MVVM Architecture (View – DataBinding – ViewModel – Model)
- Repository Pattern
- Retrofit2 & OkHttp3 – Construct the REST APIs.
- Moshi – A modern JSON library for Kotlin and Java.
- Glide – Loading images from network.
- Material-Components – Material design components for building ripple animation, and Cardview
- Shimmer-Layout – The motive of using the Shimmer layout is to inform the user that the structure is currently loading.
- Lottie – Lottie file is a JSON-based animation filet that enables developers to implement animations on any platform as easily as implementing static assets.
Deddit is based on the MVVM architecture and the Repository pattern.