I spent a couple of hours on GitHub while procrastinating working on an Objective-C project by justifying it as “research”. Fortuitously I came across some great projects that actually will benefit me in my endeavours, and wanted to share and make a record of them. They will likely help you in your projects too.
One of my biggest desires for Snow Leopard’s developer kit is the ability to have blocks or lambdas in Objective-C. This project lets you play with this great feature before it’s officially in the OS. While it does require some setup for LLVM and Clang, it’s a relatively smooth experience.
http://github.com/PsychoH13/C-ObjC-Blocks/tree/master (MIT)
This framework is great when dealing with XML-RPC services. For anyone who has dealt with the built in WebServices junk in Cocoa, this will make your day.
http://github.com/eczarny/xmlrpc/tree/master (MIT)
Generate Apple-Style Docs Using doxygen style documentation in your code. This will generate the correct markup to add your docs to XCode’s Research Assistant and Documentation viewer. http://github.com/tomaz/appledoc/tree/master (MIT)
Use last.fm services in your project easily. It makes me long for a system like rubygems for XCode with a bunch of libraries that have amazing APIs.
http://github.com/westbaer/FMEngine/tree/master (MIT)
Brings functional paradigms to Objective-C. Some of the stuff is a little over my head, but the mapping of arrays led me to the next project I found.
http://github.com/mogeneration/functionalkit/tree/master (Apache)
I prefer this over FunctionalKit, mostly because it’s easier to wrap my head around. It is a few categories for NSArray that allows you to map, filter or reduce similar to a functional language.
http://github.com/nst/nsarray-functional/tree/master (No license specified)
A lot of nice categories for Cocoa objects. I really like the additions for NSURL.
http://github.com/gabriel/gh-kit/tree/master (MIT)
JSCocoa allows apps to be built for Cocoa in JavaScript, or even use it for the plugin system to your app. It’s interesting to watch as the developers are trying to get iPhone capability. It uses JavascriptCore so theoretically it could be super fast when using the Nitro engine from Safari 4. It would be great to see JSCocoa apps out-performing something written in Objective-C.
http://github.com/parmanoir/jscocoa/tree/master (MIT)
Gus Mueller wondered if AppleScript had to be implemented today that Apple would do it a little differently. JSTalk enables applications to be extended similar to how AppleScript works, but in JavaScript. Included are an Editor, a command-line tool and a framework to embed in your app.
http://github.com/ccgus/jstalk/tree/master (MIT)
A full-featured framework that when implemented in your projects allows users to write plugins in a number of popular languages. It gives you the necessary architecture to make your application scriptable. I can’t help but wonder how much it makes your app’s bundle size grow. It seems to include the entire MacRuby distribution.
http://github.com/Grayson/pluginmanager/tree/master (multiple licenses)