Apps – The main Data Model in my Prototype Studio is apps. It holds the basic information – name, icon, description and several other stuff.
Main Screen Navigation – I noticed several types of navigation present in all big apps after you login to your account so – I made an interface where you could choose the navigation type – Drawer, Tabs, Bottom Navigation Bar – and choose the Data Models present in these types of link<=>containers.
Data Models – data model is the equivalent of a SQL Table. Contains a name and the definitions about its fields. Possible future feature could be – data model icon,but for now – just a name.
Model Properties – These are the visible to the user fields of a data model. I tried to wrap the SQL types with more meaningful to the user names / descriptions. As the Model is just an enum in the Prototype Studio database, actually, the underlying type could be whatever I choose and even complex. Just did that with GPS Location – that is a complex Object (Longitude, Latitude, Altitude). It is still in beta but, it worked with the internal development generation. Having this meta layer – I could add additional – not existing meta model properties.
Hidden Model Properties – These are data model fields that are hidden to the user. The actual value that is populated into them – in the apps created by the Prototype Studio Builder are the ids (primary and foreign). Any additional hidden fields could be useful for future source code modifications and having the fields in the SQL, front-end and back-end – model, data access and more – layers – is just gluing it properly with something from the User Interface.
Link Between Models – These are the definitions for One to Many and Many to One and Many to Many in the relational terms.
List Groups & List Group Values – Embedding Predefined Lists in an app is done within my Prototype Studio with List Groups and the actions Options are – List Group Values.
Item Design – reference – (the other published article)
Builds – after Prototype Studio Builder creates an App – the result is uploaded back with a flag – success or fail and if successful – with URL from where to open/start/download the result.
I had an idea to make to so high meta levels that – the Design Studio could build itself. It did generated a lot of its source code but, not entirely. One missing big feature is a general purpose designer for user interface components – buttons, links, texts, input fields, images, pickers, the material design elements and so on. As they are all in their heart – widgets in the context of flutter, the end goal was/is to have a Composite Design Pattern of user interface elements – coded into a database, embed, populate their data from the currently implemented Data models and the possibility to generate app from this meta definition. The whole idea of my Prototype Studio is exactly that – to hold in itself an abstraction that is closer to the user so – the actual implementation could be swapped away and replaced with just a new builder. I’ve already than that – creating a MaterializeCSS version of the Flutter Web and Flutter Android Builders. How far and if i will ever reach my ideal goal – time will tell.