PaintCode (US$99.99) is a vector drawing app that generates Quartz and Core Graphics Objective-C (and C#/MonoTouch) drawing code.
First released this March, the app was inspired by Apple's introduction of the Retina iPad. It allows developers to create resolution-independent art that adapts to the physical and geometric differences between devices.
It's somewhat similar to Opacity (which I'm told it is no longer under active development), but with tools that specifically target Apple's latest technology. For example, PaintCode includes a Retina preview button that lets you visualize how the art will look on higher-density displays.
Supporting both OS X and iOS code generation, PaintCode was actually developed using its own tools. Clocking in at just 2.3 MB, the app bundle's slim form factor is due to the vector graphics powering its interface.
PaintCode allows you to build nuanced graphics, as you can see in the gallery at the end of this post. It is aimed at both designers and programmers. It's interactive tools mimics other popular vector-based editors.
You build your design in a visual layout screen, and the supporting code appears at the bottom. You choose whether the code is generated for OS X, for iOS, or C# (for Monotouch development). What's more, you can generate either ARC or Manual Retain/Release output.
PaintCode's developers have spent a lot of effort creating tools tied into the way people craft applications. For example, it's possible to build color swatches and gradients that are based off a core color. Update the root color for a family, and all the members who were derived from that base color update as well. It's a very nice feature.
Another great feature is PaintCode's support for frame-based layout. Anyone familiar with Interface Builder's struts and springs tools will be able to recognize how PaintCode items resize with respect to a parent frame.
If you're working with text, you'll appreciate PaintCode's ability to convert strings to Bezier-based text paths. This allows the results to resize as needed, or you can add effects like gradients to the derived paths.
Admittedly, PaintCode is a pricey application, retailing for about a hundred dollars. When I kicked its wheels, I found the tools relatively easy to use -- although I was given an interactive tutorial before testing it out, which certainly helped.
I did encounter a few glitches along the way, which is to be expected for a tool as new and specialized as this, but quitting and restarting the app cleared up my problems.
I was impressed by the overall tool, and can see it being valuable for anyone writing across devices. This is especially true if Apple, as rumored, introduces even more new iOS device form factors this autumn. PaintCode, with its vector-based art that paints with respect to points, not pixels, offers a way to build resolution independence through code.
It's a tool that continue to evolve as PaintCode's customers drive its feature set. Developer Peter Krajcik told TUAW, "We want to cover all the possibilities of Apple's APIs, but we base our feature set on our user requests and the customer demand."
Krajcik discussed some of the new features that will debut in the upcoming 1.2 release. The refreshed app will introduce groups, blending modes, group clipping, SVG import, and enhanced shadow control. It's just entering beta now, and should ship within the next month or two, depending of course on the whims of the App Store.
PaintCode's site offers a trial version to test out before buying, lots of examples and tutorial videos, and a wealth of documentation.