Skip to content

dev-ali-mansour/IReddit

Repository files navigation

IReddit

I used Clean Architecture to structure the application by separating it to 3 layers: Presentation, domain, and data. Each layer is in a separate module, So the application is modularized.




User can:

  • See a list of /r/aww posts
  • See more posts when scrolls to the end
  • See the image if post contains an image or gif
  • See an image with play icon if post contains video
  • Add post to favorite by clicking on add to favorites button in each item.
  • See a list of favorites
  • Remove items from favorites by swiping left or right.
  • Clear all favorites by clicking on the clear-all float action button.
  • Search for a post
  • See more posts when scrolls to the end search results
  • navigate to the post on reddit.com within the application by tapping on it.

Built With

  • Kotlin - As a programming language.
  • RXJava - For multithreading while handling requests to the server and local database.
  • Navigation Component - To handle app navigation.
  • Multidex - To enable creating multi dex files because of using set of libraries that reached the maximum size of single dex file.
  • Model-View-ViewModel(MVVM) - Offers an implementation of observer design pattern.
  • View Binding - It helps in decoratively binding UI elements of our layout to data source of our app.
  • Retrofit - It is a type-safe REST client for Android, Java and Kotlin developed by Square. The library provides a powerful framework for authenticating and interacting with APIs and sending network requests with OkHttp.
  • Room DB - To manage SQLite database easily and avoid a lot boilerplate code.
  • Glide - It is a fast and efficient open source media management and image loading framework for Android that wraps media decoding, memory and disk caching, and resource pooling into a simple and easy to use interface.
  • Timber - It helps in logging while debugging your app. and all logging code will not be embedded in the released APK.
  • Dagger 2 - It is arguably the most used Dependency Injection, or DI, framework for Android. Many Android projects use Dagger to simplify building and providing dependencies across the app. It gives you the ability to create specific scopes, modules, and components, where each forms a piece of a puzzle: The dependency graph.
  • Clean Architecture - Applying Clean Architecture and Solid Principles to build a robust, maintainable, and testable application.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published