DataGrid 2 (Including Faster Graphics in LiveCode)
The DataGrid has been available within LiveCode for many years and is at the heart of many data driven apps. It was originally designed for use on desktop and while it is successfully used in many mobile apps, there is a lot that we can add to it to make it truly mobile friendly. In doing so there will be a number of other benefits to the platform as a whole. The DataGrid is currently available in all editions of the platform and will continue to be. The resulting new DataGrid will provide a high performance, cross platform tool that takes full advantage of each platform's native feature set. It will more than rival the native List and Table views on Android and iOS while retaining support for all platforms (mobile, desktop and web).
DataGrid 2 (Including Faster Graphics in LiveCode)
Introduction
The DataGrid has been available within LiveCode for many years and is at the heart of many data driven apps. It was originally designed for use on desktop and while it is successfully used in many mobile apps, there is a lot that we can add to it to make it truly mobile friendly.
In doing so there will be a number of other benefits to the platform as a whole. The DataGrid is currently available in all editions of the platform and DataGrid 2 will continue to be.
The resulting new DataGrid will provide a high performance, cross platform tool that takes full advantage of each platform’s native feature set. It will more than rival the native List and Table views on Android and iOS while retaining support for all platforms (mobile, desktop and web).
Faster DataGrid Performance
The number one feature we get asked for is to improve performance of complex DataGrids on mobile. We will improve performance in two ways. First, we will rework the DataGrid code to be more efficient in the way that it creates, removes and caches objects.
Faster Graphics on All Platforms
We will add new features to the engine to support accelerated rendering within groups. This will benefit LiveCode’s graphic performance in a variety of real world situations, on all platforms including mobile, desktop and web.
To achieve this we will add a ‘container’ layerMode to groups. This will allow controls within groups to benefit from the same graphics performance boost as non-grouped controls when turning acceleratedRendering on.
For the DataGrid each row will become rendered as its own sprite within this new accelerated rendering, improving scrolling performance even on lower end hardware and allowing smooth animation of rows. These same improvements can also be used within any group that you create.
Native Scrollers
The DataGrid will use native scrollbars by default without need for any configuration. (It will continue to use the correct scrollers on desktop without configuration.)
Edit Mode
We will add an ‘editing’ mode to the form view of the DataGrid. When edit mode is toggled on, each form row will be adorned (optionally) with a check-box on the left, and (optionally) a drag-handle on the right. This will allow easy implementation of multiple-selection and reorderable lists.
Swipe Gestures
We will add the idea of ‘row’ actions to the form view of the DataGrid. You will be able to specify lists of left and right swipe actions, displayed using gradually revealed buttons as you swipe a row left and right. This will make it really easy to create mobile-style lists which are prevalent in iOS and Android apps (for example Mail on iOS).
Mobile Theming
We will hook into native features where necessary on iOS and Android to ensure the fit and finish of the DataGrid provides a professional native experience. This includes details like the “bounce” effect.
To view some examples of what you will be able to do with the added ‘container’ layerMode click here
How much will it cost?
We need to fund $25,000 from the community for this project to go ahead.
Who will benefit?
Anyone who is creating any kind of app that requires complex layouts, grids, tables or lists.
When would it be completed?
We would expect to ship this component in October/November this year. Please note this is an estimate. We are using a new methodology for estimating projects and have done our best to make an accurate estimate with time built in for error. We do not guarantee delivery on this timescale but are confident we can get close.
Make Your Bid
Like this project?
Back this project today and if it is fully funded by 8pm BST on Thursday 6th July then this project will go ahead.
Note: You will only be invoiced on successful funding of this project.
21 comments
Join the conversationQuentin - June 23, 2017
If memory serves me correctly the data grid control was quite complicated to use as it presented itself as a sub stack with all it’s code exposed and there was a lot to learn and code to dig through to customise or make proper use of it, in this regard it was very different to all the normal widget/control objects like buttons, lists and text boxes that are intuitive to use. Are the plans for Datagrid 2 to make the new control a more self contained widget object with simpler and more self explanatory controls like the button, list and text box controls? (I hope my question is clear it’s been a long time since I tried learning Livecode and my memory of the terminology is a bit fuzzy) Basically I would love to use it if I could do so as easily and intuitively as all the other controls.
Kevin - June 24, 2017
We’ll take a look at the usability again as we upgrade it and see if there are obvious opportunities to streamline things. One such opportunity to make sure the new features like the slide/swipe gestures are really easy to use and we will do that. Our aim is a better experience overall.
Quentin - June 27, 2017
Thanks for the reply Kevin. How is progress coming along with the database re-write that was a stretch goal way back in 2014 with the open source kickstarter campaign and the more recent Infinite Livecode SQLite Library feature exchange stretch goal? I personally would like to see a simple built in set of methods for populating, viewing, searching, editing and otherwise manipulating data from databases through the new Data Grid 2 control. Something as powerful and complete as being able to set the Data Grid 2 control to be associated with a particular database and then be able to view, search, sort and edit fields from that database using native style controls. In short an experience a bit like Filemaker on a simple level that will make adding those very common features of accessing, displaying and interacting with data from a database a very simple point and click affair. With the source code for it in Livecode Builder this could then be extended or tweaked by those who need to for their projects. This is the kind of thing I envisioned when I first signed up to Livecode I have been holding out for for years…
Quentin - June 27, 2017
Edit – – Something as powerful, simple and complete as being able to simply set the Data Grid 2 control to be associated with a particular database and then, with no further programming be able to view, search, sort and edit fields from that database using intuitive native style controls in that Data Grid. —
Jason - June 29, 2017
I am also very interested in exactly the same as Quentin. I would have said exactly the same thing. I too long for easier manipulation of database content and not just displays in grids but in a form output. It’s possible but the code is clumsy to achieve it. This has always been something I have wanted from LiveCode from the time I first purchased a license. So where are we with database improvements.. I have supported this campaign too in the hope that Datagrid 2 provides something more useful with database connections….
Elizabeth - June 23, 2017
I agree with Quentin abou The need for usability updates to DataGrid. Also, would this project support html5? I backed that project and I still don’t feel it is complete.
Kevin - June 24, 2017
Yes DataGrid 2 will fully support HTML5. The latest build of HTML5 is really coming on, if you haven’t then check out 9-dp-7. As I mentioned in my keynote there is now two-way communication with the browser, widgets, the core of networking and more.
Stephen - June 24, 2017
If I remember correctly, LiveCode had promised they would deliver on the Infinite LiveCode and features earlier funded before summer of 2016;
“We will deliver the project within a three month window on successful completion of the campaign.
…
If we can fund this now we’ll have this with you in the summer of this year, 2016, as opposed to summer 2017.”
Fast forward to today, June 23, 2017 and LiveCode is yet again asking for funding for a new feature when they have not even cared about delivering on their earlier pledge and promise? The seeming insult to loyalists is the lack of updates as to where things are at, yet LiveCode finds no qualms to settle the elephant in the room?
Well good luck to anyone pledging, I hope you at least get a feedback from LiveCode this time around, rather than the silent that has occassioned Infinite LiveCode’s Native field campaign.
It doesn’t take much to destroy ones faith in something so beautiful and promising.
Kevin - June 24, 2017
We certainly would have liked to have been able to complete Infinite LC faster and I’m sorry it took longer than anticipated. However the project is now all but finished. Native field capability for Android is in 9-DP-7 which you can download now, we’ll post more documentation around that in the next few days. Objective-C (including iOS) will be in DP-8. Thats why we’re funding again now, to decide whether or not we can do this project next. There is much planning involved so the timing is right.
Jose - June 26, 2017
Hi Kevin
Is the Android Native field in widgets toolbar or the way to use is only by coding?
Can you publish samples?
Sandro - June 26, 2017
Why the time available for fundraising is ever shorter?
Once it was a month, now a week.
Steven - June 26, 2017
Hi Sandro, the previous deadline you are referring to was to decide which project would continue funding between this and the Remote Hosting Debugger. DataGrid2 was chosen as the project to continue funding and as you can now see it has been extended for a further 10 days to complete funding. Overall this is still slightly shorter than some of the larger campaigns we have run, the reason for that is indeed that it is a smaller campaign.
Zoltan - July 4, 2017
Still, I also think that the time for fundraising should be a bit longer …
Tom - July 5, 2017
I would love to see this done …. but the short window to fund this has made pretty much impossible for me to pledge for this. Nothing I can do, startups are hard …. even harder with a kids. I think this is really important for LC long term. Please make windows longer so that people have more flexibility.
Dean - July 6, 2017
I think this type of funding of open-source projects adds value to the product. It’s not only “free” to use, but those who see a value in it can pony up a little extra. Alternatively I do agree that the short window is a detriment to those juggling budgets.
One thing I would like to see is some of the LC staff names in the backers list now and again. Sort of like buying stocks in the company you work for…
Jose - July 6, 2017
I have a commercial license of LiveCode and every year I pay the subscription, with this my expectations are for new versions of LC with new features an improvements.
I think that new improvements or features it is good for LC open source community, but is good for another commercial versions of LC, In this way I think it is important the Live Code as a company in commitment to pay($) part of the project or all.
Peter - July 6, 2017
I raised my pledge.
Steven - July 6, 2017
Amazing. Thank you Peter!
Andre - July 6, 2017
The claim was made earlier (in an email saying “It’s not just about DataGrid”) that “Anything that scrolls including complex layouts will scroll faster and smoother”. Could these improvements have also a positive impact regarding resizing stacks containing large texts (bugs 11636, 12037)?
Jim - July 6, 2017
So very close.
Double – Doppelt – Doble
Sid - July 6, 2017
When setting the hoal time for this project funding, did anyone consider the time zones? It ended at 3 pm here in East Coast – which is probably the highest concentration of user population here in states – but that is 12 noon in California. Really odd time to end it. We got the “20 kinutes to go” AFTER it ended.
DO agree with the comment that the data grid is a nightmare to use if you want to make any adjustments! So it was the over-all graphics enhancements that interested me. And the last contribution we made – $99 for a collection of stuff – part of that package we STILL never saw download links .
Oh well 🙂