An open API service indexing awesome lists of open source software.

https://github.com/hossein69ameri/githubusers


https://github.com/hossein69ameri/githubusers

android di kotlin navigation-component singleactivity

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

# GitHubUsers
GitHubUsers is a sample Android project using [GitHub Rest API](https://docs.github.com/en/rest?apiVersion=2022-11-28) based on MVVM architecture. It showcases the latest Android tech stacks with well-designed architecture and best practices

Using this app you can search for users and See the details of a user and add him to your favourites
# Screen Shot
| |

# Features
100% Kotlin

MVVM architecture

Android Architecture Components

Navigation Component

Kotlin Coroutines

KotlinFlow + StateFlow

Single activity pattern

Dependency injection

# Tech Stacks
[Retrofit](https://square.github.io/retrofit/) + [OkHttp](https://square.github.io/okhttp/) - RESTful API and networking client.

[Hilt](https://dagger.dev/hilt/) - Dependency injection.

[RoomDB](https://developer.android.com/training/data-storage/room) - Save data in a local database using Room.

[Material Design](https://m2.material.io/components) - Material Components are interactive building blocks for creating a user interface.

[ViewBinding](https://developer.android.com/topic/libraries/view-binding) - View binding is a feature that allows you to more easily write code that interacts with views

[Android Architecture Components](https://developer.android.com/topic/libraries/architecture) - A collections of libraries that help you design rebust, testable and maintainable apps.

[ViewModel](https://developer.android.com/reference/androidx/lifecycle/ViewModel) - UI related data holder, lifecycle aware.

[Navigation component](https://developer.android.com/guide/navigation) - Fragment routing handler

[Coroutines](https://developer.android.com/kotlin/coroutines) - Concurrency design pattern for asynchronous programming.

[Flow](https://developer.android.com/kotlin/flow) - Stream of value that returns from suspend function.

[Coil](https://github.com/coil-kt/coil) - Image loading

# Architectures
![alt - Github](https://raw.githubusercontent.com/amitshekhariitbhu/MVVM-Architecture-Android/master/assets/mvvm-arch.png)

**View** : Activity/Fragment with UI-specific logics only.

**ViewModel** : It keeps the logic away from View layer, provides data streams for UI and handle user interactions

**Model** : Repository pattern, data layers that provide interface to manipulate data from both the local and remote data sources. The local data sources will serve as single source of truth

# Contact
Have an project? DM me at

[email protected]