Skip to content

candalo/yarc

Repository files navigation

yarc (yet another reddit client)

yarc (yet another reddit client) is a simple Android app created to showcase some Android technologies. The app contains two screens: the first screen contains a list of posts from the android community subreddit and the second contains the selected post details.

Language and libraries used

  • Kotlin
  • Android Support
  • Android Material
  • OkHttp
  • Retrofit
  • Koin
  • Kotlin Serialization
  • Coroutines
  • Flow
  • Paging 3
  • View Binding
  • Glide
  • Navigation
  • Groupie
  • Markon
  • Mockk
  • Truth
  • JUnit5
  • MockWebServer
  • Espresso

Architecture

The application follow Google's recommended architecture. The main reason to follow this model instead of Uncle Bob's Clean Architecture is to avoid some unnecessary complexity from adding a domain layer, which doesn't make sense in this application context, for two reasons:

  1. The domain layer will only act as a proxy, not containing meaningful code;
  2. Less code, less bugs, less effort to fix the bugs that will emerge.

Requirements

  • JDK 1.8
  • Android SDK
  • Android 5.0 or greater

Setup

Execute the following commands in project root:

./gradlew installDebug - Install the debug apk on the current connected device

./gradlew test - Run all unit tests

./gradlew connectedAndroidTest - Run all instrumented tests

Showcase

Light theme

yarc-light-theme.mp4

Dark theme

yarc-dark-theme.mp4

About

yet another reddit client

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages