Fully supported Dynamic Components extension for MIT App Inventor 2. It is based on Java's reflection feature, so it creates the components by searching for a class by just typing its name. So it doesn't have a limited support for specific components, because it supports every component which is ever added to your App Inventor distribution!
So if you use Kodular, you will able to create all Kodular components, if you use App Inventor, you will able to create all App Inventor components and so on. Extension components are supported too!
⚠ The
beta
branch will be reset after every release. So stay on themain
branch if you don't know what you do.
This extension can create components asynchronously or synchronously based on your choice. If you don't want to block the main app during creating a bunch of components, go to the Designer (after importing the extension) and select between "UI" (asynchronous) and "Main" (synchronous).
Block | Description |
---|---|
Creates a new dynamic component. It supports all component that added to your current AI2 distribution.
componentName parameter can have these values:
|
|
Changes ID of one of created components to a new one. The old ID must be exist and new ID mustn't exist.When replacing an ID, it will loop through ALL IDs and replace each one that contains the old ID! Even if the ID you're wanting to replace is "Timmy", but there are IDs like "Timmy-truck". To be clear again, only "Timmy" from "Timmy-truck" will be replaced, the "-truck" part will stay the same! |
|
Creates components from JSON string. Refer to the Wiki about creating your own templates. | |
Removes the component with specified ID from screen/layout and the component list. So you will able to use its ID again as it will be deleted. | |
Set a property of a component by typing its property name. Can be known as a Setter property block. It can be also used to set properties that only exists in Designer. It works for common types. For other values, you should use Any Component blocks. |
|
Same as SetProperty block, but for setting the properties with Dictionary. Dictionary keys equal to property names and Dictionary values equal to property value. |
|
Returns the component's itself for modifying purposes.
ID must be a valid ID which is added with Create block. ID --> Component |
|
Returns the ID of component. Component needs to be created by Create block.
Otherwise it will return blank string. Also known as reverse of the GetComponent block. Component --> ID |
|
Gets the position of the component according to its parent arrangement. Index starts from 1. | |
Sets the position of the component according to its parent arrangement. Index starts from 1. Typing 0 (zero) will move the component to the end. | |
Moves the component to an another arrangement. | |
Get a property value of a component by typing its property name. Can be known as a Getter property block. It can be also used to get properties that only exists in Designer. | |
Get meta data about the specified component. | |
Get meta data about events for the specified component. | |
Get meta data about properties for the specified component. | |
Get meta data about functions for the specified component. | |
Returns the last component's ID. | |
Returns all used IDs of current components as App Inventor list. | |
Makes a random unique UUID. Use this block in Create block if component ID is not required for you. | |
Returns 'true' if component has created by Dynamic Components extension. Otherwise, 'false'. | |
Calls a method of any component. If the return value is not important for you, use with evaluate but ignore result block.
|
|
Returns the version of the extension. | |
Returns the version name of the extension. | |
Raises after Schema has been created with Schema block. | |
Raises after a component has been created. |
You will need:
- Java 1.8 (either OpenJDK or Oracle)
- Ant 1.10 or higher
Then execute ant extensions
in the root of the repository.
Source code is licensed under MIT license. You must include the license notice in all copies or substantial uses of the work.