This project show the list of Users of Github using Github REST API Apis and show details of each user.
The apk version of the application is available through this link
Notice: To use this source code, you must first get your access token through your user panel in GitHub and place it in the APP_TOKEN field in the gradle.properties file.
Below is a list of features I used:
-
Kotlin: Kotlin is a statically-typed, cross-platform language with functional and object-oriented features for efficient and expressive app development.
-
MVVM + CLEAN Architecture: MVVM and Clean Architecture enhance app scalability, maintainability, and testability through user-centered modular design and separation of concerns.
-
Jetpack Compose: Jetpack Compose streamlines Android UI development with a modern, reactive, and intuitive toolkit.
-
Navigation Compose (Single activity, zero fragments): Navigation Compose simplifies Android app navigation with a declarative and composable API.
-
Kotlin Coroutines + Flow: Coroutines and Flow are tools for asynchronous programming in Kotlin that provide a lightweight, efficient, and structured way of managing concurrency and handling sequential and parallel streams of data.
-
Retrofit + OkHttp: Retrofit simplifies HTTP calls on Android and Java with type-safety and automatic response parsing.
-
Room: Room is an Android library that simplifies SQLite database access with type-safety and automatic caching.
-
Hilt Dependency Injection: Hilt simplifies Android dependency management with Dagger and support for Android components.
-
Unit Testing: Unit Testing verifies software components work as intended with automated tests.
-
Data Store: Data Store simplifies data storage and retrieval on Android with a unified API and consistent behavior across devices.
Model-View-ViewModel (MVVM) is a design pattern used in mobile app development that separates the presentation layer from the business logic and data model. This pattern enables a clean separation of responsibilities and facilitates easier testing and maintenance of the code. MVVM is commonly used with the Clean Architecture pattern, which is a modular approach to software design that emphasizes separation of concerns and promotes testability, maintainability, and scalability.