Hi guys, as I work with my latest apps, I discovered some tricks that may help with your app design, so I thought it would be nice to share.
App link: https://interesting-history-7076.glideapp.io/
1/Filtered form choice
Very recently, it seems Glide has added support for filtering choices within a form, so in this concept app I applied it to two cases:
-
Filter a choice based on a previous choice in the same screen: You can find in the car choice that the car model will be filtered based on the car make.
-
Prevent duplicate choices for different choice components: You can find in the activities/food preference choices that when you have selected activity X for activity 1 field, it will not be in the choice list for activity 2 and vice versa. Same applies for the food choice components.
2/Progress bar for forms
Many of us have forms that are very long, and it would be nice to have sections inside the form like Google Forms.
In this app, I do it by creating a number column called “Progress” from Glide’s data editor so it would honor the number format. I also create a datetime column from Glide’s data editor.
How would there be progress bars when there’s actually no progress? The answer is by changing the max and min value of the progress bar.
The progress bar takes value from the previous screen, and as I never write the actual progress number to the Sheet, it will always be 0.
With 2 sections, and a progress number that will always be 0, the 1st progress bar would have a min of -1 and max at 1 so it will show a 50% progress.
With the 2nd progress bar, it will be a min of whatever you want and max at 0.
Same process applies for forms that would take more sections.
3/Navigation between sections
Navigation would include “Next section” and “Previous section”.
Different to the progress bar, which takes the value from the previous screen, these navigation buttons can increase a value inside the form, which is also set to Progress.
For the first screen, there will be 2 scenarios: either the progress is empty (at the start), or it equals 0 (when a user navigates backwards).
The first “Next section” button will be tied to an increment action for progress column, and as we also have to take into account the condition that each field in the section must not be empty before a user can go to the next, there must be 2 buttons for the 2 scenarios mentioned above. (as we can not do and + or at the moment)
For “Previous section”, only 1 button is needed, and it will show up when Progress is greater or equal to 1.
4/Cards without images & grouping
As you may have noticed, cards can now be configured without images and it gives a lovely nice look.
I also used a grouping action on the preferred date column to show an alternative view for a “calendar”.
5/"Textjoin" inside Glide
You may have faced a situation where you have to join multiple columns of text to give a good display, but your array doesn’t always have the same sizee. This is when you collect many fields of the same category in an array column via form (i.e Activities 1, Activities 2, etc.) without all columns required.
With the new Joined List column, we can do this inside Glide.
First, create a multple relation matching the array column back to the Choices sheet, then make a joined list column using that relation and separate them with a delimiter, in this case I use the default comma.
With that setup, I can use them in a template column to display the text inside the details view.
However, this approach would only work when you have a reference choice list to relate back. When you take random values from users, there must be a further step to combine all of user inputs into a column for this to work.