[Free / Open Source] - Dynamic Components Extension (for all AI components)

Hi, I want to introduce my new extension which allows creating components dynamically!

But, you may ask;
“There is an already bunch of different Dynamic Components extension, why did you create another one?”
Because this one is different!

I thought about a full method to create all dynamic components without creating different blocks for every component, but it would be useless. So I was trying to find a proper solution for a long time. And here it is!

It basically uses Java’s Reflection feature, so this allows you to create ANY component you want dynamically which added to App Inventor (includes Kodular components too if you use Kodular). Not only a Button, but you can also even create a DatePicker dynamically. Just type the component’s name which you want to create, that’s it! :star_struck:

What is the reflection and how does it work?

Reflection (in programming) allows you to modify the program during runtime, for example, you can create a new Class, Method, etc. and search them by its names!

Basically, it appends componentName parameter to the com.google.appinventor.components.runtime. text and creates an instance of it. When you type “Button”, it searches for Button class and creates an instance of it.

So with this method, it is now a fully implemented dynamic component extension.

I must say Java is a powerful language :grin:


Blocks

FAQ

  • How can I set the properties for the blocks?
    You have two options and both does the same job:

    • SetProperty
      image
    • or Any Component
      image
  • How can I delete all components?
    Use a for-each loop for that.
    image

Download

Version 1.2.1
com.yusufcihan.DynamicComponents.aix (13.4 KB) (v1.2.1)

Looking for old releases and changelog? Check it from here.

GitHub

You can post in topic for help, a question about this extension, or PM me anything about you want to talk!

- Yusuf Cihan

71 Likes

Now That’s a Real Dynamic Component Extension :+1:

9 Likes

Absolutely right @Abhijith_Dominic,
For me it is the best Extension :ok_hand: :ok_hand:

4 Likes

Nice extension. Keep up the good work.

3 Likes

thanks for making this extensions :sweat_smile:

2 Likes

The components in MiTApp inventor do not have many features like you cannot change the font of button or lable, so what can we do with the help of this extension ?

Good Job! Way to go!

1 Like

Good joob, and thanks!

2 Likes

helal olsun (özellikle Türkçe yazmak istedim)

2 Likes

it’s really amazing :heart_eyes: :heart_eyes:

1 Like

I don’t like Discourse anymore… Because it doesn’t let me give 100 likes to a post!!! :star_struck:
Excellent job @yusufcihan!!!
I’ll check it with the update to my brick breaker game and see how it handles creating 238 sprites for the bricks (The current version has 70 bricks total).
I know is a lot, but since they are all static, I think it will not be a problem.

13 Likes

You can’t in App Inventor (not Inverter) but you can in Kodular. With this extension you can create components at runtime instead of creating them in the designer. And you can change the properties of those dinamically generated components by using the Any component blocks.

6 Likes

Can we create dynamic banner ads with the help of this extension?

1 Like

Does the Remove block, actually removes the component completely from memory?

1 Like

How can i edit component
can i edit it with “Any Component” feature in blocks

Kodular is now 60% of Android Studio
10% for more features
20% for background working
10% bugs

1 Like

Yep, it removes from layout (not hide) and removes its ID from created component list. So you can create a new component with same ID.

6 Likes

Yes. You need to use Any Component blocks for editing the components.

I love this reaction :rofl: Thank you! :smile:


By the way, thanks for your interest about this extension, you all made me happy! :blush: Let me know if you need another thing which is not implemented in App Inventor yet. I’d love to create new possibilities for everyone. :grin:

11 Likes

Can we make an cardview with that

1 Like

Edited: Yes, just use MakeroidCardView name.

7 Likes