Feature Suggestions

I'd like to make some suggestions that, for me would make using this better. These are all positive and I think relatively easy.

  1. Save a temp file on my PC. I have lost as much as an hour's work because the net went out. I thought it would come right back but it didn't. When it did come back I had been logged out. (I at least did a print screen). I learned my lesson, but still I have lost several minuets from time to time since then and it's a bit hard to pick up when you aren't sure what's missing. If you could save changes as a cookie or something when connection is lost it would be a savior for us who have bad internet.

  2. Make a comment block. Maybe Text block without a connector that would allow multiple strings like a Join but that could be left in the open like a procedure would be useful. The current comment has its uses, but also sometimes awkward and hard to find. I like to make general comments and reminders about general flow, bugs to fix and features to add and I haven't found a good way to do that.

  3. Add search. When I exchange one block for another it would be nice to be able to search for that type of block (label for example) if not the specific block (lblName). Also when the cryptic error messages say "- can't accept arguments "Bob", "3". to be able to search for all the - blocks instead of expanding and closing block set and scanning 300 to 400 blocks.

The last thought is half baked and I don't know how I would want it, or if in the end I would even want it, but especially in the beginning (that's like a 5 year old saying "when I was little") I wished for a way to group the block sets. I don't know if I'd want a collapsible folder or just a way to draw a line in the background to coral the doggies. Maybe that's just part of the learning curve from text to block programming.

Interesting ideas Byron. Most of these or similar features already exist.

1. Save a temp file on my PC. I have lost as much as an hour's work because the net went out. I thought it would come right back but it didn't. When it did come back I had been logged out. (I at least did a print screen). I learned my lesson, but still I have lost several minuets from time to time since then and it's a bit hard to pick up when you aren't sure what's missing. If you could save changes as a cookie or something when connection is lost it would be a savior for us who have bad internet.

App Inventor saves what a developer codes every few seconds to the MIT server. When you lose an Internet connection, everything, or most everything you coded previously still exists in your Project when you reload your Project. You may have to close the App Inventor 2 window and then log in again but everything is saved.

2. Make a comment block. Maybe Text block without a connector that would allow multiple strings like a Join but that could be left in the open like a procedure would be useful. The current comment has its uses, but also sometimes awkward and hard to find. I like to make general comments and reminders about general flow, bugs to fix and features to add and I haven't found a good way to do that.

There is a Block in the Control bin many users use to maintain supplementary comments (evaluate but ignore result).

ignoreResult Some developers use that.

  1. Add search. When I exchange one block for another it would be nice to be able to search for that type of block (label for example) if not the specific block (lblName). Also when the cryptic error messages say "- can't accept arguments "Bob", "3". to be able to search for all the - blocks instead of expanding and closing block set and scanning 300 to 400 blocks.

You are possibly talking about what the arrows on the warning/error Blocks can do..

warnings Left click on the diamond and the Blocks screen will take you to one of the Blocks having an error. If you have multiple errors, clicking will take you to the other problem Blocks.

I wished for a way to group the block sets.
That feature is being discussed by the developers. There is already a method to display all the Blocks according to their characteristics.

Right click on the white space in the Blocks editor and you will see this dropdown Menu. Click

sortBlocks Sort Blocks by Category and you will observe a miracle.

Regards,
Steve

Thanks for writing back - and in such detail. I'm afraid I didn't make clear what I meant in some cases.

  1. My word is saved online so if there is on connection, all work after the connection is lost, is lost because there is no connection by which to save in on your servers. In the case I mentioned, I worked for almost an hour without internet. In fact I went to bed and was only re-connected the next day. When I did re-connect, I had timed out and the browser tab wiped by the Google login page. My word was gone. I had a picture of it and that helped enormously.

2 I have tried the ignore result and the procedure wth no name. And even leaving loose string blocks lying around like the socks on my floor.

3 the warning blocks find blocks w permanent errors, But if it is I who simply wish to swap a lable for a text box that doesn't work or if it is an error that is only appant when a variable is filled. eg y=x-z and x="Bob" . If I could search for or cycle through all "-" (minus) blocks or all Labels it would help.

  1. That's interesting. I hadn't seen that feature (sort by Cat.). I was thinking about grouping by association, like all sets associated with the componants in the "Add New" Horizontal Arangement or if you try, as suggested, to create several virtual screens on one screen to reduce the number of screens in the program, each screeen coule have a folder or group.

I put this separate to emphasize it. This is the best Help community I have ever used.

Hi @Byron_A,

Thanks for your comments.

Saving the changes long term on the client isn't really feasible. At best, we might be able to use browser local storage and that is limited to only a few megabytes at most. I'll talk with the team about how we might make the system more robust to people going offline so you don't get inadvertently logged out. The flip side of this is that students in shared classrooms might leave themselves logged in and without timing them out someone else may end up in their account (this was common before we introduced the session timeout).

Something I have seen people do as a substitute is plug a text block into a "evaluate but ignore result" block, like so:

It's not perfect because it still gets included in the code generation, but it is a potential workaround.

We have been a couple of prototypes for this over the years. I think we have one that is working but out of date with the latest version of App Inventor. I would expect we can get this out in a somewhat near future release.

We also have something in progress for this so that at least when connected to the companion it would focus you on the erroneous block.

We have a proof of concept for this as well, but like the search functionality it is quite out of date with the version of Blockly we use. I would like to bring it back to life because it is quite spiffy.

Currently clicking and dragging on the background moves the workspace, so I'm not sure we'd be able to easily support this since we'd need to differentiate lassoing the blocks from intents to drag. We might be able to use the shift key for this, but I'll need to think about it more deeply. It also means it wouldn't work on touch screens where there isn't guaranteed access to a keyboard.

Cheers,
Evan

1 Like