Skip to content

winter-love-dev/GithubApp

Repository files navigation

GithubApp

This is a simple project that uses 'Views UI' and 'Jetpack Paging3'.

And use GitHub Rest API



Some screen recording

Search Github User Infinite Scroll Like User

Tech Stack

Kotlin Version License

All library info : libs.versions.toml

  • AAC-ViewModel Combined with the screen, it maintains screen state and handles UI state and screen rotation events.
  • Coroutine Asynchronous Task. Used 'Flow' to make data flow and reflect it in the UI.
  • Jetpack
    • Hilt Dependency Injection
    • Room
      • Focused on implementing functionality by leveraging SQLite wrapped in an abstraction layer, and combined 'Flow' to implement UI interaction more easily.
    • Pagning3 is Load large datasets efficiently
      • PagingSource is Load network data to make pagination
      • RemoteMediator - Apply Cache Process with Room
    • Network by okhttp3 + retrofit2

Architecture

Multi Module Architecture, Reference by android/nowinandroid

Domain Layer, Reference by Domain Layer Docs


Work Focused

  • Define feature specification
  • Programming on the repository layer or feature layer, By domain layer specification.
  • Programming in ‘UseCase’ units
  • And code abstraction

RemoteMediator is use 'Paging3 + Room'.

It helps you navigate apps smoothly even in unstable internet environments. remote_mediator_architrecture


MVVM Design pattern with Dependency Injection, Reference by App Arhitecture Guide

mvvm_example



How to launch this project

create your access token

and input your access token in 'local.properties'

howtostart

License

Copyright 2023 winter-love-dev

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

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages