Deddit

🗡️ Deddit demonstrates modern Android development with Hilt, Coroutines, Flow, Jetpack (ViewModel,Paging3), and Material Design based on MVVM architecture.

Functionality

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

API

Tech stack & Open-source libraries

  • Minimum SDK level 26
  • Kotlin based, Coroutines + Flow for asynchronous.
  • Hilt for dependency injection.
  • Jetpack
    • 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.
  • Architecture
    • 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.

Video Walkthrough

Deddit

Deddit.mp4

Architecture

Deddit is based on the MVVM architecture and the Repository pattern.

architecture

GitHub

View Github