All Projects → ysfchn → DynamicComponents-AI2

ysfchn / DynamicComponents-AI2

Licence: MIT license
An App Inventor extension to add full support for creating any type of component at runtime, in your app.

Programming Languages

java
68154 projects - #9 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to DynamicComponents-AI2

ML4K-AI-Extension
Use machine learning in AppInventor, with easy training using text, images, or numbers through the Machine Learning for Kids website.
Stars: ✭ 18 (-61.7%)
Mutual labels:  aix, appinventor, appinventorextension
github-readme-streak-stats
🔥 Stay motivated and show off your contribution streak! 🌟 Display your total contributions, current streak, and longest streak on your GitHub profile README
Stars: ✭ 1,395 (+2868.09%)
Mutual labels:  dynamic
uac
UAC is a Live Response collection script for Incident Response that makes use of native binaries and tools to automate the collection of AIX, Android, ESXi, FreeBSD, Linux, macOS, NetBSD, NetScaler, OpenBSD and Solaris systems artifacts.
Stars: ✭ 260 (+453.19%)
Mutual labels:  aix
scavenger
Scrape and take screenshots of dynamic and static webpages
Stars: ✭ 14 (-70.21%)
Mutual labels:  dynamic
default-gateway
Get the default network gateway, cross-platform.
Stars: ✭ 77 (+63.83%)
Mutual labels:  aix
pkcs11-tools
A set of tools to manage objects on PKCS#11 crypotographic tokens. Compatible with any PKCS#11 library, including NSS.
Stars: ✭ 70 (+48.94%)
Mutual labels:  aix
dtw-python
Python port of R's Comprehensive Dynamic Time Warp algorithms package
Stars: ✭ 139 (+195.74%)
Mutual labels:  dynamic
simple json
Simple way to dynamically convert from and to JSON using build-time generators given a type.
Stars: ✭ 15 (-68.09%)
Mutual labels:  dynamic
godot-InventorySystem
Easily modifiable Inventory System ready for use. If you need anything further, you can add it.
Stars: ✭ 27 (-42.55%)
Mutual labels:  dynamic
AgileStringDecryptor
a dynamic Agile.NET string decryptor that relies on invoke by wwh1004 | Version : 6.X
Stars: ✭ 24 (-48.94%)
Mutual labels:  dynamic
steps
Simulation Toolkit for Electrical Power Systems
Stars: ✭ 23 (-51.06%)
Mutual labels:  dynamic
DPB
Dynamic Project Builder
Stars: ✭ 22 (-53.19%)
Mutual labels:  dynamic
lp-loader
Frictionless language packs for Webpack.
Stars: ✭ 14 (-70.21%)
Mutual labels:  dynamic
SuluFormBundle
Form Bundle for handling Dynamic and Symfony Forms in https://sulu.io
Stars: ✭ 51 (+8.51%)
Mutual labels:  dynamic
dynamic-input-fields-reactjs
Example of the dynamic input fields in ReactJS
Stars: ✭ 31 (-34.04%)
Mutual labels:  dynamic
tenjin
📝 A template engine.
Stars: ✭ 15 (-68.09%)
Mutual labels:  dynamic
aqua-core
Transform any object-graph into a dynamic, composed dictionaries like structure, holding serializable values and type information
Stars: ✭ 17 (-63.83%)
Mutual labels:  dynamic
ODYM
Open Dynamic Material Systems Model
Stars: ✭ 36 (-23.4%)
Mutual labels:  dynamic
github-readme-linkedin
📋 A serverless application to get dynamically generated images from your LinkedIn profile on your GitHub READMEs
Stars: ✭ 52 (+10.64%)
Mutual labels:  dynamic
ai-unchive
AIA Viewer for Kodular
Stars: ✭ 18 (-61.7%)
Mutual labels:  appinventor

Icon

DynamicComponents-AI2 Extension

forthebadge

Maintainability

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 the main branch if you don't know what you do.


Asynchronous support

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).

🧩 Blocks

Block Description
Creates a new dynamic component. It supports all component that added to your current AI2 distribution. componentName parameter can have these values:

Name of the component.
Doesn't require to add existing component.
Only components can be created.
Block of existing component to create new one from it.
Requires a existing component.
Extensions can be created also.
Full class name of the component.
Doesn't require to add existing component.
Extensions can be created also.

To learn the class name of the component use GetName block.
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.

🔨 Building

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.

🏅 License

Source code is licensed under MIT license. You must include the license notice in all copies or substantial uses of the work.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].