PaintCode is a design and development tool running on macOS that is capable of generating code from vector drawings. Its latest version, PaintCode 3, brings support for Swift 3, Android, and JavaScript canvas.
The main feature of PaintCode is its ability to generate source code that can be used to render resolution-independent, parametric drawings, thus replacing graphic files in PNG, JPEG, or other formats.
PaintCode 3 is able to output source code in Objective-C and Swift for the iOS and macOS platforms; Java for Android; and JavaScript to be used to draw into canvas
elements for the Web. According to PaintCode, images in SVG, PSD, PDF, EPS and AI formats can be easily imported into PaintCode and converted into source code.
Resolution-independence addresses the requirement of supporting multiple resolution on different devices. This is a concern both for iOS and Android devices, which have a plethora of different display form-factors and screen densities, as well as for Web apps. Since PaintCode handles vector drawings, which are inherently capable of scaling, the code it generates automatically adapts itself to the screen resolution, says PaintCode.
Parametric drawings generate code that can be modified by parameters that are passed in at runtime. For example, one could define a button with a parametric title, or a rectangle with a parametric corner radius, then reuse those images in several places by providing different creation arguments. The use of parameters also makes it possible to create animated drawings, where the animation effect is produced by providing different values for the parameters.
According to PaintCode, PaintCode 3 generates code for Swift 3 that is up to 150x faster than previous versions in some cases.
On iOS and macOS, PaintCode also provides the ability to propagate the changes made to an app design directly to a running app thanks to a feature called Telekinesis, which switches the definition of drawing methods belonging to a named style.