I created an app for a client who is a Personal Trainor
He has many clients (about 200) and sets workout plans for them.
The structure I had setup, had it so he added to a list, exercise by exercise, the workouts his clients had to make, then a bunch of lookups would gather the name and the videos for it and he gave each exercise a title cuz they were grouped by titles (like exercise day 1).
This meant he had to always add the “tag” exercise day 1, 2, etc. and even tho I facilitated this by using a choice component, he felt the method I had was not to his liking.
This took about 1 relation for each exercise plus another 4 lookups. The exercises would total about 30 for each person.
The solution I have now is to have him add not one exercise by one but one row with about 8 exercises, so a workout, and the equivalent relations and lookups (about 40).
To add to this, the new method would need to be displayed in a list that once pressed, had all the exercises, but 7 of them hidden and would only show up with changing values in a button (so a lot of visibility conditions and some interactions)
It is the first Time I am building an app this complex in Glide, not so much in this structure, but knowing that it will be used by 200 users, so my question is, for the experienced ones:
Is my new method valid in the long run or will run into problems?
(For further clarifications, the app is intended for the 200 so in the new method atmost it would have 1400 rows with 40-50 computed columns
The list it “loooks up” should have no more than 250-300 items
The app also has this strucutre, altough a bit simpler, for meals, about 1200 rows with even more look ups)
Once he is creating the workouts he used to input the exercise row ID (via the choice component) it would gather the rest of the exercise information and display it (like in the image) and he would have to fill in a column that said “exercise1” or “back and legs”, etc. in each one of them so they would be grouped, in a workout, in the clients display.
Now, what I essentially have is the same second image I showed, but 8 exercises in a single row. Meaning instead of 1 relation and 4 lookups I have that times 8 and instead of him inputing “exercise1” “legs workout”, etc. 8 times he only needs to put it once.
By doing this I save him about 25 inputs (the average exercises he attributes to a client’s plan) of “exercise1” ,2,3… plus, in the future, if he wants to edit the workouts and rename them, he will not need to do it 25 times and also he won’t need to select the 3 dots to edit one exercise, then go back and edit another, etc. one by one, he will be able to edit them all in one screen.
I give him freedom to better edit and add the workouts, but I am afraid of the toll it might have if a lot of users use it at the same time, hence my question.
BTW, I know the topic might sound confusing but I am really focused on building apps with glide and this is the only place I know to find answers to my doubts (which, as of now, revolve around me not “overburdening” the app so that it can be used seamlessly).
Yes, but just to make sure, the problem I had was in sorting them horizontally, meaning I had multiple lookups and relations in a single row (about 48 total), that would translate into 8 exercises for a workout, which, in the UX, would need to be separated by visibility conditions.
Do you think sorting things out this way, altough reducing the number of rows, might affect app speed when loading all those computed columns and visibility conditions? Or is it a reasonable level of computed columns for 200 users (so about 1500 rows)?
Having 48 columns shouldn’t be a big issue. Handling that amount of data likely won’t cause any problems.
At any given time, users will only load the data they need, so serving 200 users should work fine. I think your concern is whether the server can handle that many users with the current setup. However, in practice, each device only downloads the data it has access to. I’ve seen people here successfully manage apps for events or conferences that serve more people.
To further optimize, you can use row owners or roles setups to restrict the data each user can download.
It is the first app I am selling to someone so altough I have experience with many projects my exact problem would be the concurrent users since I have no refference, so you expertise and words are very much appretiated!
I optimized it with row owners yet I was still worried. I will give it a try then :))
The multiple choice component is not a possibility (I think what you were talking would be using it with a relation column to display the exercises) yet I still input infromation that is different for each users (namely the repetitions and sets) so i dont think that would work as it is not a simple reference to lookups and relations