After much struggling with branch merging and fighting with incompatible scratchbox rootstraps, an alpha version of Glom is now available for Maemo’s new Chinook SDK, in the extras repository. Thanks to Armin and Johannes.
Software developers might also be interested in the dependencies that we packaged, in addition to the existing gtkmm and hildon*mm libraries: libglademm, libpq (postgres client), libgda, libgdamm.
I think Glom on Maemo could be very useful for tasks such as
- Restaurant order-taking
- Stock taking in warehouses
- Surveying of property
- Note-taking for deliveries or checkpoints
- Portable databases
- Jack Bauer fighting crime
But so far this is purely a proof of concept. Some work would be needed to make it really useful. For instance,
- The screenshot shows that there is a huge amount of wasted space. The spacing and padding needs to be reduced to 1 pixel everywhere, and the table title and mode can be removed. We use libglade and don’t want to have a separate .glade file for the two platforms, so maybe a new feature in Glade/libglade could help us.
- Obviously it shouldn’t say it’s in developer mode. This client-only version can’t even do developer mode.
- The Details/List tabs and navigation buttons need to go into the menu so they are not seen normally.
- The treeviews needs to have column headers. Applications must do this explicitly when porting to Maemo because it GTK+ changes the GtkTreeView defaults – this is unnecessary and frustrates people.
- Entry widgets need the hildon keyboard hints so appropriate on-screen keyboards are used for numeric or text fields, plus auto-capitalization where appropriate.
- Use hildon widgets such as the time and date widgets (needs modifications to hildon to allow them to be empty (NULL), though these should probably be in GTK+ anyway).
- Special layouts for the Maemo version. We need to let the developer specify a full layouts for the regular desktop version and a cut-down layout for the handheld version, so he doesn’t need to keep two separate copies of the .glom file.
- We probably need Mathias’ height-for-width extended layout to make sure that we only have vertical scrollbars, though I think we can fit a lot into the horizontal space, at least in full-screen mode.
- Keyboard navigation: Make sure that this works well by default and allow the developer to specify a tab sequence.
- Dealing with loss and reconnection of the network, requesting new connections when necessary, using libconic.
- Support Maemo’s offline mode and other states (suspend).
- Avoid excessive network re-connections and duplicate SQL queries
- Self-hosting of databases. Glom on maemo is currently client-only, though the desktop version has self-hosting by starting its own postgres instances. So at the moment you need a central database server and a constant network connection. It would be nice to allow the database to exist on the handheld itself. We’d probably want to port the client-only version to sqlite, though I suppose we should check postgres’s performance on the internet tablet before dismissing it. Our use of libgda should make it fairly easy to use sqlite if necessary, though some generated SQL will need attention.
- A simple replication feature. People will often need to add or edit data while offline and then have everything reconciled when they get back to base. This is a complex issue, but I hope we can offer some simple strategies for this which don’t require much human intervention.
I hope Openismus can find funding for that work somewhere.
By the way, Armin is now working on the Windows port.
Update: Here is a new screenshot after making some of the easiest small changes: