I've been trying various header documentation generators and settled on AppleDoc. This is possibly the most fantastic documentation generator I've ever seen. It formats everything to match the standard Apple documentation style, compiles a doc set and installs it into XCode all at once. And with Xcode 4.4's tight documentation integration I get popups with my method and class descriptions as I type. Oh and this is all right out of the box with only half a dozen command line switches to configure it. If you're looking for a doc generator that "Just Works", look no further.
CrashSight 1.5 was submitted to the App Store today for review. Expect it to be available within the next week.
There have been several feature requests for CrashSight to support customizable priorities and issue types so recently I buckled down and made a new version of my CoreData schema to add new entities for issue types and priorities with relationships to the basic issue entity. Having never done CoreData migration, I had a lot of reading and experimenting to do at this point in order to translate the old issue entity to the new one with references to the new type and priority entities.
Setting up a standard mapping model in XCode 4 was pretty simple, and takes care of all the easy stuff for me, which was nice. I only had to create a custom subclass of NSEntityMigrationPolicy to handle the details. My idea was that this subclass would create the default bug/feature/doc and high/medium/low entities in (BOOL)beginEntityMapping:manager:error: and then check the type and priority of the old issue entity and hook up the new issue entity to the appropriate issue and type entities. Unfortunately this did not work as expected because the instance of NSEntityMigrationPolicy used for adding entities IS DIFFERENT than the instance used to connect relationships! So when I set up instance properties to hold the default bug/feature/doc entities they aren't there anymore when I go to set up relationships.
Luckily there is an easy work-around which is to fetch the default entities in (BOOL)createRelationshipsForDestinationInstance:entityMapping:manager:error: but I thought this gotcha was important enough (and undocumented anywhere that I could find) that I would write about it in the hopes that other developers could save themselves some time.
CrashSight 1.0 was released today. CrashSight is an application I developed originally for my own use, but decided to polish it off and sell it in the hopes that other developers might find it useful. It's simple and lightweight bug tracking, which can be invaluable during development.
During development I typically have many quick code/test/fix cycles, where I implement a feature, test it, and fix any problems I find. Sometimes I find tangential bugs in other areas that I need to remember to fix later but I don't wish to deal with at the moment because they're not related to what I'm working on. CrashSight makes it really easy to jot down a description of the problem complete with screenshots and notes, etc so I can come back to it later.
CrashSight 1.0 was submitted to the Mac AppStore for review this week and should be available shortly. CrashSight is a bug-tracking program for solo developers that provides some powerful features but without the hassle and expense normally associated with a hosted bug tracking solution. This is a program that I use extensively at Wireframe Software and decided to polish it up enough to release it in the hopes that other developers might find it useful.
GateLink 1.1 was submitted to the AppStore for review this week and should be available shortly. It brings a number of user-requested features including:
I like a tool to be the right size for the job. When it comes to having a professional bug tracking solution, solo developers and small development teams have the choice between large (and pricey!) hosted solutions full of bells and whistles that they will never use, or … nothing? That doesn't sound right. Stay tuned over the next few weeks and we'll see what can be done to fill that gap.
GateLink version 1.0 was released today. This marks our first foray into developing great engineering tools for the Mac and iOS platforms. With the App Store and the new Mac App Store there has never been a better time for a small developer to jump in and start something really spectacular. GateLink is a first step in our vision for engineering on the Mac which we hope will be making a comeback soon.
Having worked as an electrical engineer and a software developer it's really shocking how primitive and un-polished engineering tools tend to be compared to any of dozens of software development IDEs. That's something we want to change and what better platform to create intuitive, polished, and useful tools than the platform that has essentially defined those terms.