I am not an artist, but a fact of life when creating apps in 2012 is that Apple’s standard Cocoa controls don’t provide everything. PaintCode is perfect for those times when I need a relatively simple icon that can be composed from shapes and I don’t have the budget to hire a designer.

What makes PaintCode different from most vector drawing apps is that it generates code that can be pasted directly into a project. In the 1.0 release, it could export to a couple of graphic formats, but unfortunately not PNG. The 1.0.1 release addresses this, and now I have the choice of generating a simple icon on-the-fly, using the code generated by PaintCode, or exporting to PNG and bundling the files with my app.

Back in January at CUSEC 2012, Bret Victor presented a talk titled Inventing on Principle. One of his main points was that it is important for a developer to see immediate feedback as code is changed. For me, PaintCode serves this purpose: if I have a visual effect in mind, I can play with the shapes, shadows, colors and gradients visually to achieve the effect I want, and then look down to see how to do it in code. This greatly shortens the experimentation cycle time.

PaintCode isn’t cheap, but the time it saves me when I need it makes it worth every penny.