Our staff has been getting “up to speed” with Cocoa, so we can build the Macintosh GUI (graphic user interface) for Goldenseal Pro. It will probably be another week or two before we are ready to start writing code.
Swift is a new programming language that Apple introduced in 2014. It is designed for rapid GUI development, and we are finding that it definitely works well for that. It’s possible to create fairly complex apps with just 20 or 30 lines of code.
Swift is a young language, and still evolving. We are writing practice apps using a book from The Big Nerd Ranch dated April 2015, and about 25% of the code in the book has changed since then. They put updated code on their website, but some of that has changed since it was posted. There are even more changes coming when version 3.0 comes out this winter. Using Swift for development will definitely be “bleeding edge” technology for a while longer.
On the other hand, the Objective-C language is old (first developed in the early 1980s) and ugly. Nobody uses it except for Cocoa developers, so it is doomed to fade away, as Swift takes over.
We have been working with both, and will use Swift for Goldenseal Pro. Better stabbing pains for a while, than a dull ache that goes on forever!
The good news is that once we have mastered it, we can also use it to develop apps for iPhone and iPad. Our original plan was to subcontract that work, but we can probably design and build apps in about the same time it would take to write specs, supervise and test someone else’s code. Annoying to have to learn new stuff, but worthwhile in the end.
We just tested Goldenseal with the public beta version of the next Mac OS (10.12 Sierra). Everything still runs as it should.
The only problem we found is that the blue-highlighted OK buttons in dialogs are hard to read. The ‘flat’ buttons in OS 10.10 and newer have a dark background that is designed for white text, but our code still draws the text in black.
Goldenseal Pro won’t have this problem, and it is far enough along that we probably won’t fix this appearance issue in the current Goldenseal app.
HINT: if you click on the colored button and then move the mouse cursor off the button temporarily, the blue turns to white so you can read the text.
After some discussion with our contractor, he has decided to stop work on Goldenseal Pro. He did a good job on the early parts of the project (opening files, reading resources) but did not have enough Cocoa experience to get anywhere with the GUI (graphic user interface) for Mac.
This is the second contractor who stalled out after a few months. There were two others who gave up after a few weeks. I think it is just too large a project for most programmers to handle.
The good news is that we’ve finished the prep work and programming that we needed to do. So, we will start work on the GUI with our own staff. We are already very familiar with the existing code, so there won’t be any “learning curve” there.
The plan is to get the basic GUI working, and then subcontract a few remaining details (printing, networking, Custom Layouts). Those will easier for folks to bid on and complete, and they can also be done in parallel.
One wrinkle is that the Swift programming language is currently getting a complete rewrite, with a new Swift 3.0 planned for completion in late 2016. It is not backward-compatible, so anything written in Swift 2.0 will need to have some parts rewritten. However, it will not take much Swift code to create the GUI, so that change will not affect us by much.
The contractor who is working on Goldenseal Pro got “stuck”. He wrote new GUIs (graphic user interfaces) for Windows and Mac, but has not been able to connect them with the database, or our business logic.
We are reviewing his code now, to see how to fix that. We are also discussing ways to make things go faster. We are eager to see it finished this year.
Most likely our staff will take on a larger portion of the development work, and we will contract smaller parts of the project. Our experience over the past two years seems to be that many programmers think they can successfully complete a large job like this, but very few actually can do it.
Turtle Creek Software