eclipsesource / tabris-js

Create native mobile apps in JavaScript or TypeScript.
https://tabrisjs.com
BSD 3-Clause "New" or "Revised" License
1.4k stars 170 forks source link

Problem with CollectionView Part 1 #2143

Open ishigo1987 opened 3 years ago

ishigo1987 commented 3 years ago

Problem description

Hello everyone, i noticed 3 problems on TabrisJs CollectionView. this is the first problem

Since version 3.4+ the CollectionView is not as fast as before, there's clearly a loss of performance, I compared my collectionView of image and text list (the picture below) and it's much slower than the collectionview of applications like Whatsapp, Telegram (which has the fastest CollectionView in the world), despite the optimizations made on my images (resizing to the exact dimensions of the view, etc...). please, please, please can you still optimize CollectionView(recycleView) on Android? it's one of the most used widgets in the world and it's a big weakness for Tabris.

Here are some links I found if it can help you on how to optimize RecyclerView and especially the source code of Telegram's RecyclerView, inside it mentions what makes it so fast.

https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main/java/org/telegram/ui/Components/RecyclerListView.java

https://stackoverflow.com/questions/44988515/recycler-view-laggy-behaviour (this link shows how Telegram fixed the problem of the first slow scroll on the RecyclerView)

https://heartbeat.fritz.ai/adding-fast-scroll-to-recyclerview-in-android-5a963e2b509d another link for scroll optimization on a RecyclerView. Screenshot_20210209-125145

Expected behavior

Fast recyclerView

Environment

ishigo1987 commented 3 years ago

https://user-images.githubusercontent.com/12398336/107476754-c7f57f80-6b76-11eb-905d-39aa269787aa.mp4

In this video you can see how fast Telegram's collectionView is, Tabris' collectionView can't even be half as fast, and it doesn't have the functionality of android fastScroll's recycleView, Which is amazing because we all know that TabrisJs is super fast for all the other widgets and operations