Extensions vs built-in Blocks

As @Patryk_F pointed out in another topic, you cannot upload app projects with extensions to the Gallery, this being due to security issues.

However, I believe this has a broader appeal. App Inventor is primarily here for educational purposes, to help young people get into coding, work on good logic, and to produce something they can be proud of. Educational establishments and their students make heavy use of the Gallery and most curricula go nowhere near extensions because they want their students to think, learn and work things out.

On the other side of the coin, app developers want to get things done, whether that be for altruistic or commercial purposes, and very often App Inventor just does not have the features or components in place for them to achieve their objectives, hence the requirements for extensions, to fill in the gaps.

I agree that over the last year or so there have been a rash of what may best be described as "test" extensions: in which partly or in full the extension blocks provided could be handled with the built-in blocks. Extension developers have got to start somewhere, and this is a good way for them to learn, and should be encouraged, as long as we see that this is a learning experience, and that these extensions are not really intended for general use.

There is a second category, where an extension developer has got their hands on a java library that can do something fancy, so they bang out an extension that does this fancy thing. Usually eye candy, and rarely of any great benefit. We find this in most programming languages, where the hard work of hand coding a method has been resolved by the production of a library.

Now we get into the L337 area, die hard coders versus lazy/newbie extension users, but really we should look back to App inventor's reason for being. Even in my advancing years (!) I find the challenge of working something out good for the brain and for the soul. I look to see what App Inventor can do by itself as much as possible, not because extensions are "bad", but for the satisfaction of working things out.

There are some great extensions out there, many of which really should by now have become built-in components. Long may extension developers reign.

9 Likes

Well, test extensions are not good but if you see the mentality of most of the users (who use AI2 and its distros) want to do things as faster and easily as they can do.
Most of us want simplicity in life so we run behind (test) extensions which do the same thing doable with blocks.
Many can argue and say above is not true.
If so then just look at distributions of App Inventor.
Original Platform is at simplest form but it does not have some features which can make it compatible to Android Studio.
That's why many individuals and teams have created distros of App Inventor.Why? Because they understand metality of users and economics too.
They also do same thing which is possible to do in AI2 with extensions (even more than those platforms).
However, I don't want to say that those disros are doing wrong.
Extensions are the magical potions which give AI2 users more powers.
I am thankful to AI2 Team for such a great feature.

6 Likes

The best point.

:heavy_check_mark:

3 Likes

Just add progaurd if the extension is paid, or free and not open source. :grin:

2 Likes

True, I try to make everything from the beginning until it's very necessary to use.

More

I use the library only for UI related extensions much.

2 Likes

Given that App Inventor is foremost an educational tool, extensions that replace something easily achieved with existing Blocks are detrimental. To become a good App developer requires becoming a good thinker. We are getting more and more cries for help on the Forum from people who have absolutely no idea what they are doing as they have not taken the time to learn. Imagine those same people driving cars or developing software for aircraft........

5 Likes

That isn't what is happening though - it's basically a free-for-all and I think these folly
extensions can diminish the reputation of the truly worthwhile extensions crafted with knowledge, skill and updated in a timely manner.

I do understand that if you want to create extensions, you have to start somewhere. That somewhere though is not just writing a "simple small extension", it's at first gaining knowledge of App Inventor, Android and the protocols of writing and maintaining software. If you are not a competent User of App Inventor, now is not the time for you to be coding an extension that might at some time fail thousands of Apps.

4 Likes

It's worth mentioning that Taifun, with the patience of a saint, spends a lot of time monitoring new extensions and the coding of them.

10 Likes

Few developers make extensive extensions. Recently, there is a fashion for the so-called test extensions. One or two blocks based on a library found on the Internet. The only plus is that the extension developer himself learns to program on such extensions. All mathematical extensions are very simple, after a few attempts even I can do them without having any experience with Java. I also think that users of app inventor should learn programming logic, math, etc., using blocks. It goes really interesting without extensions. And if something can't be done in blocks, then extension is necessary.

9 Likes

I don't know what to say about this but it is very much possible to create a BODMAS calculator in App Inventor without any form of extension but it can take around a thousand blocks and takes a lot of time to solve whereas the same thing can be done with some extensions using just 1 block and takes not even a second. So, which option is better according to you? Using extension to get a fast result OR coding using built-in blocks to get the same answer but a little a slower result.

2 Likes

It depends if you want to learn to program in app inventor, or you just want to make applications.

3 Likes

It can be difficult to way-up and it mostly depends on the track record of the extension developer and whether or not you are going to distribute your App. If the extension isn't updated when Android is updated, it might not work and that obviously would be detrimental to the App and to your reputation. If on the other hand, the App was just for your own use and you just need to slap it together as quickly as possible, the risk is probably worth it. However, you then do not learn the nuts and bolts of App Inventor and we find, when the App isn't quit right, people do not know how to fix their own App because of this.

If you are a young person considering the possibility of a career in software development, extensions should only be used if necessary on the grounds that what needs to be done cannot be with App Inventor code alone.

Lastly, there are certain extensions that provide functionality that really should be built-in to App Inventor, most notably file handling. Hopefully that will be fixed in a near future release.

4 Likes

coeect in that case you can use extension but whereas when it will just need 10 blocks instead of a extension in that case we need a extension

1 Like

.... I have seen Projects use thousands of Blocks because best practice has not been applied. That does not mean an extension is necessary, it means the developer needs to learn more about coding in App Inventor.

5 Likes

I really like the discussion here. I also would like to see users first get the hang of the basic components of App Inventor. But something seems changed. I see users who want to make the most difficult/complex app using extensions while not knowing the basics of programming of App Inventor or other builders. Using Firebase before knowing TinyDB. Using dynamic components extension before knowing how to work with layout, cardview, etc. So taking a big step instead of a few smaller ones before proceeding to another level. Taking just an aia from someone else and then complaining they do not understand why it doesn't work for them.

11 Likes

.... or implying the work is theirs and "it was working, don't understand why it doesn't work now". So you take a look at the aia for them. Low and behold, it could never have worked.

9 Likes

Possibly fighting a losing battle :wink:

I did a quick survey of the last 60 posts, 25 of which were about extensions. That is a 41% hit rate. I thought it would be more....

2 Likes

That's exactly what i mean. Users are thinking in extensions not in blocks. :grin: I would also have guessed that it would be more.

2 Likes

It's a lot in the context of what App Inventor has to offer.

3 Likes

App can only be created by coding, its just that App Inventor is platform that makes it easier to understand coding logic and code using it. Everything needs a code.

2 Likes