Demo Project with Jetpack Libraries showing Github users list and user details.
- MVVM
- Clean-Architecture
- Kotlin - %100 Kotlin
- Gradle Kotlin DSL
- Coroutines for asynchronous operations
- StateFlow
- Lifecycle-ktx
- ViewModel
- Navigation
- Paging 3 for paging in user list
- Data Store to store key-value pairs
- Dagger Hilt for Dependency Injection
- Retrofit for network operations
- Glide for image loading
- Github Api for users
- JUnit4 for Unit testing
- MocKK for mocking in Unit testing
- Espresso for Android UI testing
- JaCoCo for testing code coverage report
- LeakCanary for memory leak detection
- Create a Giithub App first and get your keys then add these lines in your local.properties and use it with Secrets Gradle Plugin
apiUrl=https://api.github.com/
domainUrl=https://github.com/login/oauth/access_token
oauthLoginURL = https://github.com/login/oauth/authorize
redirectHost = YOUR_HOST (example: if your redirect Uri of github app is like myhost://myscheme)
redirectScheme = YOUR_SCHEME
clientID = YOUR_CLIENT_ID
clientSecret = YOUR_CLIENT_SECRET
- Now Build your project and Run
- Update the UI to Jetpack Compose
- Add load state in paging list
- Add more details of user
- Add sliding panel for user details
- Make the app multi module
- Make the app offline first
- Upgrade test coverage