alexreher's drawing app

by Alex Reher

07 Jun 2017

The app:

Initial Milestones

  • Drawing function
  • Brush Select
  • Color change
  • UI_toggle
  • UI active color or brush
  • Shape drawing
  • RGB background
  • Eraser

Reflection: It was easy to come up with ideas for what I wanted, and I didn’t have many milestones. Once I got to work on it though, I had some components that I should have broken down into smaller objectives. This probably would have helped me with controlling the scope of my initial milestones and making my approach to the coding easier. I tended to try and get whole milestones done at once and then troubleshoot the succession of errors that would inevitably arise. At one point I was unable to get my UI to toggle as I wanted it to, it simply appeared when the probram ran. I spent hours stuck at this point, and ended up being blocked by the challenge of using variables across modules and some accidental argument passing attempt from a keypress action. This was a really frustrating barrier to me, and derailed my plans for more features.

It was particularly annoying because I think some of the issues would have been spotted immediately if I’d approached it smaller iterations. I found this to work well days ago and identified the effectiveness of the strategy, but then on this I didn’t put it into practice from the start. Once I restarted work on it with incremental steps, I ended up seeing the problem very quickly. Luckily, while I didn’t feel like I had much time for breaks, I did skip around on milestones when I found myself stuck. This reduced the amount of time wasted. Still, with a pair programmer or another set of eyes, I think it would have been less of an issue to begin with.

Some planning would have also helped with the structure of my app. I divided it into three sections, but only after I’d made some progress on components that would end up across all the modules. While there’s some organization, I think I may have split the file up a little more and also worked to reduce the need to send variables across modules or between the local and global scope. If I were to revise this, I think we could have done better with it. My understanding of how these worked grew as I was working, and I ended up eventually prioritizing function ahead of design due to time restraints.

Final Milestones

  • Drawing function
  • Erase all function
  • Brush change function
  • Draw UI
  • Split file into modules
  • Draw Color Swatch
  • Make UI toggle
  • Make Color Swatch clickable
  • Add keypress for colors
  • Add RGB turtles
  • Change background
  • Eraser using background color
  • Shapes
it's pronounced aboot! Find Alex Reher on Twitter, Github, and on the web.