Drawing on touch screens is really intuitive. When I started this app (back in 2009) there wasn't a vector-based drawing tool on the iPhone yet. I wanted to create a tool that would let you create, select, and modify vector curves using two-finger gestures.

How it works

Pick a stroke and fill color. Draw on the canvas using your finger, your path will automatically be smoothed and turned into a bezier path. In Select mode, you can tap on any curve, drag it around, and use two fingers to scale and rotate it.

Challenges I ran into

I started by trying to implement everything in OpenGL (UIBezierPath wasn't part of UIKit back then). I quickly realized an OpenGL implementation was going to take forever, so I switched to using a web view to render a dynamically modified SVG file. Surprisingly enough, this has worked great since the original iPhone on up!

Accomplishments that I'm proud of

I really like my color picker. I wanted to provide both discrete color blocks and "infinite" color choices. I solved this with a slider that goes from a 3x3 HSV grid to 4x4, 5x5, etc. on up to a smooth palette.

What I learned

Tons of stuff! But I made one critical noob mistake that caused my app to break once 64-bit devices were released (using a float array instead of a CGFloat array to represent a color). I've definitely learned my lesson about lazy type handling.

What's next for Quill iOS App

No planned updates at this time. It's still in the store, and still has a bit of a following from users who want a bare-bones vector canvas. There are lots of competing apps nowadays, but Quill still has a place for those seeking simplicity!

Built With

Share this project: