This is a typical test task that employers often request - show list on a 1st screen and by clicking on any item show 2nd screen with detailed information.
This app has been created for testing of difference between RecyclerView (XML View) and LazyColumn ( Jetpack Compose). I've never tested this performance difference by myself, I only heard from Google that Compose much better than XML View.
All the results I've got I copied into directory /benchmark-results
(included *.perfetto-trace
files)
There are 5 modules in the app:
- app-compose - only UI with Composable functions
- app-view - only UI with Fragments and XML Layouts
- share - for everything else (from Retrofit interface to ViewModels)
- benchmark-compose - testing Compose build
- benchmark-view - testing View build
The app works with GitHub REST API
- Get list of GitHub users (request: https://api.github.com/users)
- By clicking on Icon button for expanded load list of repositories ( request: https://api.github.com/users/{userLogin}/repos (for example: defunkt))
- By clicking on any GitHub user show screen with detailed information ( request: https://api.github.com/user/{userId} (for example: 2))
fun sturtup()
- Cold startupfun scrollReposList()
- Get list from internet and scroll downfun clickOnExpandedButton()
- Get list from internet, click on expanded button, wait for loading, click on expanded buttonclickToDetails()
- Get list from internet, click on item, wait for loading, scroll down
- Speed of cold boot
- Speed of rendering list items
- Kotlin
- Hilt
- Navigation
- Retrofit
- Coil
- Benchmark