Native List ANE for large scrolling lists
We are currently investigating the possibility of building a new ANE to handle large scrolling lists using native components.
Large lists in AIR can be slow and problematic. the Feathers library has a very good implementation which works well, however it's not quite as fast as native lists and not everybody uses Starling & Feathers for their apps.
As such we'd like to develop an ANE to let developers utilise native UI (such as the UITableView on iOS) to achieve the best performance for long lists of data.
What we need from you is votes for this idea, to make sure it's worthwhile, and also feedback on how developers would like the ANE to function.
We want to provide as much customisation for the UI as possible, while keeping it simple to use.
If you're interested in this ANE - please vote here, and post a comment to let us know what features you would like to see.
Erik Thomas commented
First, sounds like an excellent idea!
We make extensive use of item renderers in lists. How would that work using native? We'd need to be able to style the content to include images, text, in specific layouts able to wrap text, or truncate text, etc.
Also, a means of updating content live, for example, if the content of an item changes, we could perhaps find the item and update the content for that one item and have it update in the list.
Also, use gestures need to trigger event handlers, like a user tap on an item, or a swipe left or right, etc.
If this can be done somehow with anywhere near the flexibility we have in Flex/AIR it would be fantastic. And I don't care if the "way" it's accomplished is completely different, just if it can be done at all. We have spent a lot of time optimizing item renderers to maximize speed and are not satisfied with list scroll performance in AIR.
Phillipe Murray commented
this will me awesome!!! +1
custom and dynamic fields its a must!
it is really useful in my app
It would be the best ane! Great idea...
This one would be awesome.
Yeah! Would be handy!
PLEASE!!! GOOD IDEA... BETTER FEATURE... IT WILL BE AWESOME!!!
Would be awesome
No we do not yet have a UITableView ANE, that's what this idea is about :)
Santanu Karar - Web Spiders commented
Does Distriqt has any UITableView ANE?
司宗儒 Max Sz commented
That is good, I think it is a usefull ane.
One nice feature would be to have one or more columns, so that we could choose to get an overview of multiple elements at once while sliding, or a more detailed view on each element. This is very usefull with square shaped items like instagram images.
If would be possible to manage the graphic, design and content of the items contained into this list, like it was a "normal" as3 component, then for sure would be a massive usefull ane!
Yeah the idea isn't really to provide a list that is completely customisable such as Feathers lists. It's really about creating a simple cross-platform implementation to create basic lists that run quickly.
That said, if we do build it, hopefully our implementation will be flexible enough that developers can build complex renderers if they want to.
Regarding multi-column select dialogs, we do support the time/date pickers now in the Dialog ANE. If you're talking about a completely customisable multi-column select dialog, perhaps create a new idea for it and if it gets enough votes we could prioritise that.
I think native lists is a great idea. There is a time and a place for them, and I don't think you need to get too in-depth with the layout. If you're UI requires very complex item renderers then a list probably isn't the best UX decision anyway. If we can style colours/fonts and have minimal components as part of the item renderer e.g. buttons I think that would suffice.
Are you thinking about doing multi-column pickers (the iOS time picker is a good example)?
Let me know if you need help testing ;)
Thanks for the comments so far guys.
We recognise that this ANE would not be suitable for all types of projects, but we're interested to know if people would have a use for it. If we have enough interest we will look into developing it properly.
Here's some responses:
1. Customisation of layout/appearance
Firstly, the customisation won't be as full-featured as the Feathers implementation, but will be as powerful as possible.
We're currently looking at ways we could implement this so that you can define custom layouts using a set of predefined components.
For example, possible components could include images, labels and buttons, with the ability to customise the size and position of each component in the item renderer (optionally using percentages). Each component would also have a set of available properties such as colour, font size, etc.
Custom fonts will be supported, you will just need to link these correctly. You'd also be able to just use any font included in the native SDK (there are a lot on iOS).
This is an unknown right now but it's very likely you won't be able to place Flash display list elements above the native list.
We know that the element will need to animate, for example sliding out on a screen transition. We'll investigate how we can allow some animation so that you could effectively tell the list to animate when you need to change views etc.
Maarten Cammaert commented
Most of our apps are built with the Flex framework and for some lists we have complex itemrenderers with buttons, images, custom fonts, etc so support for flex and complex lists with custom events and skinning options is important for us.
I've been using Feathers for quite some time, but if there's an option of having fast native lists, I'd use it. As long as customisation/skinning options are on par with Feathers.
Feathers lists are cool, but not as good as native lists, and the major issue is the direct rendering mode context loss when using native elements like camera. The good news is that the Iphone 5, 5c and 5s CPU are strong enough to power most of apps in cpu mode, but it lacks of a good list component with clean cell rendering, and memory optimisation, so why don't go native on this...
Harald Halbig commented
I don't really like the idea. How would custom renderers that match the look & feel of the non-native UI including graphics, fonts etc. work? What if the list is part of a transition or has to support overlays?