A sample project demonstrating the use of the latest design patterns, libraries, architecture and more.
It fetches data from Github search and user details APIs and show it to the user in the list and detailed screens. A searched user can be starred from the list or the details screen and the data will be saved in the local database. A user profile can be shared or open in a browser from the details screen.
- Coroutine - Doing work asynchronously
- Flow - Getting results from asynchronous workers as soon as they're available
- HILT - Dependency injection
- Navigation - Moving between activities and fragments
- Paging - Load data in small chunks as user scroll list
- Room - Saving user data on device locally
- Retrofit2 - REST Client for Android and Java
- Okhttp3 Logging Interceptor - An OkHttp interceptor which logs HTTP request and response data (used with Retrofit)
- Moshi - To convert Java objects to JSON and back (used with Retrofit)
- Espresso - Easy, concise and powerful UI testing
- MockK - Mocking library for Kotlin
- Truth - Fluent assertions for Java and Android
- Turbine - Kotlin flow testing made easy
- Glide - Fast and efficient image loading
- Timber - Logger with a small, extensible API providing utility on top of Android's normal Log class
Updates will include incorporating additional Jetpack components and updating existing ones as the component libraries evolve.
Interested in seeing a particular feature? Please open a new issue.
MIT License (https://opensource.org/licenses/MIT)
Copyright (c) 2023 Shahrukh Ahmed Siddiqui
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
This project is authored and maintained by shahrukhamd.