When we first started work on the Goldenseal accounting software, there was a set of printed books called Inside Macintosh. It was 7 or 8 volumes, about a foot wide, and pretty much the Bible for Mac developers. Our copies grew battered from constant use, and we had a ‘cheat sheet’ that pointed to the pages we used most often.
These days, Apple’s documentation is all online. Unfortunately, it’s also more scattered. The Web makes it very easy to find answers quickly, when you know what question to ask. Unfortunately, it also seems to make discovery harder, when you don’t know if something exists in the first place. Hard to search, when you don’t know which words to use.
For example, last week we set up the record window layouts, but then stumbled upon a Cocoa class that makes record scrolling seem more like pages in a book. To use it, we had to throw out what we did, and start over.
To help discover what else we don’t know, we are now gathering all of the Cocoa classes into a spreadsheet. It won’t be Inside Cocoa, but at least it will show everything it can do. There are already 250 rows, and it’s not even half-way done, yet. The project has already turned up several nifty classes that will improve the interface, without much effort.
Meanwhile, we also spent the last couple weeks improving the new database code. It was giving a few error messages after converting old files to the new format, and those bugs are now fixed. It also does a better job of deciding how long records stay in RAM.
For a while, we were concerned that we might have made a mistake by writing our own database code, instead of licensing from someone else. However, so far it is working extremely well. It’s much simpler, and probably will be much more reliable. Between 1998 and 2015 we rewrote more than half the old NeoAccess code, so replacing the rest was not as overwhelming as it might have been. And, of course, alternatives like Core Data or SQLite have their own bugs, quirks and design flaws.