Scrolling list


I have just released an app written in Juce. The app is an update to an existing app that was written native for iOS and Android. I have rewritten the app so everything is now Juce. Part of the app UI is a scrolling list and we get really really bad reviews since scrolling is very slow/jittery/bad. I have tried using the ListBox and also a lot of other experiments but none seems to work well.

Has anyone managed to create a proper working scrolling list for Android using Juce? (showing i.e. a text and picture for each element)

Will there be any improvment regarding this issue with Juce 4?

Best regards

John Parbo Andersen

After the V4 launch a feature we'll do pretty soon will improving scrolling using some image caching tricks. But in the meantime, you can often speed things up quite a bit just by profiling your app and looking for places where it's doing unnecessary work.

Hi Jules

Thank you for the quick response. I will double check the performance, but even with a very simple test app it is difficult to get a good performance on a scrolling list and it is my experience that customers expect it to behave exactly like native ones. 

Looking forward to check out the image caching tricks.

Best regards


Hi Jules. Any news on the images caching tricks?

Ah no, sorry, that one got squeezed out by other priorities…

I think for now you will need to find a way to use a native view for this part of your app. I’ve made an example project showing one approach to doing this:

I’m now working with React Native to do the native parts of my app. One of my next steps is getting JUCE + React Native working on Android so I should have something to share on that soon.

1 Like

Hi Adamski. Thank you very much for your input. I will have a look at your native navigation example on github. You write that you are working on getting Juce + React Native working on Android, what about iOS and React Native. Do you have any experience with that? Any input you have on React Native is highly appreciated. I think it looks promising, and is considering using it for our next app. Thanks

Yes I have been working almost exclusively with iOS and React Native, and about to port my app to Android.

Ok Thanks
I am trying to build the native navigation example from github. Get a few errors in MasterViewController.swift and JuceViewController.swift: "Use of undeclared type ‘DataControllerObjC’. Also in there is an include for a file named NativeNavigation-swift.h. I can’t find this file? Hope you can help.

I just found out that is was an issue with the bridging header file after I saved the project from the ProJucer.
Had to add it again from the Swift compiler settings.

1 Like

Yes the bridging header thing can be a pain - I found, after each time saving in Projucer, I had to delete the Swift files from Xcode and then add them again, at which point Xcode recognises them as Swift files and only then uses or creates the bridging header. Doing it in Objective-C would make this simpler, but I wanted to try Swift which is a much nicer development experience.

Hi Adamski. I have good progress building an app with mixed native/Juce code based om your example. I have added a few more pages and some Juce buttons. This works as usual in Juce. I have also added a texteditor and I have an issue with this, since the native keyboard (iOS) does not show up when you tap the text editor. I tried to add the same texteditor to your example project and the issue is also present here. Any ideas? Thanks a lot.

@JohnParbo sorry, I haven’t tried using a TextEditor within a JUCE component in this context, I’m doing text editing outside JUCE / using native components. You’d have to dig into JUCE to debug this issue.