This workshop is part of the CS4HS program at the Department of Computer Science, University of Toronto.
This page contains links to some of the material that we will refer to during the workshop, as well as quick summaries of some instructions you'll read in more detail in their original.
Links
- The main Learn App Inventor page, with links to key resources from Google
- Language reference
- Users' discussion forum
- Google Group App Inventor In Education
- Professor Wolber's Course at USF; includes a draft textbook
- Map showing who's teaching with App Inventor
- Professor Wolber's App Inventor Blog
Tutorials / examples
- The official tutorials from Google
- Community tutorials (linked from the official App Inventor website)
- From the theairepository website:
- links to tutorials
- links to source code
- source code from appinventorblocks.com
Running App Inventor
- Start the Designer: go to the App Inventor website and open a [new] project
- Launch the Blocks Editor: In the Designer window, click "Open the blocks editor" (near the top right)
- Connect to an Emulator (or a phone): In the Blocks Editor, click "New emulator" (at the top). Once the emulator is ready, click "Connect to Device".
Setting up App Inventor on your computer
The App Inventor website has full details. Here is a summary of the steps involved:
-
Prepare your computer
- make sure you have an acceptable OS and browser
- make sure you have (or get) Java 6
- make sure that Java is enabled in your browser
- Install the AppInventor Setup software
Suggested sequence through the tutorials
This sequence emphasizes apps that use only the emulator and cover the key elements of App Inventor as quickly as possible. Be sure to look at the other Google tutorials when you are ready to exploit the phone's capabilities more fully.
| Tutorial | Summary | New topics covered | Requires | Comments, further extensions, etc. |
|---|---|---|---|---|
| HelloPurr | Click on picture of a cat to play purring sound | UI component: button (and sensing when clicked); Media components: picture, sound | Emulator only | Opportunity to play around with other basic UI components. Eg, a button to make the cat appear and disappear; a label with instructions. |
| PaintPot | Simple paint program | UI component: drawing canvas (and sensing touch and drag events); Screen arrangement components: horizontal arrangment | Emulator only | Rather than 2 sizes of line/circle, define fatter and skinner buttons |
| MoleMash | Whack-a-mole style game | clock component (and acting when the timer "goes off"); image sprite (and moving it, sensing when touched); procedures; strings; label component (and using it for output); random numbers | Emulator only | Once you learn about tinyWebDB (in MakeQuiz and TakeQuiz), save the highest score |
| PicCall | Choose a phone number from contacts list and click on photo to call | phone number picker component (and acting when the user has picked); phone call component (and making a call) | Phone, but emulator alone can simulate making a call | |
| QuizMe | Trivia game with hard-coded questions and answers | lists, including non-homogenous and parallel lists; screen.initialize; ifs | Emulator only | Replace the if with modular arithmetic |
| MakeQuiz and TakeQuiz | Trivia game where users can create questions and answers that persist and can be shared | tinyWebDB for persistent data; foreach loops | Emulator plus internet | Make another version that is for "Cosmo"-style quizzes |
| MapTour | User chooses from a fixed set of locations and sees a pre-chosen map | listpicker component; activity starter component for launching any Android app | Emulator plus internet | |
| StockQuotes | User types a stock code to get its current price | web component for calling an arbitrary web API | Emulator plus internet | Major extension: use tinyWebDB to build an app that let's the user build a fantasy portfolio and track its value over time. |
App Inventor Bridge (to Java)
- The main readme for the Java Bridge
- A "how to" from Hossein Amerkashi
- Google Groups posting about a camp for high school students that used the bridge
Other Unrelated Stuff
- Course website for the latest fall offering of csc108, our course for beginners (in Python). You may find the lectures, labs, tests and assignments useful. If you use an assignment idea, please don't post solution code.
- Ditto for our winter offering of csc148, our course for students with significant background. (Fall is our biggest term for csc108, and winter for csc148.)
- Installers for the free "101" edition of Wingware, the Python IDE we've used with good success in our introductory courses.
- Webpage of links to some of our other courses. Most courses are not listed there but have public webpages you can find by Googling the course number and "Toronto". Here's a list of our programs and courses.
- The Scratch programming language.