Giter Club home page Giter Club logo

gameskeeper's Introduction

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.

gameskeeper's People

Contributors

musfick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.