- When building Studio as a simple but robust No-code App platform, we pondered over how to make the overall app creation process an easily configurable but flexible platform even for complex apps. Hence, we decided to go ahead with the Pull-based architecture instead of the Push based one.
- What this means is that in most places, you won’t have to think about how the data will get to a Control. You write formulas for that control that pulls data from various places and sets it to the control.
- This way, even if you use dependent controls i.e. referencing another control in this control, then as and when that other control changes its value its changes get automatically propagated to the dependent control. The same is the case with Variables, when you use it in your formula and when the variable value gets updated, then it is automatically propagated to the dependent control.
- All our controls are either Input controls or Display control. Input controls have output values and therefore can be referenced in another control’s formula or are accessible in Workflows and Actionflows. However, the display controls do not give any output, hence they are not bindable in any formula/workflows. However, you can apply a formula to both controls for populating the default values.
- Each control has its unique name and you can use this unique name for using it in any formula.
Data Binding concept
The most important part of any app is its Data. When creating the Micro Apps you need to use controls to capture data and store them to respective data sources. At the same time, there is also a need to have an easy and powerful architecture to bind data. In Studio you have different types of controls categorized as display control and input controls. For each of these, we have the option to bind data. You can find the option to bind data for each of the controls on the right-hand side of the screen when you select the respective control.
The Building block of Data binding are formulas. The data would be pulled from these sources without having to write any code and propagated to the respective fields linked to it.
Studio supports different data sources to bind data to the controls:
- Sheets: Data can be pulled / fetched from Sheets by simply specifying the respective sheet name and the column name. It can be further filtered to fetch as per specific criteria. The LOOKUP function gets added and can be seen in the Custom Formula when you add the columns from the sheet and any filters. You can further add filters and order data with the LOOKUP function if required.
- Connectors: These are the Database connectors and the REST API connectors that enable you to pull data from a whole range of databases like MySQL, NoSQL, MongoDB and other sources. The BINDAPI function can be used to filter and fetch data from several database systems.
- Custom formula: This enables you to use functions like LOOKUP , DLOOKUP, BINDAPI, FILTER and so on to pull data from the different sources like sheets, databases, JSON and so on while allowing customization to pull specific data from the sources. The Custom Formula basically allows you to view the currently applied formula for getting the data.
- Controls: Data can also be pulled from the form control of another form/ screen.
- Variables & Keywords: Data can be pulled from Variables and the keywords. The values for variables may be set during different tasks initiated across different screens.
- Logged in user: Here you are pulling data which is the current user’s information related to the current login.
Action Flow concept
Now when you are creating apps you would have different types of activities that need to be undertaken on the click event. Like, say for example any action to be completed with the click of the Action button. There are different types of events like Page events, Button click events (single click - e.g on buttons and multi-select for the list controls), and Custom events like the Designer controls. With Studio being a no-code platform, you can use the Action Flow that provides you the capabilities to build your customized actions visually and that is performed on the Client-side to give an immediate response as to the activity completion. You can find the Action on the right-hand side of the screen when you select the respective control.
For more information, you can refer to this article here.
When building the Studio apps, you would come across the need to complete different automated tasks like updating sheets, sending a notification on completion of an action, and so on. Similarly, where human interaction is required like Input from user or Approval from a manager, you can define tasks accordingly. Workflows can be used to define and trigger a series of tasks or actions on the submission of a form. For more information refer to this article here.
You can also refer to this article to know the difference between the workflows and the action flows.
With these, you can easily configure a pull-based architecture without having to worry about any code to get the data to your respective field or control.