Project with many screens makes slow thunkable

I have to create many screen (about 4.000) and I did just 1.000, but the web app is getting slow I am attaching images, I set up already the screener preview off, but problem persists. I will be grateful for any help.

No… this is such a mistake. If you need more than about 20 screens, you’re doing something that could be done much more efficiently with components that use dynamic values.

Why do you have so many screens?

1 Like

Why do you have so many screens?.. because I am doing a book, and the more efectiveness for me is copy every single screen to create a new one… What shall I do???

If you are displaying text or images on each screen, you would use a placeholder component.

For example, let’s say you have a different image on each screen. Instead of making 1,000 screens, you make one screen and you name the images image1.jpg, image2.jpg, image3.jpg, etc. You create a variable called PageNum and set it to 1.

Then you assign the image component’s picture a value joining “image” with PageNum and with “.jpg”. When the user clicks the next page button, you increase PageNum by one and re-load the image component. There is no need to have more than one screen.

1 Like

For a demo, see the first screen of this project:

https://x.thunkable.com/copy/75ec70ba1b2ae3a378806c3d57ffbda3

I really apreciate your help…but, it is too late for doing what you say… is there another way???

No but now you know for next time.

1 Like

I think if thunkable says I must turn previwer page Off, It should work, if don´t, there is a problem… I should be able to create whatever pages I need, it must work and I hope one day so. Thanks a lot!

It has nothing to do with thunkable. Having multiple screens makes the app very large thus slowing down the device as well as the time it takes to execute the different operations. It is never to late to make a copy and try and simplify your app. Using @tatiang suggestion would cut down on A TON of screens as well as blocks. It also makes trouble shooting errors and bugs much simpler. You can literally display a novel on a single screen if you code it correctly.

2 Likes

I never give up, so I will try that… and let you know it. Thanks

I think I found a solutions… With that, I will reduce screen numbers from 4.000 just to 200 almost… do you think it would work?

200? If you’re doing multiple books, You can create a variable named booknum and try @tatiang’s solution with

int  pagenum
int  booknum
set image of component image to 
      join " book ( var booknum ) image ( var pagenum ) .png"
               

Why would you not reduce it to 1 or 2? 200 screens is still a nightmare if you have to change something on every screen. What if you decide to use a different font? Or a different button icon? Or move a component down a few pixels? Then you have to make that change 200 times! I can’t imagine editing a project with that many screens.

4,000 screens is extremely unrealistic for any native app, Thunkable or not. Like @tatiang and @samclever said, it would be much more efficient just to use one or two screens.

2 Likes

I redesinged it and I can reduce to a one screen… but now question is: I have to create up to 4.000 diferent text ¿ do you think would it work if I continue doing as attached image show ?

1 Like

If you have to do anything in Thunkable more than 30 times, you’re doing it wrong. You should never have to add 4,000 blocks or 4,000 screens!

I don’t really understand what your URL values are for. Are you using a Web Viewer? Normally, you would use a Get Value block from the Data Sources drawer and use a variable for the row id. The variable value would be 1, then 2, then 3, etc. for each page as the page gets turned, similar to the demo I posted. You can do that for images or text.

Try to avoid using forever loops. It’s better to change the value when the user does something than to constrain it with a forever loop. A forever loop will run that section of code something like 100 times per second!

3 Likes

I am really worry reading what you wrote… I get back to your demo and I was trying to understand it.

For multiple pages I got many things, but I have some questions

  1. where are the images come form? I know you code image5.jpg (i.e) and it was a jiraffe when it run, but this jiraffe where was it? where has this jiraffe been taken from?

  2. When I run this demo on my mobil, screen 2 and 1 never open, so I don´t know why you create them

  3. for that reason I don´t understand how their block work


    and

I really appreciate your help. I will tell you what I trying to do:

  1. if people clic “Antiguo” go to screen “Tipo testamento”

  2. In this list will apper specific items diferent if people clic “Nuevo” but I used just one screen. If user clic an item, app goes to “capitulo” screen

  3. in this screen, user have to choose an item, it is a number. What user chose I save on variables. and finally goes to “contenido” screen

  4. in “contenido” screen I use every variable I saved and put the content chosen by user, like this:


    user chose “Genesis” from the firts list and number 1 form the 2nd one. But if user would choose another It would be:

    For this reason I’m thinking use 4.000 differente text because bible has more than 4.000 chapters. the buttons you see bellow have other functions that I will tell you in the future if you allow me.

How could you help me? how should I structure this app?.. I am really grateful.

  1. I downloaded the giraffe image from a Google Image search and then uploaded it into the Assets section of the Design tab in Thunkable. After that, I can use it by selecting it from a drop-down menu in the Properties panel or typing in the name of the image file in a text box.

  2. Sorry for any confusion! I use a single project for multiple demos. Please ignore “Screen 2” and “Screen 1”. You can delete them.

  3. See above.

  4. It looks like you have a good start! By using dynamic variables to store the page # (row #) as in my demo, you should be able to display 4,000 different texts that have been entered in a data source with each text in a separate row.

@tatiang nice job helping as always!

1 Like

I understood many thing thank you…

  1. I found it and I realized it exits heeheheh

  2. y 3. No problem, thank you for helping me.

  3. I understand that I can continue pasting 4.000 different texts to be shown as user as select the pag number, so I will do that and let you know when I finish or if I have any problem either :see_no_evil:
    But I will apply what you said before so I wont use forever loop I will use functions as you did

Thank yo very much, I appreciate your time and you support! … It is good count on you, you can count on me as well.

1 Like