Skip to content

Deddit is a modern Android application that showcases the latest technology in Android development including Hilt, Coroutines, Flow, Jetpack (ViewModel, Paging3), and Material Design. The app is based on the MVVM architecture pattern and offers a range of features such as the ability to explore memes from Reddit, apply filters.

Krish-Parekh/Deddit

Repository files navigation

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.
    • DataStore - DataStore preference is a data storage solution. It allows us to store key-value pairs (like SharedPreferences)
  • 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

About

Deddit is a modern Android application that showcases the latest technology in Android development including Hilt, Coroutines, Flow, Jetpack (ViewModel, Paging3), and Material Design. The app is based on the MVVM architecture pattern and offers a range of features such as the ability to explore memes from Reddit, apply filters.

Topics

Resources

Stars

Watchers

Forks

Languages