MIT APP Inventor Extension
MIT APP Inventor Extension
App Inventor apps are built using components. Components let the apps use the
built-in features of the mobile device (like Camera or LocationSensor) or services on the
Web (like Twitter or FusionTables). App Inventor includes a large collection of
components, and the App Inventor development team adds new capabilities to the
system by implementing new components.
One use of extensions, for example, is for educators and educational software
developers to provide extension components tailored to specific lessons and activities that
students can use in building apps. Examples might be simulations or data analysis
tools. Those apps might be unfeasible to create directly with the built-in App Inventor
blocks, either because of processing speed or programming complexity. But those same
apps might be readily programmable in the App Inventor framework, using extension
components that perform the necessary processing.
Anyone can create extension components. This requires gaining familiarity with
the App Inventor source code (located on Github) and programming the extension in
Java. Extension components are packaged as aix files. Once you create an extension
component, anyone can use it in their App Inventor projects. Extension component aix
files can be housed anywhere on the Web. The aix files need not be stored at MIT or
any other particular place, although MIT hosts a repository where people can make aix
files available for sharing and public use.
Note: One limitation of the current extension component implementation is that it creates
non-visible components only (i.e., components that do not show on the designer
screen). MIT plans to remove this restriction in future versions of the extension
component system.
You’ll generally want to keep the default name. See the section below
on naming for cases where you might want to choose a different name.
Once you import an extension, it will appear in the components palette under the
extensions category as shown in the figure below.
After importing an extension, make sure to restart the companion app, else an
error may occur.
`
(warning when you give the extension a name that already exists in the project)
If you are developing extensions (not just using them) you can choose extension package
names to help minimize name conflicts.
In either case, people importing the extension will need to look to extension developer
to provide information about updating projects that import the extension
Warning: The extensions system is still experimental and the internal format of
extensions is changing. If you create a project (aia file) that imports an extension, it is
possible that the extension (and the project) will stop working when the extension system
is upgraded. You’ll have to rely on the extension developer to provide an updated
extension.