The MIT App Inventor team is delighted to announce the availability of Extension Components for testing. We hope the Extension Components will prove to be a major enhancement to App Inventor: Extensions provide a way for anyone to build their own App Inventor components, which others can then use in creating apps.
App Inventor is free and open software, so people have always been able to build personal systems and install their own components. But until now, the only way to make those components available to others has been to create and maintain a personal App Inventor server that has those components built in.
Extension components, in contrast, can be loaded dynamically into any App Inventor system, so they can be shared and imported into projects as needed. For example, educators and educational software developers to provide extension components tailored to specific lessons and activities, so that students can have these available in building apps. Examples might be simulations or tools for large-scale data analysis, or image recognition. Those features might be unfeasible to implement with the built-in App Inventor blocks, either because of processing speed or programming complexity. But the same capability might be readily implemented using extension components that encapsulate the necessary processing.
Anyone can create extension components. This requires gaining some familiarity with the App Inventor source code (located on Github) and programming in Java. Once you create an extension component, you can share it with anyone for use in their App Inventor projects. Extension components can be housed anywhere on the Web. They need not be stored at MIT or any other special place, although MIT hosts a repository where people can make extension components available for sharing and public use.
Today, we’re releasing a test server for App Inventor that supports the Extension Components feature. You can find it at extension-test.appinventor.mit.edu. There’s also a document called App Inventor Extensions that explains how to create and use Extension Components. Once we've accumulated enough feedback, we'll make extension components a regular part of App Inventor.
With extensions, the range of App Inventor features can be expanded enormously. We hope that people will explore this tool to build new capabilities for App Inventor and their creations.
--
The implementation of App Inventor Extension Components is the work students who participated with the MIT App Inventor team in through Google Summer of Code: Ethan Hon, Justus Raju, and Mouhamadou Sall. Other summer GSoC App Inventor participants in 2015 are Devid Farinelli, Yucun Li, and Shruti Rijhwani. All of them are extraordinarily talented, and the entire App Inventor community is in their debt.
--
Great news.
Would there some central location/repository where people might contribute the extensions or at least information on where the extensions are actually hosted ?
Would it be possible (eventually) for the extensions to be written in Py4A/SL4A as well ? That could lower the bar, or extend the spectrum of potential contributors wider.
--
Reading through the extensions documentation now, brilliant, this will be a game changer,well done folks , much appreciated !
--
Thanks for the nice words.
MIT will be hosting a repository for extensions, after we get more experience.
Extensions are written in Java. But you ought to be able to run programs Inpy4A/SL4A by creating an appropriate Java interface to call them.
We haven't played with that at MIT, but perhaps someone will contribute such an interface to the repository when it opens.
--