Skip to content

[In progress...] 🎮 Android GamesKeeper using Hilt, Coroutines, DataStore, Flow, Retrofit2, Jetpack ( Room, ViewModel, LiveData, Paging3 ) based on MVVM architecture.

Notifications You must be signed in to change notification settings

Musfick/GamesKeeper

Repository files navigation

Games Keeper 🎮

[In progress...]An Android app consuming a RAWG Video Games Database API to display tranding games it has been built with clean architecture principles, Repository Pattern and MVVM pattern as well as Architecture Components.

Min Api Level : 21 Supports Over 87% Devices


Overview

Pagination Perallel Request Error Handle

API

Go to the Explore RAWG Video Games Database API to explore api.

Tech stack & Open-source libraries

  • 100% Kotlin based, Coroutines + Flow for asynchronous.
  • BaseActivity - for activity code reuse.
  • BaseFragment - for fragment code reuse.
  • BaseRecyclerViewAdapter - for recyclerview code reuse.
  • BaseDao - for dao code reuse.
  • Hilt (alpha) for dependency injection.🗡️
  • JetPack🚀
    • View Binding - View binding is a feature that allows you to more easily write code that interacts with views.
    • LiveData - notify domain layer data to views.
    • Lifecycle - dispose of observing data when lifecycle state changes.
    • ViewModel - UI related data holder, lifecycle aware.
    • Room Persistence - construct a database using the abstract layer.
    • DataStore - dataStore uses Kotlin, Coroutines and Flow to store data asynchronously with consistency and transaction support 😍
    • Advanced Navigation Component - bottom navigation with navigation component
    • Paging 3 - paging library helps you load and display pages of data from a larger dataset from local storage or over network.
  • Retrofit2 & OkHttp3 - construct the REST APIs and paging network data.
  • Gson - Gson is a Java library that can be used to convert Java Objects into their JSON representation.
  • coil - an image loading library for Android backed by Kotlin Coroutines.
  • okhttp-logging-interceptor - logs HTTP request and response data.
  • kotlinx.coroutines - Library Support for coroutines,provides runBlocking coroutine builder used in tests
  • Youtube Player - android-youtube-player is a stable and customizable open source YouTube player for Android.
  • jsoup - jsoup is a Java library for working with real-world HTML
  • SmartTabLayout - A custom ViewPager title strip which gives continuous feedback to the user when scrolling
  • Timber - logging.
  • Truth - Assertions Library,provides readability as far as assertions are concerned

Architecture

  • MVVM Architecture (View - DataBinding - ViewModel - Model)
  • Repository pattern

MAD Score

Testing

[In progress...]

Contributors

Feel free to contribute in any way to the project from typos in docs to code review are all welcome.

License

  Copyright 2021 Musfick Jamil
  
  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

[In progress...] 🎮 Android GamesKeeper using Hilt, Coroutines, DataStore, Flow, Retrofit2, Jetpack ( Room, ViewModel, LiveData, Paging3 ) based on MVVM architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages