Show Menu

Expanding your company? Need a developer?

Submit your 30 day Job Listing for FREE

If you are an iOS developer who is trying to find a better way to write Objective-C drawing code for CoreGraphics or Quartz, there maybe a better way for you. If you are starting to learn CoreGraphics and Quartz, part of iOS APIs, there may be a tool for you. If you are looking for a way to design iOS applications that will automatically scale from 1X to 2X resolutions in order to support Retina Displays, there may be a tool for you.

Look what we have here: Paintcode.

Paintcode is a drawing application that generates Objective-C in order to draw visual objects using Cocoa APIs: Quartz and Core Graphics.

The basic workflow of Paintcode is very simple: before starting to draw shapes, you first define the colors that will be part of the color palette of your project, then you build gradients based on these basic colors and finally you create shadows. Created objects will then use these colors, gradients and shadows as you wish. Changing a single color will be reflected everywhere from the shapes to the gradients and shadows that are build on this basic color.

Objects attributes include identify names that are used for variables naming in the generated code. Very precise control for everything is available. Live preview of code generation is how Paincode works so you always get an up to date Objective-C code. By the way, depending if you are developing an iOS application or a Mac OS X application, you can switch between the two for generated code flavour. For project examples, go to and see for yourself to get a better idea of what Paintcode can do.

Usage of Paintcode are many: Learn the basics of UIKit/AppKit graphical programming in Quartz and Core Graphics. You’ll save quite some time of trial and error for programmers who are not good at graphic designs programmatically. Those who wants quick results in having up and running drawing code in their projects will appreciate Paintcode.

What is missing or could be improved? The application could include other basic graphical elements like glass overlays that we often see on iOS navigation bars for example. Full screen mode is not available for Lion users. But remember, this is version 1.0 of an application with a lot of potential. According to the developers, the next update will add PNG export, blending modes  and bug fixes. Another thing that could help the developer is to wrap the generated code in an object that could be easily be integrated in the developer’s application code. Right now, the code needs tweaking in order to be used.

One observation on application pricing: some developers find the 79$ price tag a bit steep but I don’t think it is: it may be too easy to compare to other lower priced applications on the Mac App Store. I think you have to look at the inherent value of the application: you’ll save time by using it. Recently, PixelCut added a demo version that you can download and try for yourself which is a good thing for a 79$ application.

I look forward to see how Paincode will evolve in the near future.

having issues?

We have a Questions and Answer section where you can ask your iOS Development questions to thousands of iOS Developers.

Ask Question

FREE Download!

Get your FREE Swift 2 Cheat Sheet and quick reference guide PDF download when you sign up to SwiftMonthly

Sharing is caring

If you enjoyed this tutorial, please help us and others by sharing using one of the social media buttons below.

Written by:

I'm a full time IT professional since 1995 and a part time indie iOS developer since 2009. I'm passionate about Apple and design. I love to share my experiences while learning to build iOS applications so I created a blog for that. I love great iOS app designs so I also create a blog to show others what a great design might look like. I'm an Apple lover since 1985 and I like to share my ideas and thoughts about Apple, their strategies and theyr products so I created another blog for that. I love photography and writing which I do in English but I'm a native french speaking guy.