A modern Android application for browsing GitHub user profiles and repositories.
Built with a focus on maintainability, scalability, and great user experience, the app leverages the latest Android development tools and best practices.
- GitHub User Search: Easily search for any GitHub user.
- User Profile Details: View a user’s profile information, including bio, followers, and public repositories.
- Repository List: Browse through a user’s public repositories with key details.
- Theme Customization:
- 🌙 Dark Mode: Comfortable, eye-friendly theme for low-light environments.
- 🎨 Dynamic Mode: Adapts to the user’s device wallpaper (Material You on Android 12+).
This project is built using a robust and modern stack to ensure high quality and scalability:
- Jetpack Compose → Modern declarative UI toolkit.
- Clean Architecture → Separation of concerns into presentation, domain, and data layers.
- MVVM → Keeps UI and business logic independent.
- Modularization → Organized modules for faster builds and scalability.
:core→ Reusable/common code.:features→ Parent module containing feature-based modules::feature_name_data→ Data layer for a feature.:feature_name_domain→ Domain layer for a feature.:feature_name_presentation→ Presentation/UI layer for a feature.
:shared-test→ Shared testing utilities.
- Dagger Hilt → Dependency injection.
- Moshi → JSON parsing.
- Retrofit → HTTP client for GitHub REST API.
- Coroutines & Flow → Asynchronous programming & reactive streams.
git clone https://github.com/stanleymesa/GithubUsers.git
cd GithubUsersThe app requires a GitHub Personal Access Token to make API calls. You can generate one by following these steps:
Go to your GitHub account Settings.
Navigate to Developer settings > Personal access tokens > Tokens (classic).
Click Generate new token.
Give it a name (e.g., "Github Users App Token") and set the expiration.
The token does not require any specific scopes.
Copy the generated token. You will only be able to see it once.
In the root directory of the project, create a file named
local.properties.Add the following line to the file, replacing
ghp_your_tokenwith the token you copied:github.api.token=ghp_your_token
Open the project in Android Studio.
Let Gradle sync all dependencies.
Run the app on an emulator or a physical device.