Git Product home page Git Product logo

githubusers's Introduction

GithubUser

License API Issues Linkedin

GithubUsers demonstrates modern Android development with Clean Architecture using Jetpack Compose, Hilt, Coroutines, Flow, Room, ViewModel, and Material Design based on MVVM architecture.

Report Bug · Request Feature

Screenshots

1 2

Download

Go to the Releases to download the latest APK.

Tech stack & Open-source libraries

  • Minimum SDK level 26
  • Kotlin based, Coroutines + Flow for asynchronous.
  • Jetpack
    • Compose: Modern toolkit for building native UI
    • Lifecycle: Observe Android lifecycles and handle UI states upon the lifecycle changes.
    • ViewModel: Manages UI-related data holder and lifecycle aware. Allows data to survive configuration changes such as screen rotations.
    • Room: Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
    • Hilt: for dependency injection.
  • Architecture
    • Clean Architecture
    • MVVM Architecture (Model - View - ViewModel)
    • Repository Pattern
  • Compose Destination: A KSP library that processes annotations and generates code that uses Official Jetpack Compose Navigation under the hood.
  • Retrofit2 & OkHttp3: Construct the REST APIs and paging network data.
  • Sandwich: Construct a lightweight and modern response interface to handle network payload for Android.
  • Moshi: A modern JSON library for Kotlin and Java.
  • ksp: Kotlin Symbol Processing API.
  • Material-Components: Material design components for building ripple animation, and CardView.
  • Landscapist: Image loading library for compose using Glide, Coil, and Fresco.
  • Timber: A logger with a small, extensible API.

Getting Started

To set up a local copy of the project and get it runs smoothly on your machine, you can follow these easily accomplished straightforward steps:

Installation

  1. Get a Github Token at Github
  2. Clone the repo
git clone https://github.com/ariastro/GithubUsers.git
  1. Enter your Github Token in local.properties
GITHUB_TOKEN = "YOUR_TOKEN"
  1. Sync Project and Build Project
  2. Enjoy!

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Why MVVM?

MVVM (Model-View-ViewModel) remains a popular architectural pattern for Android development for several reasons:

  • Separation of Concerns: Separation of concerns is an important principle of software development. It allows you to focus on one aspect of a problem at a time, which makes it easier to reason about complex systems. MVVM helps you separate concerns by keeping your UI code separate from your business logic code.
    • Model (Data): Represents the data and business logic.
    • View (UI): Represents the UI components.
    • ViewModel: Acts as a mediator between the Model and the View. It holds and manages the UI-related data needed by the View and handles user interactions.
  • Maintainability & Testability: The separation of concerns that MVVM provides makes your code simpler to maintain and test. You can replace one piece of code without affecting another.
  • Reusability: ViewModel instances can be more easily reused across different UI components. This is particularly useful in scenarios where the same data or logic needs to be displayed or used in multiple places.

Contact

Ari SWS - [email protected]

Project Link: https://github.com/ariastro/GithubUsers

Find this repository useful? ❤️

Support it by joining stargazers for this repository. ⭐
Also, follow me on GitHub for my next creations! 🤩

License

Copyright 2023 Ari SWS. All Rights Reserved.

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.

githubusers's People

Contributors

ariastro 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.