For a while I’ve been meaning to really get into programming Cocoa/Objective-C. I figure that as someone who’s fully bought into the Apple ecosystem, and who likes making little tools to make my life better, learning how to make stuff in the Cocoa environment isn’t a bad thing - and it won’t look too bad on the CV either. It’s one thing to say I can make small text- and number-crunching apps in ruby, but having a fully-fledged program with GUI and everything to show off feels slightly classier.
I’ve been working on my first app for a while now. It’s called Assign, and the elevator pitch goes something like this:
If you’re a computer power user, you’ll often be moving files into the same old directories - or sub-directories in the same old directories. If you’re currently involved in a project, you’ll probably have a folder for that on your drive somewhere, with sub-folders that you keep filing stuff into. Assign keeps track of as many folders as you tell it to, and when you have something selected in Finder, you can bring up its interface with a keypress, type a couple of characters to select the folder you want, and file stuff away.
That’s all it does - it’s a really tiny app, but I’ve spent a lot of time slaving away over the details. A lot of this is because it’s all new - the first time you make a menu-bar-only app, you have to do a bunch of research into how to make your app menu-bar-only. Some of it is because I want to make the code readable - which means occasionally stepping back and refactoring what I have so far. And far too much of it is because I want to do seemingly simple things that have strangely weird and Byzantine frameworks attached1. Regardless, these things all take time, and that means that even simple, megabyte-or-less applications take time, care and attention to build.
I have no idea when this app will be ready for release, but I’ll be making it free - and, of course, setting up a project page on this website to detail its many capabilities. I’ve already got ideas for the next thing I could make - I rather like the idea of an email app that only sends email - no receiving allowed. If I could build in Markdown and Address Book support, I figure I’d be onto something that people would enjoy.
Tonight’s struggle was login items. I’ve been stumped for weeks on getting the app to open on login (or not, as the user prefers) - it’s relatively straightforward once you know what you’re doing, but if you don’t, it’s hellishly complex. Maybe I’ll make a post on it at some point - if I get a bit of spare time. ↩