Skip to content

bshpanchuk/TestRedditAPI

Repository files navigation

Test App Reddit API

Test App Android Junior to display Reddit API it has been built with clean architecture principles, Repository Pattern and MVVM pattern as well as Architecture Components.

Build System : Gradle

Table of Contents

Task requirements

  • App show be able to shows th top 50 entries from RedditApi
  • Pagination
  • Detailed post preview (opening URL would be enough)
  • Kotlin
  • RecyclerView
  • Chrome Tabs
  • MVP/MVVM architecture + Repository pattern
  • Retrofit 2 + RxJava / RxJava2
  • Some kind of error handling
  • Database storage

Architecture

The purpose of this repo is to follow up Clean Architecture principles by bringing them to Android.

Branches

  • master - Pagging + Rx Flowable
  • toFlow - Pagging + Kotlin Flow

Libraries

Libraries used in the whole application are:

  • Jetpack🚀
    • Viewmodel - Manage UI related data in a lifecycle conscious way and act as a channel between use cases and ui
    • View Binding - feature that allows you to more easily write code that interacts with views
    • Room - provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite
    • Paging 3 - helps you load and display pages of data from a larger dataset from network
  • Retrofit - type safe http client and supports coroutines out of the box
  • Gson - JSON Parser,used to parse requests on the data layer for Entities and understands Kotlin non-nullable and default parameters
  • okhttp-logging-interceptor - logs HTTP request and response data
  • kotlinx.coroutines - Library Support for coroutines
  • Material Design - build awesome beautiful UIs
  • Koin - A pragmatic lightweight dependency injection framework for Kotlin
  • ViewBindingPropertyDelegate - Make work with Android View Binding simpler
  • RxJava2 - implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by using observable sequences
  • Glide - fast and efficient open source media management and image loading framework for Android

Demo

https://streamable.com/a22j4i

License

  Copyright 2021 Bohdan Shpanchuk
  
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

About

Test App Reddit API (Android Junior)

Resources

Stars

Watchers

Forks

Languages