https://github.com/hossein69ameri/githubusers
https://github.com/hossein69ameri/githubusers
android di kotlin navigation-component singleactivity
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/hossein69ameri/githubusers
- Owner: hossein69ameri
- Created: 2023-02-06T16:03:22.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-07-20T13:43:10.000Z (almost 2 years ago)
- Last Synced: 2025-04-09T02:12:24.634Z (2 months ago)
- Topics: android, di, kotlin, navigation-component, singleactivity
- Language: Kotlin
- Homepage:
- Size: 200 KB
- Stars: 10
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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 practicesUsing this app you can search for users and See the details of a user and add him to your favourites
# Screen Shot|
|
![]()
# Features
100% KotlinMVVM 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
**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