Coding Languages needed to make an extension

For more resources, you have App Inventor (open source) in GitHub:

Stack Overflow:

Android Developers:

Even Google (search on Google when you have things that you do not know).

2 Likes

We can also use Grepper (which I use almost daily) for learning and practicing App Inventor extensions Java code! You may use it for reference...

1 Like

You can learn from @Taifun's open-source extensions:

A huge extension of @vknow360:

Some extensions by @Kumaraswamy (check their list for finding extensions that are open source):

3 Likes

Basically java is needed for that you can use appinventor sources, extension template, appybuilder ide, niotron ide
But currently the extension building tool Rush has introduced kotlin so you can try it also.

2 Likes

If you are looking for a simple, online IDE, use https://ide.niotron.com.

If you are looking for an advanced offline tool, use Rush.

However, it is always good to learn the languages before you start making extensions. Don't just Copy and Paste codes you find. Start from the basics - for example, a simple addition program with Java. Then, learn how extensions are structured. For example:

  • Importing classes.

  • Adding blocks for your extension.

  • Add features for it to be available in the Designer to edit its properties (note: most, if not, all extensions are non-visible).

2 Likes

Currently, ALL extensions are non-visible.

3 Likes

Rush is not an IDE.

3 Likes

Would we rather say 'Rush, is an extension IDE compiler'?

1 Like

.....

Compiler is a program that converts instructions/data into machine language. So, I say javac is a compiler when compiling any extension.
Rush provides a powerful environment to create an extension. So, Rush is a development tool.

4 Likes

you need to be very good at java , you can use rush tool to help you build it , but still not easy thing and not much guides or tutorials about it.

2 Likes

It can be easy as a piece of cake if you understand its concepts, structure, etc.

There are a lot of guides about extension development, even if you are only talking about Rush. I have seen some YouTubers making extensions with Rush.

It depends on what extension you are talking about. A newbie in Java can create an extension that solves simple math problems.

3 Likes

I'll also try to make an video on it after 19 march

1 Like

i didn't mean simple math problems like +/- or square root ... etc

i mean some UI components or some new component to be added which is the basic idea of the term extension existence

Read this sentence again.

1 Like

If you have any doubts then post in community they are there to help :wink:

1 Like

If an extension builder were App Inventor:

  • the classes (import) are components, but unlike App Inventor, if you want to use a class, you have to define it.

  • the libraries (@UsesLibraries) are extensions - they are outside of the built-in classes.

  • the permissions (@UsesPermissions) are the Screen.AskForPermission block - they need to use that particular permission.

  • everything else (@SimpleSomething, @Override) are blocks - they tell the extension how to behave.

  • the Compile Extension button is the Build > APK option - it compiles the extension.

  • us, users who finds that extension are the app users - we use that extension.

Just to let people understand a basic structure of extensions...

Since when did @Override became a block? its used when implementing a interface

again no those are java codes meant to shorten our work.

Well, they have one similar point - anyone can develop libraries (extensions), and you mentioned the exact point -

They can be made by external people, not just Google. Same thing for extensions - they don't have to be developed by the MIT, they can just be developed by normal people.

They can be blocks, only for the fact that they don't exist as blocks. Maybe some day there will be a Override block in a block language. Just a metaphor :no_mouth:

A quick nutshell of this topic - choose a good extension builder, learn Java, understand the structures of extensions, code the extensions, and you're done.

2 Likes

just because they have similar point does not mean they are same

1 Like

I think the theory of including @Override in this list is that the App Inventor annotation processors use this to exclude the other @Simple* annotations in the parent class, effectively allowing one to hide blocks that were defined in the superclass. Technically, this allows one to "undefine" blocks.

4 Likes