Reddit App
Setup
- Build the project
- gets top post from reddit and displays different media(GIF.VIDEO,IMAGE).
- Enable user to add/remove a post to favourites and retrieve
Tech-stack
-
Tech-stack
- Kotlin - a cross-platform, statically typed, general-purpose programming language with type inference.
- Rxjava - RxJava is a Java VM implementation of ReactiveX a library for composing asynchronous and event-based programs by using observable sequences. The building blocks of RxJava are Observables and Subscribers.
- livedata - is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services. This awareness ensures LiveData only updates app component observers that are in an active lifecycle state.
- Hilt - Hilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project.
- Retrofit - A type-safe HTTP client for Android.
- Jetpack
- Room - a persistence library provides an abstraction layer over SQLite.
- Lifecycle - perform action when lifecycle state changes.
- ViewModel - store and manage UI-related data in a lifecycle conscious way.
- Jetpack Navigation - Implement navigation, from simple button clicks to more complex patterns, such as app bars and the navigation drawer.
-
Architecture
- MVVM - Model View View Model
-
Plugins
- Detekt - a static code analysis tool for the Kotlin programming language.
-
CI/CD
- Github Actions
-
Tests
- Unit Tests (JUnit) - a simple framework to write repeatable tests.
- MockK - mocking library for Kotlin
- Truth - Truth makes your test assertions and failure messages more readable.