Developing for OS X... Exploration and Pain
Earlier I found myself wanting to develop a little GUI tool for myself to use on OS X (and perhaps other platforms), so put a tweet out asking people what they would recommend for the job. However, the results so far don't seem too good. Is it really this hard?
I'm sure there are more than those I have listed here, but here is what I've considered and/or tried - and how badly it went wrong.
Mono & MonoDevelop
It seemed to be a no-brainer to try and develop something targeting Mono. The best IDE seemed to be MonoDevelop, so I downloaded the latest Mono and the latest MonoDevelop and fired it up. Great - a fairly mature IDE a bit like Visual Studio and I can use C# just like on Windows. Well... no...
No graphical form designer on OS X. Great. Linux and Windows, yes. OS X, no.
Not to worry - they also provide the option to create a GTK-based GUI app based on a Glade file. This way, I'd be able to worry about designing the UI with a separate tool and just have the app construct the UI based on the file (which is just XML really). So I create a new Glade-based app and run it to see what I have been given (apparently, one window with one button on it) and will it run? No.
Now this is a little unfair - as far as I know, I had the latest and greatest releases of everything, and there's no excuse for broken templates like that. Perhaps I'm barking up a dead tree with this.
Another approach which would do the job is Java. Now as some of you who know me will already be aware, there's not much love between me and Java, despite the fact I used it in both College and Uni. I certainly know enough to construct a simple little tool - but.. yuck. Java is a pain in the bum language which is too fussy about the stupidest things to be much fun to develop with. Has it really come to this?
In addition to my personal dislike, it has to be said that Java apps really aren't the most attractive creations. Despite best efforts, Java applications running on OS X look rather like outsiders. That's not really what I'm going for if I can avoid it.
Objective-C & Cocoa
I suppose the question should be asked - why didn't I start with this one. It's the obvious choice to create a nice native OS X app which fits in perfectly with others on the system. It must be said that a well-crafted OS X application is a joy to use, and I'd love to be able to create something similar.
However, have you seen XCode and Interface Builder? Seriously... what is that? And why are they not integrated together? If you had to place XCode on a 1 to 10 scale, where 1 is incomprehensible and 10 is totally intuitive, you'd be looking at -20. At least. And I'm not the only one to come to this conclusion. Part of the fault is the Objective-C language itself, but still...
So I suppose by now I'm coming across as a right miserable sod. I apologise – please don't unsubscribe :). But having been a web developer for some time now, using PHP, ASP.NET (C#) and some Ruby and others, and having some experience in Windows desktop applications - I'm not a complete noob. But even after all this exploration, I still have no idea how to do this or if its all just too much trouble for a small personal project.
Part of the problem, especially regarding Objective-C and XCode is that it's such a mind-shift. Everything is completely different to every language I've used (or played with) in the past. I suspect that to learn the two together would require a lot more time and effort than I'd be able to dedicate to it.
I think I'll just develop my little tool under Windows. That way, I'll be able to focus on using a language and environment I know and like. As for running it on OS X – my original goal – perhaps another time.