A modern Android application built with Jetpack Compose that allows users to search GitHub users and add them to a list of favorites. It utilizes the GitHub API and follows modern Android development best practices with a clean architecture.
- 🔍 Search GitHub users in real-time
- ⭐ Add or remove users from your favorites
- 📦 Persist favorites locally with Room
- 🖼️ Load user avatars efficiently with Coil
- 📱 Built with a fully Jetpack Compose-based UI
| Task | Estimated Hours |
|---|---|
| Initial design | 1 |
| Project codebase setup | 2 |
| Setting up Clean Architecture layers | 1 |
| Preparing the UI design | 2 |
| Setting up dependency injection (DI) | 1 |
| Implementing API integration | 1 |
| Setting up database and caching | 2 |
| Adding favorites functionality | 1 |
| Implementing navigation and UI logic | 2 |
| Bug fixing and refinements | 1 |
Total Estimated Hours: 14
The user interface was initially generated using Google’s Stitch AI, based on the project’s core requirements. The UI was refined and finalized in Figma, ensuring usability, accessibility, and visual consistency.
Figma link: https://www.figma.com/design/S7FlA0HTTwHe6Bb7rm1RAJ/Github-User-Search?node-id=0-1&t=QrRQH6s0Vr7DZMn3-1
- Jetpack Compose – Modern UI toolkit
- Kotlin Flows – Reactive data streams
- Coroutines – Asynchronous programming
- Room – Local database storage
- Retrofit – Networking and REST API handling
- Coil – Image loading
- Hilt – Dependency Injection
This app is built using a multi-module Clean Architecture structure and follows the MVVM (Model-View-ViewModel) design pattern.
core– Contains shared utilities and base componentsdata– Repository and API implementationsdomain– Business logic and use casespresentation– Compose UI and ViewModelsapp– Application layer for bootstrappingframework– acts as the bridge between platform-specific dependencies
- Presentation Layer: Jetpack Compose UI & ViewModels (with state management via Flows)
- Domain Layer: Use cases, business logic, and interfaces
- Data Layer: Repositories, local (Room), and remote (Retrofit) data sources
-
Clone the repository:
git clone https://github.com/hasbisevinc/GithubSearch.git
-
Open the project in Android Studio (Android Studio Meerkat Feature Drop | 2024.3.2 or higher).
-
Make sure you have an active internet connection to access the GitHub API.
-
Run the project on an emulator or a real device.