GSoC/GCI Archive
Google Summer of Code 2015

MIT Media Lab

License: Apache License, 2.0

Web Page:

Mailing List:!forum/mitappinventortest

Actively promoting a unique, antidisciplinary culture, the MIT Media Lab goes beyond known boundaries and disciplines, encouraging the most unconventional mixing and matching of seemingly disparate research areas. It creates disruptive technologies that happen at the edges, pioneering such areas as wearable computing, tangible interfaces, and affective computing. Today, faculty members, research staff, and students at the Lab work in more than 25 research groups on more than 350 projects that range from digital approaches for treating neurological disorders, to a stackable, electric car for sustainable cities, to advanced imaging technologies that can “see around a corner.” The Lab is committed to looking beyond the obvious to ask the questions not yet asked–questions whose answers could radically improve the way people live, learn, express themselves, work, and play.

Our GSoC project involves systems development work on MIT App Inventor.  App Inventor is a cloud-based development environment, based on Google AppEngine,  that lets non-programmers, including students as young as middle school,  create original applications for Android smartphones and tablets.    It is the premiere resource for mobile computing development for students and non-programmers, and it is a major exemplar of hosted computing for mobile app programming.   App Inventor runs as a hosted system by MIT that supports more than 200,000 monthly active users -- 3 million registered users in all --  who among them have used the system to build almost 7.5 million apps. 

For more information, see



  • CDK (Component Developer Kit) CDK (Component Developer Kit) is a project I find very interesting seeing that it will add more flexibility to the system. Sometimes, users specifically experienced one, are stuck during there development because a feature they want to use is unavailable as a component. Having a Component Developer Kit will allow them to build their apps more efficiently. Furthermore, this can be a starting point for an open plugin store where developers can submit created components.
  • Component Development Kit App Inventor is the one of the most easiest path from idea to product. Almost everything great and big out there on the internet has one key feature called growth or scalability. Component Development Kit (CDK) for App Inventor just does that. CDK gives App Inventor extendability allowing developers to create custom components not already available in App Inventor. These components can be imported to any App Inventor project hence boosting the development of similar projects.
  • Menu Options For App Inventor Menus are a common user interface component in many types of Android applications, it is used to present user actions and other options in activities. This project aims to enable App Inventor to implement a new Menu component with a set of actions for the options menu and provides click events for each added options.
  • Organizing code in the Blocks editor Currently there is only one main workspace and all blocks will share that. This can be a limitation when the number of blocks grows. It would be a lot easier to work with bigger projects if there was a way to organize blocks, either by feature, or in folders, or in some other ways. Expected results: Implement an easy way to organize code in the blocks editor.
  • Proposed summer project Please go to for the complete proposal
  • Undo Functionality for Blocks Editor This project proposes an implementation that would allow 'undo' operations in the Blocks editor. The Blocks editor allows an App Inventor user to build the control flow of the application being 'invented'. Currently, users have to rebuild or edit components in order to revert to previous states. The 'undo' operation proposed offers a one-step, user-friendly solution for reversing a fixed number of recent actions performed. The operation will sync with the Designer view in App Inventor.