- Kotlin as the base language.
- Retrofit to fetch data from API.
- Dagger Hilt as Dependency Injector.
- MVVM with Clean architecture.
- Jetpack Compose for UI.
- Jetpack Navigation Compose for Navigation.
- Coil Compose for remote Image management.
- Splash Screen API for Splash Screen.
- Mockito for Mocks.
This is a simple application which uses internet permission in order to fetch user details from Github public API.
The flow is as following:
- On Start Up, the Splash Screen with animation is loaded.
- After that, you will see an empty screen with default text suggesting you to search for an ID.
- On the same page i.e. Home Page, the user can also enter any other UserId in the TextField and click on Search button to fetch that user's Github details.
- If you click on any of the Repositories, then you will navigate to a new Compose Screen where details related to that repository is disaplyed.
- There are two buttons provided on this screen: 1. Visit Repository 2. Go Back.
- Visit Repository: This will open Github application as a Deeplink and navigate directly to the repository (if Github application is installed), else it will open the same in browser.
- Go Back: This will simply close the detail screen and go back to home screen.
Negative cases which are covered:
- If user clicks on Search button without entering anything in the TextField, an error will be shown.
- If there is no internet or the response fails, the corresponding error message will be shown.
This is the first screen which is displayed to the user. The Repository list is a scrollable list.
This is a repository details screen. In this, you can scroll the properties related to the repository and view the things such as stars, forks, language used along with 2 aforementioned buttons