Blocks don't show?

I have been adding a BUNCH of blocks to my screens, and it has slowed down quite a bit. This morning when I open the program the Blocks don't even how up. I can connect and run my app with AI Companion, so I know that all of the blocks are present, they just simply won't show for me to make any amendments. Note: I do not have ANY files- no pictures, no sounds, nothing.

  1. what is the problem?
  2. how do I avoid this happening in the future?
  3. how can I recover my current program, which represents hours and hours of work?
    Thank you so much!
    Heather

When you are stuck in a hole, stop digging.

  • Use a faster web browser like Firefox, on a fast connection, with no overhead.
  • Reduce Blocks Editor load by minimizing all blocks.
  • After minimizing blocks, do a Clean Up Blocks to reduce surface area of workspace.
  • Reduce your block count by changing blocks to data.
  • If your blocks look like a box of combs, you need to generalize.
  • Have a lot of similar events? Use generic blocks.
1 Like

@Heather_Briere you should probably show us what is happening. Take a screenshot of the empty blocks for us. Also, try downloading the project as a AIA, changing the name, and uploading it back to app inventor.

(export aia)
Exportaia

(rename aia)
rename

(import aia)
importaia

Sage advice- thank you!

  • I've been using Chrome, I will try FireFox.
  • I did minimize many of the blocks and it didn't seem to help, so I did not pursue that. I will try it again if/when it opens.
  • I keep my blocks cleaned-up so that I don't lose my mind by being disorganized.
  • Changing my data? Um, I didn't mention that I'm not a computer person, just a person with an interest and an ability to use a book and YouTube video tutorials.
  • Generalize? Um, same thing. Maybe this is the issue.
  • Similar events? I'd love to learn! What do you mean by generic blocks?

Thank you so much!
Heather

The blocks not being there looks like an empty page- like one that does not have any blocks at all. The viewer has the backpack and the trash, but just blank white space otherwise. It is sitting there mocking me.
Heather

Post your exported .aia file, so we can recommend what to do?

So I have done a couple of things-

  1. I right clicked onto the empty space and collapsed all of the blocks. That actually allowed me to see the blocks.
  2. then I cleaned up the blocks, which allowed them to move.
  3. I installed FireFox and started working with that- you are right- MUCH faster than Chrome!

So I have included the aia file in case you wish to give me any advice- I would love to hear any and everything!
This is a set of FlashCards set up based on the Leitner System. This has the app move the cards into groups that should be seen more or less often based on whether you get the info right or wrong. Not all of the screens are completely built, there is more to come. I had it working with one class, but now I am having trouble with adding enough volume so I can do multiple classes in one app.
Thank you!
HeatherFlashCards.aia (44.2 KB)

Your app could definitely benefit from the importation of data from Comma Separated Values (CSV) files.


It would result in at least a 90% reduction in block count.

Here are some sample projects to examine, to see how data tables can simplify a project ...


https://groups.google.com/d/msg/mitappinventortest/656oDTQeomU/7-WNXaxBGwAJ

So I was thinking about using a CSV file, but a big part of my program is that it has to be able to move the single entry from category 1 to category 2 to 3 and back and forth. How would I tell AppInventor to move things if they are on a static CSV file?

I really, REALLY appreciate your time with this!
Heather

I'm not sure what you mean by this.
It might be selecting from a list of categories and keeping it in a variable?

So, it might be helpful to look in Wikipedia for the Leitner System- they have a great video that shows what I am trying to do. Basically, I have 12 flash cards for each class, and all of the cards start in category 1. The cards move across categories 1 thru 4 based on whether a person got them correct or not. The category that the card is in determines the frequency that it is shown.

By doing it the way that I have I can create multiple lists, and move the flash cards around by switching which list they are in, then saving the updated lists (the new and old) in a TinyDB.

I really tried to figure out a way to coordinate it thru a CSV file as it would be a lot easier to add the card info in. However, the app would not then have access to the individual card information that is held in the CSV in order to change which list (or category) each card is in.

I would LOVE to do it in a CSV file- it would save me a headache, and would allow collaborators. Ideas?
Heather

I did not see in your .aia file any specific instances of what a card might look like or how it is identified. Once that has been established, it is straightforward to keep tables, lists, or TinyDB NameSpaces to hold classifications of each unique card id into its current Box number.

So what does a card look like?

Aah- the "card" is just the words that are used on screen 2- they actually show in Button1. The class that you are in, N800, N801, N802 etc, and what turn you are on, will determine which list the words come from. The "cards" get "flipped" by pressing the "See Answer" button. That's why there is a separate list for the questions and the answers.

You can see it in the very bottom of the NextQuestion Procedure.

I recommend a combination of a static csv file for loading the table of classes, unique question IDs, questions, and answers. That should be worked up in a spreadsheet for ease of editting, downloaded as a .csv file, and loaded into separate TinyDB Namespaces at first run.

TinyDb NameSpaces let you look up values by tag. In this case use different TinyDBs, indexed by the unique question ID.

Supplement the 2 static TinyDB Namespaces (Questions and Answers) with a dynamic Progress TinyDB Namespace, containing 5 tags: Box1, Box2, Box3, Box4, Box5.
Each tag should be assigned a list of the question IDs in that Box.
Keep track of the index (1 ... length of list) of the question being asked, along with which tag ('Box1' ...'Box5') holds that list, to give you a handle on removing that question from that list and deciding where to store it afterwards.

Try to avoid keeping more than a handful of global variables, maybe 2 or 3, to track your index and Box number. Leave the rest in TinyDB storage, for immediate refresh.

Your total count of global variables should not exceed maybe 4 or 5, and should not increase with the number of questions or boxes.

I recommend starting a spreadsheet.

I'll start you off ...

N801,What color was George Washington's white horse?,white
N802,What color was the Model T car?,black

That is so fantastic- thank you so very much!