Even with his snapshot, I felt like Jay’s drawing app was pretty sophisticated. When you clicked “run” a sleek interface opened where a user could draw shapes or lines with a click on the mouse. To control his modes, Jay created what reminded me of a taskbar in Windows or a dock on an iMac, where the user could select a shape to draw by clicking on its corresponding image. Once you selected a shape to draw, that would be the “mode” that you were in. In addition to a “shape” mode, Jay also created a “color mode”. On the last option on Jay’s initial toolbar, the user could click a button in order to deliver them to “color mode”. The items on Jay’s taskbar would then change from shape options to color options, and the user could then select a color. Therefore, once the user selected a shape and a color, they were ready to go. In addition to drawing capabilities, Jay’s snapshop also included a “clear” feature, where the user could click a “clear” button in the top-left corner to erase everything that was on the screen and start over. Jay also did an excellent job of fulfilling the “tell the user which mode they are in” requirement. Upon selecting a shape and color mode, Jay had a Turtle write the mode that the user was currently in the top-right corner of the screen.
So really even with his snapshot, Jay had already fulfilled many of the drawing app requirements. The only improvement that he mentioned in his snapshot reflection was that he was unable to figure out how to retain the “shape” mode after the user switched color modes. Essentially, if I was drawing red triangles and wanted to draw yellow triangles, after switching my mode to “yellow” I would have to reselect “triangle”. But again, despite this bug, I felt like Jay’s snapshot was pretty near to its completed form.
Upon reading his reflection and milestones for the final version of his drawing app, I was able to gain insight into his coding process. Basically his initial milestones revolved around the basic requirements of the class (“draw a shape”, “draw a line”, “choose a color”, etc). From there, Jay added milestones based off of whatever additional features he wanted to add and also what bugs he ran into during the first iteration of coding his app.
This milestone methodology was reflecting in the final version of his drawing app. Unfortunately, Jay was unable to figure out a way to genuinely retain the user’s shape mode whenever a user selects a new color. However, Jay was able to create a work around where he simply changes the shape mode to “none” whenever a person’s color changes (at least informing the user that a new shape must be selected/re-selected). Additional features were also added to the final version of Jay’s drawing app. The most significant being that Jay added a “size” mode to the program. By pressing 1, 2, or 3 on the keyboard, the user could toggle between drawing small, medium, and large sizes respectively. An additional “size” notification was added to the top of the screen, informing the user of what size they were currently drawing in. Overall I thought Jay’s program was excellent. The interface was intuitive, and it did a good job of informing the user of exactly what mode they were drawing in. The only deficiency I would see is that I think some of the functions could have been refactored better. But I guess ultimately that is a stylistic suggestion rather than a functional one.
Refactoring aside, Jay’s program included a lot of aspects that my program lacked. And honestly looking over Jay’s code really showed me some tips on how my program could have been taken to a higher level. Some obvious things that Jay’s program had that mine lacked were a better notification of what mode the user was in, the use of for loops, and the granting of the ability to the user to draw shapes. With this said, I am glad that Jay was my partner because I feel like a learned a lot.