When we first created Goldenseal, about 1/4 of the work was for resources rather than code. That means window layouts, menus, icons, and other cosmetic details that make up a modern GUI (Graphic User Interface).
The original Goldenseal resources were set up in Mac OS 9 format, which is now obsolete. We already converted most resources to newer formats, but a couple of the more difficult types were still undone. So we spent the past couple weeks hacking the current version of Goldenseal, to export the rest.
The hardest were the layouts for the action commands- Reconcile, Pay Bills, Write Payroll and a few others. They were stored in a binary format that the PowerPlant library could read, but not humans. Fortunately, we found a way to cheat. Loading each window also converts the data into text temporarily, with one line for each field, button or table. We then saved it into files for future use.
Both of the platforms we use have their own GUI for setting up window layouts. However, Xcode’s Interface Builder and Visual Studio’s wizards have many quirks, so it takes at least a day or two to set up each window. With 35 windows total, we’ll save time in the long run by reading the existing data from text. It’s a change that we have been meaning to do for a very long time.
The biggest challenges over the past couple weeks were with hardware. Building the current Goldenseal app requires Mac OS 10.5 , which means 10+ year old hardware that is showing its age.
Interestingly, for many years Apple made it relatively easy for us to update our code gradually after each system update. However, that stopped soon after the iPhone was introduced in 2007. We tried the usual update process with Snow Leopard in 2009, but it required such a huge code rewrite that we never finished it. I would say that Apple’s neglect for the Macintosh has only accelerated since then.
Meanwhile, on the Windows side we are still slogging through setup details for fields and tables. It has been slow to get up to speed on the Windows programming, but the onset of gloomy weather will help with that.