Saturday, September 6, 2014

Week of Sept. 8 -12

Please remember that AppInventor is new material for me, and I don't know how long these lessons will really take. This plan will be adjusted as necessary.

("Good Questions" homework due)
I think everyone will be able to finish "I Have A Dream" parts 1 and 2 by the end of class

If you do finish, see what you can do with


(For today, read App Inventor Architecture and be prepared to both ask and answer questions.)
(Also for today, look at:  (event handlers) and (conditionals))

Start working on PaintPot part 1 and part 2


(Current events can be handed in)
(For today, look at (using the Canvas component for drawing), (properties of AI components), and  (using variables to remember values that have to be used in a program))

Continue to work on PaintPot part 1 and part 2.  Parts 1 and 2 are to be done individually.
When you finish, work on extensions (with another person, if you wish):
  • The user interface in the PaintPot tutorial app does not display the current chosen color-- the user can only tell what color will be drawn by actually drawing. Add immediate feedback for the user so that when he clicks to change color, the UI changes to make it clear which color is chosen(e.g., when a color button is chosen, change the background color of the button to its color, and gray others)
  • The dot size used for circle drawing can only be 2 or 8 in the text version of the tutorial. Change this so that the user can enter the dot size with a Slider component, and can change it to any reasonable size (you decide what is reasonable).
  • Provide a way for the user to control the thickness of the lines that are drawn, similarly to how the dot size can be changed. Hint: Check out the properties of the Canvas component for one concerning line width.
(For today, look at (incrementing and decrementing values) and (using the Clock component to do some action at a regular interval))

Students work on MoleMash

Students wrap up MoleMash. Spend the remaining class time customizing it. Here are some possibilities:

  • Customize the app with a different image (not a mole), a canvas background image, and custom sound effects. 
  • Add a label to keep track of and display the number of times the mole has appeared (moved). 
  • Add a second ImageSprite with a picture of something that the user should not hit, such as a flower. If the user touches it, penalize him by reducing his score or ending the game. 
  • Allow the user select a picture for the “mole” using the ImagePicker component. 
  • Allow the user to specify how fast the mole should move either with faster/slower buttons or by entering a number in a textbox. The number should be in "jumps per second" and this should be clear to user. If a textbox is used, constrain the app so that the user can only enter a number that is reasonable for the speed of the mole. If the user enters an invalid number, display an error message using the Notifier component and keep the speed as it was. 
  • Show the user's score using a colored bar that changes in size instead of a label. 
  • Add "levels": when the user hits the "mole" x number of times, make the mole go faster automatically and show the user that the level has changed. 
  • Keep a high-score for the user and display it in the app. 
  • Remember the high-score the next time the user plays, using TinyDB
The last 15 minutes of class are to write up what you did as an MS Word document. Submit an image of your app's blocks, one or more screen shots of the emulator as your app is running, and a description of the features you added. If you worked with a partner, you can submit one writeup for both of you -- be sure to include both names!  This can be turned in at the end of class on Friday, or the beginning of class on Monday.