What the Heck is Checkpoint?

At some point, all of us computer users have experienced the pain, frustration and anxiety of losing some amount of work due to an application that has “unexpectedly quit”. Losing your work to a system error needs to only happen once before one becomes more vigilant about saving work or creating a backup. When creating apps in App Inventor, it is easy to forget to “save” because the platform does it for you (every 5-30 seconds). In theory, there is no need to save a project that is already being saved. But, in reality, I would recommend to save, save, save.

Given that advice, what are the App Inventor saving options?

You can save projects in App inventor and to your computer. All of the options are under the Projects Menu (in both the Designer and Blocks Editor). You will find Save project, Save project as… and Checkpoint along with Export selected project (.aia) to my computer and Export all projects.

Checkpoint 1Save project is the manual version of the automatic save feature. It merely reassures you that your project is saved and you continue working in the same version of your project. Use Save project for peace of mind.

Save project as… works similarly to a Save As in Microsoft Word. It allows you to save the project with a different name and afterwards, begin working in the new version of the project. Your previous version is saved in My Projects. Use Save project as… for peace of mind.

Checkpoint also makes a copy of your current project, but allows you to keep working in the original project. Creating a Checkpoint, essentially takes a snapshot of your project at a point in its development and saves it in My Projects. You may want to create many Checkpoints along the course of building your app as it grows in complexity. For example, if you create a Checkpoint before you add a database then encounter a problem or a bug that you are not sure how to fix, you can always re-open the Checkpoint that did not contain the database and start anew.

When you create a new Checkpoint, App Inventor shows you a list of previous Checkpoints and the time/date they were saved. Checkpoint 2

Once you have completed your app, you always have the option to delete or keep your Checkpoints. Use Checkpoint for peace of mind.
Checkpoint 3

In addition to saving your projects within the App Inventor platform, you can also export your projects.

Export selected project (.aia) to my computer is a feature I cannot recommend enough. It’s easy, easy, easy to save an .aia file to a location on your computer and/or to an online storage system like Google Docs or Dropbox. And if you ever need to open that .aia file, just select Import project (.aia) from my computer… to bring it into your projects list in App Inventor. Use Export selected project (.aia) to my computer for peace of mind.

Tip of the day: For complete peace of mind, save your work within App Inventor and export your work to your computer.



FirebaseDB is the new App Inventor web database. Kind of. The uncertainty stems from the fact that this new web database component is currently being beta tested and will be updated based on user feedback. You can try it out, but don’t get too attached to its current form, because features may change by the time it is fully integrated. In case you forget this fact, you will be reminded every time you try to add this component to your project. Housed under the “Experimental” Palette drawer in the Designer, dragging this non-visible component to the Viewer will result in an alert reminding you of its provisional existence.

Fire 1Fire 2

I already love FirebaseDB and use it as if its current form were a permanent addition to my coding repertoire. Why is FirebaseDB so great?

Databases are used for many of reasons in mobile apps such as: to keep track of high scores in a game, to count the number of votes in an election, to save a variety outgoing text messages or to store the names of RSVPs to a book club event. FirebaseDB stores data in the cloud, which is helpful if you are perhaps vying to become a high scorer of a game. For such apps, both the app programmer and app user want this sort of data to be shared and persistent, meaning that once the app closes, the information is not gone forever, it will be saved and retrieved for all to see once the app reopens.

Fire 3.png

Example: For a simple note-taking app, users enter their username and a note and the app will display the note, the username and a time/date stamp. For this app to work, it must save and display notes from different users on various devices- a perfect scenario for FirebaseDB.

We programed this app so that when the user clicks “Submit,” the app stores data using the StoreValue block. In this case, it adds the values (user’s name, note, and date/time stamp) to a list called “global notes”. This information gets stored in the FirebaseDB under the tag that we named, “notelist”.

Fire 4.png

Each time the app opens, the GetValue block requests the most updated values stored under the “notelist” tag from the Firebase Service. When the value is received, the GotValue event fires retrieving the values saved in “notelist” and displays them in a List View.

The Firebase DataChanged event gets triggered anytime any user adds a new note. This is the amazing part because with FirebaseDB, all app instances receive this data and thus, are consistent. The previous App Inventor web database, TinyWebDB, did not have the ability to share data globally in this manner.

Fire 5.png

To become familiar with FirebaseDB, try building this note taker app and test how values from various users get saved, updated and displayed Or better yet, build a game app and see people around the world vie for the top scorer position!




*Note that the App Inventor emulator does not support the FirebaseDB component.



Hue New?

One only has to read a few tweets about the Uber or Instagram icon re-design to know how passionate people feel about mobile app design. Creating a Color blog 1user-friendly (and pleasing) interface is as important as creating code that functions properly. Many App Inventor users assume that all UI features are found in the Designer. However, this is not the case in terms of colors. Over and over, I hear people reveal their frustration about the limited amount of colors available in App Inventor. At first glance, the Designer does seem to only offer a list of 8 saturated colors, along with white, black and a few grays. But really there are a multitude of color options if you know where to look. All you need to do is head over to the Blocks Editor.

Notice in the left menu, under “Built-in” there is an item called: Colors. Clicking on it reveals a list of color blocks that would once again lead you to believe that saturated colors are indeed the only options. Don’t be fooled.Color blog 2.png

Once you click on a color block, it will appear in the Viewer and clicking again on the actual color inside the block reveals a 7 x 10 grid of color hues! Hue new? Now you can select pastels, deeps and a range in between.

Color blog 3.png
What can you do with all of these color options? Well, since they are housed in the Blocks Editor, you can incorporate them into your code. For example, you can change the color of a component, (a button, a label, a screen background, a layout) by using the screen initialize block.

Color blog 4When your app launches or when you make a change in the Designer, the components will receive their newly hued instructions and your previously boring grey buttons will come to life!

Color blog 5.png

App Inventor Education Taking off in China!

There are many stories about competition and strife in US-China relations, as well as the profound differences in our cultures. This is a story, instead, of collaboration, the story of US and Chinese citizens uniting for the common goal of better educating students for the 21st century. What better agent than education to illustrate the amazing commonalities between peoples?

MIT App Inventor is the catalyst of change, a coding language perfectly suited for teaching and inspiring young people to learn how to create and solve problems in our rapidly digitizing world. While App Inventor education has rapidly expanded in the US since its inception at Google in 2009, it has been widely unavailable in China. Thanks to the efforts of the extended MIT App Inventor team and some extraordinary educators in China, this creative way of teaching computational thinking is now also taking off in China.

Hal Abelson, director of the MIT App Inventor team, has led the project from the US side. App Inventor was inaccessible in China because it runs on Google infrastructure, so Hal, Jeff Schiller, Weihua Li, Andrew McKinney, and others facilitated the creation of a version that runs on a different infrastructure and thus can be accessed in China.

But this was only the start. With the help of the extraordinary MIT student Weihua Li, a plan was set in place to jumpstart App Inventor education in China through teacher and student workshops starting in the summer of 2014. The idea spread like rapid-fire and led to the 1st International Conference on Mobile Learning and Computational Thinking Education, Based on App Inventor, which was held in Guangzhou in June (2015)..


Attendees of the App Inventor Conference in Guangzhou. See if you can pick me (David Wolber) out. Hint: I’m the tallest.


Li Yue, South China Univ. of Technology


The conference included representatives from Hong Kong, Taiwan, UK, UNESCO, and the US, as well as over 200 educators from all over China.

I was honored to speak at the conference and to teach a workshop to some K-12 and university teachers. Ralph Morelli of Trinity College and mobile-csp.org also spoke and gave a workshop to about sixty middle schoolers, shown below. MIT was represented by Tech Lead Andrew McKinney, Felicia Kamriani, and the aforementioned WeiHua Li, who spoke at the conference and was also the key translator for the English speakers.

The real story, however, is the amazing efforts of educators in China who are helping spread App Inventor based education throughout the region and country. It is a joint university and governmental project perhaps best exemplified by South China University Professor Li Yue, the conference organizer who has led numerous teacher training workshops throughout South China. I was honored to see her in action, using her relentless energy and charm to teach and inspire.


The students at Ralph Morelli’s workshop were extremely diligent as Ralph walked them through building a “Selfie-Slideshow app”

Dr. Li organized a visit to a school where we saw first hand how App Inventor is making a difference: a roomful of energetic middle school students energized about building apps. Ralph Morelli gave them a workshop, teaching them how to build a “Selfie-Slideshow” app, and it was incredible to see the joy on the student’s faces. On a personal basis, I was happy to see that the students were using a translated version of the App Inventor book I co-authored (along with Hal, Ellen Spertus, and Liz Looney).

Screen Shot 2015-07-03 at 2.43.38 PM

http://www.17coding.net has a translated version of the book App Inventor: Create your own Android Apps

The conference and workshops didn’t solve the world’s problems, but a group of educators from East and West shared ideas on how best to educate young people for the jobs of tomorrow (as well as ideas on one-child policies, free speech, gun control, and the best Beatles songs to play at Karaouke). It was a highlight of my career to participate, not only to help spread a great method of educating students, but to help promote a collaborative spirit between the peoples of China and the US.

App Inventor now has a Gallery!

App Inventor programmers have been working side-by-side in the cloud together, but they might as well have been using stand-alone software as they couldn’t share their experience. I’m pleased to announce that the App Inventor app gallery is officially launched as part of MIT App Inventor. Students and developers can now easily share their apps and code blocks and learn from each other. The gallery turns App Inventor into a shared learning community similar to the one which has been so successful in Scratch. Now all the students, teachers, and developers who were blindly rubbing virtual shoulders can share their apps in a great, collaborative open-source environment.
Click on any app to open it and see its blocks

Click on any app to open it and see its blocks

The gallery was developed by our team in the Democratize Computing Lab (DCL) at the University of San Francisco (the same team that brings you appinventor.org and this blog), working in collaboration with the MIT App Inventor team. Special thanks go to lead developers Bin Lu and Vincent Zhang of USF, as well as mastermind Jeff Schiller of MIT, all of whom put in a long and concerted effort in making the gallery a reality.

The Democratize Computing Lab is generously funded by the W.M. Keck Foundation.

App Inventor Teacher Workshop this Summer in SF!

The University of San Francisco and AppInventor.org will host an App Inventor teacher twitter-usftag-500x500workshop and follow-up activities during the summer of 2015. The workshop will take place over four days, June 29-July 2, 2015, 10 am to 3 pm each day, at the University of San Francisco. The workshop is funded by USF and the Google CS4HS program. You can apply at b​it.ly/usfWorkshop.

Learn App Inventor coding and how to teach it in a 4­-day teacher development workshop funded by Google and USF. Coding apps for phones and tablets is a fantastic way to learn computer science and computational thinking! The workshop is free. If you can commit to teaching in 2015-­2016, you may also be eligible for a $1000 stipend!

Teachers from all levels are welcome to participate. No prior coding experience is required. The workshop will start at the beginning with both coding and the App Inventor language, and will focus on how to teach the material to beginners. The workshop will be taught by USF Professor Alark Joshi and USF Professor and App Inventor author David Wolber.

University of San Francisco Campus, 2130 Fulton Street, San Francisco, CA 94117

appinventororgThe workshop will prepare you for teaching either a complete programming course or a coding module in an existing course. The topics and material discussed will be appropriate for many programming courses and levels, including the High School Computer Science Principles (CSP) curriculum that is being piloted as a new AP course. You will be introduced to two popular existing on­line courses, Mobile CSP (m​obile­-csp.org)​ and Professor Wolber’s App Inventor Course­-in­-a­-Box (a​ppinventor.org)​.

Community of Practice
Our goal is to foster the community of App Inventor teachers in the Bay Area. We will offer two ways to continue after the workshop: (1) We’ll provide three weeks of follow­-up guidance after the workshop (July 6­-24, 2015) including once­-a­-week  meetups as you continue with the Mobile CSP on-­line course, and (2) During the school year, we have funds for a limited number of USF students, experienced in App Inventor programming, to assist you in the classroom. If you can commit to teaching App Inventor in 2015­-16, you may be eligible for a $1000 stipend.

Please apply for the workshop at b​it.ly/usfWorkshop. ​Slots for the workshop are limited, but we will accommodate as many teachers as we can.

Democratizing Computing with App Inventor: new article

Screen Shot 2015-02-11 at 10.36.53 AMI teamed up with App Inventor creators Hal Abelson (MIT) and Mark Friedman (Google) on the article, “Democratizing Computing with App Inventor”, which was recently published as first education column in the inaugural issue of Get Mobile ( from ACM SIGMOBILE Mobile Computing and Communications Review). Hal and Mark developed App Inventor from the ground up at Google. Hal continues to lead its development at MIT with Mark contributing significantly. The article introduces App Inventor and its history, and tells some of the great success stories.

The article is now available here and in the ACM Digital library.