[Openmcl-devel] Interface Contrib & Mountain Lion
plkrueger at comcast.net
Fri Aug 3 14:32:38 UTC 2012
Bowing to the inevitable I just upgraded from Snow Leopard to Mountain Lion. It's been a while since I updated my Mac app interface / development tools contrib (…ccl/contrib/cocoa-ide/krueger/InterfaceProjects) and after just a little playing around (since I found that I needed it myself) it's pretty obvious that there are a couple of obstacles to getting it working again under Mountain Lion. The first obvious one is that Interface Builder, which is now part of Xcode will no longer edit .nib files, only .xib. Testing shows that I can work around that relatively easily although there will be some code changes and an boatload of documentation changes.
The more severe restriction is that IB plug-in's are also no longer supported and since they were never supported for IOS development it doesn't look like Apple will add back support for them. I had created a LispController plug-in that made interfaces to Lisp fairly nice and used it extensively in lots of examples (e.g. binding between interface object outlets and lisp slots, using a variety of lisp structures as data sources for interface objects, etc.). It's only software, so there are always ways around that. One approach came to me suddenly about 4:00 AM this morning, but these changes are both code and documentation-intensive.
So I wanted to let people who might be thinking about trying some of my existing contrib code under Lion variants to not bother. I'll make some announcement when things are back in better shape.
My original tutorial basically followed the learning curve that I had to follow myself to make everything work. When I re-do this for Lion, I'm thinking that I'll leave out all the gory details of how to do things without my dev tools installed and regarding the dev tool internals and only document how to use them. There were some interesting things done under the hood like:
using the Lisp meta-object protocol (MOP) to implement the Apple Key-Value Observing (KVO) protocol to make bindable Lisp slots)
dynamic menu modification within the CCL IDE to reflect either IDE or embedded app menus
faking out the IDE to permit running an app within it
interacting with another running CCL instance to build a new stand-alone Lisp app
detecting changes made to info.plist files edited by a separate app
Some of these were documented separately, but most discussion of them was embedded in the tutorial. These will mostly be left out in future documentation, but if there is any real demand I might be talked into documenting some of the internals separately as well.
I may also layer the dev interface better so that developing simple apps is easier and doing more sophisticated app development will involve additional separate interfaces. We'll see how that works out since that's a bigger change than I was hoping to make.
I considered just walling off what is there now and creating a whole new directory for the new stuff, but I think it's probably better to just cut the ties and replace what is there now. I hope that the new stuff will continue to work on Snow Leopard, but I'm not yet sure about all the changes that will be required and I won't do any testing there, so who knows. If anyone thinks that just replacing the existing stuff is a mistake for some reason and that it should be kept around in future releases, please speak up.
I'm open to any suggestions that people might have for what they'd like to see in the revised tools. Now would be a good time to make them. And if anyone has Lion-specific suggestions or warnings for me, I'd love to hear those too.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Openmcl-devel