Code by Kevin

Code by Kevin, Programming, code, business, and other pursuits

Your Host
Kevin Walzer, software developer.


Subscribe to RSS Feed
Get a syndicated feed of my weblog.



Privacy Policy

Site design: Skeleton


Mon, 05 May 2008

The journey to Cocoa

My strategy for porting my programs to Cocoa is becoming a bit clearer.

It appears that Jason Slack's project to port the core Tk libraries to Cocoa isn't vaporware. While he has not posted anything public about it, I've had a bit of private correspondence with him, and it seems that he has gotten under way. I've offered him assistance with testing and other feedback, so we'll see what comes of that. The long-term goal is to simply replace Tk's current Carbon implementation with a Cocoa-based implementation in my programs. In the meantime, I am working on removing my own applications' dependencies on Carbon, at least the dependencies I myself have added.

As one example, my programs make some use of Daniel Steffen's Carbon extensions, and I'm working on achieving that functionality by other means. So far I've been able to find what I need. For instance, one function in the Carbon library involves determining which program is frontmost on the user's screen, and bouncing the icon on the dock if my program is in the background; I've found I can get the same data by using AppleScript to call the Mac's System Events application.

Another example involves the user documentation of my programs. Currently I use Apple's Help Viewer application for my user help. I format my documentation according to Apple's guidelines, and use a Tcl extension I wrote myself, tclAppleHelp, to load and display the help. Eventually, I will be moving my user documentation online, to a special section of my main website, which I will load with a call to Apple's command-line "open" tool (which opens a document in its default application). This will remove another dependency on Carbon, and also work around the annoying behavior of Apple's Help Viewer in Leopard (the help window floats on top of all other applications). It may also help the visibility of my programs on Google, as there will be more material (user help) about them posted on the Internet.

In the coming months I'll be making these changes, and others, to my existing programs, as well as including them in new products under development. Now that the Cocoa port of Tk itself is under way--a task that I can contribute to, but which is too large for me to undertake myself--I feel energized to resume development of my own programs, and I'm bursting with ideas. What a wonderful thing to be able to concentrate on improving my applications for my customers, rather than rewriting them in an entirely different framework.

[/general] permanent link