Everything is a learning experience.
I’ve blogged here previously about being impressed with Apple’s development tools for Mac OS. I have been working with XCode and Interface Builder, using the Cocoa Framework. After several months of development, here is what I have learned.
The initial shine of XCode and IB has worn off. In the beginning of my development work on SwordSearcher Mac, I was primarily writing my “database” code for the Bible, commentary, dictionary, and book storage, search, and access functions of the program. This basically meant that I was enjoying coding stuff in Objective-C –- a language I find that I really enjoy working with. But it also meant I was not doing much of the user-interface design and didn’t have to work with Interface Builder much.
Well, I finished most of that “database-ish” work and moved on to creating a user interface for Bible display and other stuff. What happened? Well, it’s kind of like seeing a really pretty woman, then all of the sudden she pulls out a cigarette and lights up. Not attractive.
Apple’s development environment is practically in the dark ages when it comes to “rapid application development.” Maybe I am just spoiled with Delphi, but really, when I put a button on a form, I want a property list and want to be able to start writing an event handler for that button with a double-click. With XCode and IB, you simply can’t do that. The amount of hand-holding you have to give the IDE is absurd in comparison to Delphi. And it’s not just Delphi – I’ve used Visual Studio 2003 a bit, and I get nice, easy-to-work-with property lists with my UI components there, too.
The reality is that even though I have already put several months of real, nose-to-grindstone development into SwordSearcher Mac, bumping up against this fundamental weakness of the development environment means that continuing down this path will make me a frustrated, inefficient developer. It’s not that it’s hard –- it isn’t. But when I am developing SwordSearcher on Windows, I can be fast and efficient and write good code. I don’t have to waste time manually connecting methods to events, write IBOutlet and IBInlet, etc, when I should be able to just code the function! Switching between Windows and Mac development has become too much of a “shock” and I just don’t want to deal with it.
What does this mean? Am I abandoning SwordSearcher Mac? NO!
There is a nice little company called REAL Software that makes a cross-platform, visual development environment called REALBasic. With REALBasic, I can drop a button on a form, and, (imagine this), look at a list of all of the properties of that button, and click an item to write the code to handle events! Sound familiar? Delphi has been doing that for Windows developers for over a decade.
So I am going to give REALBasic a try. My preliminary plans are to design a new version of Daily Bible and Prayer in REALBasic – this way I can learn the language and the environment with a smaller project. I have lots of things I want to do with DBAP – and with REALBasic I will be able to write it for Windows, Mac, and Linux all at the same time. No more duplicated effort.
Then, once that is done, I will come back to SwordSearcher Mac. I am really committed to doing a Mac version of SwordSearcher –- but I want to enjoy the work. Using a more Delphi-like IDE will let me enjoy coding without feeling like I have one hand tied behind my back by an antiquated development paradigm.
What this means for SwordSearcher Mac is a delay. Not a delay of Longhorn proportions, but a delay nonetheless. Now I am looking at late 2006 for SwordSearcher Mac. And of course, development of the Windows version of SwordSearcher will continue in Delphi for the foreseeable future.
So, off to work I go! I will keep this blog updated as time progresses.