I have a fairly large app structure built (not in prod yet) but i have made some core changes to certain logic now that i have learnt a bit more about actual coding techniques and practices.
There is some rework that will be needed, including changing some core tables a bit and workflows too.
Starting fresh of course feels “clean” but will also be significantly more work. Particularly recreating all the forms, delete screens and tables with lots of attributes.
If i delete a table, does it wipe all screens/logic/remnants of that table from my app? or am i likely to have a bunch of ghost-data dragging my app speed down?
With that being said… I have some larger questions about things that feel they really take me more effort than it should.
Delete screens
I dont want directly deletable data from the app, but a verification screen to pop up. I want every screen to be the same, so having 1 single screen would be ideal but then “delete this item” doesnt work. It would need to be some sort of delete table with relations to every single other table in the app… is this reasonable? better way to go about it? soft delete function with a periodic bulk clear out?
Forms as workflows
I generally create workflows for all forms so i can access them from everywhere, but sometimes i want to access that form from a page/tab of a different table. Is there a way to do this that still results in a single page needing to be changed
Tabs for tables vs “dashboards”
Often i find myself wanting an interface for all things related to a given area of the app. It is often management level work (users are my staff and operations managers) that includes anywhere from 10-20 different tables that need to be accessed.
Sometimes i do it from a screen of the “core” table, but sometimes an interface seems nicer. Interfaces mean “from screen” additonal coloumns and filters dont work so well, but it is also nice for carrying info between one task and another. Temp storage if you will
Of course, user table can be used for this which i have done but i found it made for quite a busy user table which i didnt end up liking.
I use that approach to set columns from anywhere in the app, or access a consistent detail screen of that table, but how do i access the workflows via that single value column without opening a new screen for that single value, and then using a workflow?
Maybe I misunderstood - you want to access the Form, or directly trigger an associated workflow?
User interaction workflows are bound to tables, and you can only trigger them from within the context of the connected table.
I want access to the form, but i have most “form screens” as part of a workflow so that i can always access the same form screen from all parts of the app. Is this not necessary? i didnt think form screens were like detail or edit screens that are consistent
Apologies, I find the above confusing. I don’t understand how a screen can be a part of a workflow. Do you mind elaborating, or perhaps show me an example?
I do use custom forms for some things, but ive found that the more normalized my table structure is, the less i need it (for my use case anyway). forms have become nearly all 1-3 values entered.
which does make adjusting them fairly straight forward, but i dont want to worry in the future about inconsistency.
Is there a different reason i should avoid native forms?
No, not at all.
I think you should always use native forms in preference if you can.
Custom forms are just an option if you need something extra that native forms don’t provide, such as more advanced validation.
Any thoughts on starting fresh vs adjusting current app? i know it depends on amount of adjusting needed likely, but more about what im going to call ghost data/screens/flows. I have never seen a “purge all unused” button anywhere, and i dont like the feeling of carrying possible garbage with me going forward…
I don’t really have a strong view either way. Thinking about what I’ve done in the past, I guess I’m generally more inclined to refactor rather than rebuild. That doesn’t mean that’s the best approach, or there is even a best approach. I think every App is different, and you need to make a decision on a case by case basis.
Yeah, I also wish we had something like a “purge all unused” feature, and I’ve asked for similar several times. One thing I can tell you is that a quick way to get rid of unused workflows is to duplicate your App - because any that aren’t referenced wont be present in the duplicated App.
There are also some Developer Tools in the works that will help with this sort of stuff. Go to https://staging.heyglide.com/, and look for the Column Inspector Tool in preview features. Once you enable that, you’ll see a “Dev Tools” button in the Builder, just near the Share/Publish button. That one is very, very useful. Hopefully it will make its way into production soon.
Once enabled, its available for use on all Apps in the team. The URL I gave you is the Glide Staging environment. New features are often made available there before they make their way into Production.
These dev tools in staging look like they could be very useful to audit, debug, refactor a project. The UI is polished enough. Any idea why the feature is not in production?
I was looking into finding a way to have a shared team between my production dahboard or staging dashboard, so I could use dev tools on an existing app in production. I don’t think it’s possible. Can you confirm?
Not sure if this was answered but I too am interested in the response.
I assume that if a table is deleted and it is not the source for a Screen: the screens will live on with the components referencing the deleted table within the screen disappearing or having no context.
If the table is the source for a screen (new screen, detail, edit, form) than I assume those screens and layouts would be wiped out/cleared from the app.
I also assume all workflows associated with the table (a row from the table is the ‘app interaction’) would also be deleted BUT not really sure about that. Do workflows get deleted or does the ‘app interaction’ default to NULL.
I think a lot of screens float around cause when I do a ‘Find Use’ in the data editor I find screens that I did not know still existed, are never called in the app and I can not find where they were/might have been called from.
Are these ghost screens/data dragging down speed….great question?