jerboa
jerboa copied to clipboard
Scrolling seems to sutter/lag on latest version (0.0.32)
This suttering/lag/jerkyness shows itself on both posts and comments, this is running on a Samsung a32
I checked logcat but unfortunately I am seeing no errors about jerboa, I do see an related scroll warning come up which I will link below.
I am also willing to put a $50 usd (monero) bug bounty on this for whoever can fix this issue.
This seems to be just slowness with jetpack compose. I've tried a lot of things to make it better, adding keys to the LazyLists, hiding the scrolling indicators, etc, but nothing seems to make it much better.
Upping the bug bounty to $100 usd
Is the UI meant to be recomposed when scrolling?
I believe so yes, lazycolumn loads new content dynamically.
It should also be noted that this is being triggered when scrolling back over existing comments that have been previously loaded
@oscarnylander is it possible that downgrading that android gradle plugin AGP
made performance worse?
Granted, scroll-stuttering was still an issue before that.
I'd consider it to be pretty unlikely. I guess profiling a build with the alpha-variant versus a build without would reveal whether it's the case, though.
Dumb question as I'm not super familiar with Jetpack Compose/Android app dev, but should there be a Debug and Release build profile of some kind, the latter turning on all optimisations and removing debug symbols/aids etc?
Edit: This is what I'm referring to: https://developer.android.com/studio/run#changing-variant
From what I can tell, the default app build profile is just using 'debug'. Perhaps the build process for generating the APK uses 'release', but I'm not sure. One of the project admins might know.
There's more info here too: https://developer.android.com/jetpack/compose/performance
You are correct, debug builds will affect performance a lot as far as Compose is concerned.
I'd assume that the final build that makes it out to release channels already is built using a release configuration, though.
Going from the stable 0.0.33 to the latest 0.0.34 build introduced a ton of lag and jerky scrolling too.
I think someone needs to do some profiling in Android Studio while scrolling in Jerboa, and spend some time going through the results to see if there's any way we can reduce the amount of composition/layout going on.
There's some good docs on the subject here:
https://developer.android.com/jetpack/compose/performance https://developer.android.com/jetpack/compose/phases
Unfortunately I don't think there's going to be a quick fix - it'll likely be death by a thousand cuts causing the lag, so will probably require lots of little optimisations to existing code to make it more efficient. Hopefully there's a little bit of low hanging fruit though.
I don't know if this is worth anything but since this is such a diffuse issue I'll try to collect reports of users with their Device and Android version. Maybe it shows a pattern
Device | Android version | Jerboa version | Comment |
---|---|---|---|
Xiaomi Mi A2 Lite | 13 | 0.0.34 | Scrolling not smooth |
Samsung S21 | ? | ? | Butter smooth |
Galaxy Tab S8 Plus | ? | ? | Butter smooth |
OnePlus One | LineageOS 18.1 (Android 11) | 0.0.34 | Scrolling is laggy |
Galaxy Tab S6 | Android 12 | 0.0.34 | Super laggy |
Scrolling is laggy (but usable) on 0.0.34 on Android 8.1 on Xiaomi Redmi 4 Prime
Not sure how to help but wanted to add that it lags a lot on s22+ snapdragon variant.
Any updates on this? This is my main problem with Jerboa, it just makes it uncomfortable to use the app.
Also, I'm on a Oneplus 7T Pro with LineageOS for microg 20.0.
Also happens on a Pixel 8 Pro on CalyxOS. This makes the app unusable for me.
What version?
Happens on 0.0.55, happened to me ever since I first tried this app in July. I checked if the bug was gone every now and then but nothing fixed it. This makes jerboa unusable for me.
I'm using jerboa on multiple android devices, with different android versions. This seems like it would affect every single jetpack-compose app that uses LazyLists for specific android versions / OSs.
Could you post a video?
Here you go. This only happens to me with jerboa and it happens on both my phones.
https://github.com/dessalines/jerboa/assets/42916911/fe4933d7-f6dc-403b-b2ad-d9aef4f18b3f
Stale issue. Can re-open if we find specific cases, but we're mostly limited by jetpack compose's lazylist.