2020 Year in Review - App Inventor Development

Jan 12, 2021 evan's Blog

This year we had a total of 199 commits to the App Inventor open source repository, which included 88 commits from 27 contributors external to MIT. We performed thirteen releases this year including seven companion updates. This is two more contributors than last year. Welcome to everyone new this year who contributed!

We’d also like to give a special shout-out to @BeksOmega, who was the most prolific external contributor with 28 contributions during the year. Our thanks also to @elatoskinas, @mark-friedman, and @fturbak for their mentorship during GSOC 2020.

Android Features

The year 2020 saw a number of big features make it into App Inventor. We added support for dictionaries to the blocks language, including new support for working with JSON and XML. The designer also gained the ability to modify multiple components at once as well as copy-and-paste support. We also saw the addition of new components such as the Navigation component.

Over the summer we also updated App Inventor to target Android SDK 29 (Pie) in compliance with Google Play Store requirements. At this time we also made some improvements to App Inventor running on Chromebooks. This included a special Chromebook connect option when developing apps on Chromebooks that automatically launches the Companion app and connects the project for preview. In further support of editing projects in new environments, we did some work to improve App Inventor’s editor on touch screens such as tablets. This allows people to edit apps in a split-screen mode between the browser and companion app on Android and iOS devices (for those in the beta testing program).

This year we also released a new gallery. The first gallery was released in 2014 but was tied specfically to ai2.appinventor.mit.edu. Our new gallery can connect with multiple instances of App Inventor, including ai2.appinventor.mit.edu, ai2-test.appinventor.mit.edu, and code.appinventor.mit.edu. This new gallery also includes a Studios feature similar to other coding environments (e.g., Scratch) that teachers can use to receive submissions from students for classroom management, among other uses.

In the world of extensions, we released Artificial Intelligence extensions powered by TensorFlow.js capable of recognizing objects, training custom visual and audio classes, and for pose estimation. We also published the Extension Template repository, which allows for building App Inventor extensions without needing to acquire and setup building the whole system. This decreases build times and makes it faster to iterate on extensions.

Google Summer of Code

This year we had six students participate in App Inventor as part of Google Summer of Code. The projects implemented were:

  1. Android App Bundles - Apps can now be built as Android App Bundles for distrbution via the Google Play Store.
  2. Platform Style Preview - Preview your app on different platforms by changing the designer preview of UI elements.
  3. Dropdown Blocks - Blocks for closed sets of options, assets, and screens make for more readable code with less opportunities for errors.
  4. Tab Arrangement - Create tabs in apps to organize components into logical containers.
  5. Menus - Customize the menus in apps, along with an implementation of the sidebar and floating action button found in newer app designs.
  6. Visible Component Extensions - Extension developers can now implement extensions that appear in the designer and interact with other components visually.

This was a very successful Google Summer of Code and I want to particularly thank Susan Lane for taking the lead on organizing the effort. We are in the process of reviewing and merging these changes. Next year, Google is changing the structure of the program. We will be adapting our approach to GSOC to accomodate. For those of you interested in participating in GSOC 2021, please keep an eye on the Open Source group for an announcement.

iOS Progress

We’ve made significant progress toward our goal of releasing MIT App Inventor for iOS. We have been working steadfastly to get the companion approved by Apple for inclusion in the App Store. We also have more than 5000 people participating in beta testing with TestFlight.

Furthermore, we have implemented a prototype of the build infrastructure for iOS apps. We are testing this internally and will be rolling it out in stages to those participating in our beta testing program early next year.

Lastly, I would like to wrap up by personally thanking the core development team members, Susan Lane, Li Li, and Jeffrey Schiller for their efforts in what has been a difficult year for everyone with the pandemic. Thanks also to everyone who contributed to App Inventor development this year and I look forward to future contributions.