I wrote yesterday about the Fireball technique that Hal Gumbert and I have been working on, and our goal of developing native apps that use the technique. As I mentioned, Hal has been making a lot of progress developing apps using Xojo, while I'm doing my best to learn LiveCode and develop apps with it. This is a brief update on my progress.
Let me start by saying that I've quickly grown quite fond of LiveCode. The LiveCode programming language took some getting used to. Not surprisingly, the more that I use it, the easier it is to write code in it. I'm feeling very good about my decision to go the LiveCode route, and I'm now fully committed to making it work.
My initial goal with LiveCode is to develop a basic data entry application, with a hosted FileMaker database on the backend, and to use the Fireball technique to handle the integration.
At this point, I've got an app that pulls records from the FileMaker database and loads them into what LiveCode calls a "Data Grid." It's very much like Table View in the FileMaker world. You simply load data into it, and then you can use the control to sort on columns, resize columns, and more. I've found it very easy to take the data that comes back from a SQL fireball and load it into the Data Grid. And my basic app nows supports pulling all records from the demo database, as well as an option for entering filter criteria (somewhat like FileMaker's Quick Find function). The filter function uses a SQL fireball and a dynamically generated SELECT statement.
The speed with which all of this happens is impressive. I'm able to pull 4,500+ records down from FileMaker Server into the native app in a few seconds. It is really something to see.
I've also added a function for exporting the data from LiveCode. It's very basic, but it takes all of the data in the Data Grid (which you can think of in FileMaker terms as the Found Set) and saves it to a file using a basic XML format. LiveCode made this very easy. I was able to add the function in about a minute!
I still have a number of features that I want to add to the demo, including:
• Support for "Form View." I want the user to be able to click on a row in the table, and navigate to a card (think of it as a FileMaker layout) that shows a single record.
• Support for editing an existing record. From the "form view" card, I want to give the user the ability to both view and edit the record - including the contents of a container field.
• Support for deleting a record.
• Support for adding a new record.
• And implementation of an enhanced security option that we're adding to Fireball spec.
A few screen shots of the app in its current form are included below. As you can see, there's still a lot to do. However, the progress that I've made is very encouraging - and I'm having a lot of fun working through all of this. I had forgotten just how much fun it is to learn a new programming language!
The splash screen that is displayed when the app opens. Beautiful, eh?
A filtered list of the contacts displayed in the LiveCode "Data Grid." Think of this as a List View type of layout in FileMaker.
The nice UI for selecting a location and filename when exporting data from the app.
A sample of the XML file that was exported from the app.