Main Concepts

Overview of the Development Process

  1. Define Data Structures:

    • Start by defining the data types and their relationships within your application. This can be done directly through the Data Type Details page, where developers can add fields to data types, similar to adding columns to a database table.
    • The fields in a data type can be of several types:
      • Regular Field: A primitive value (e.g., string, integer) or a reference to another complex type.
      • Collection: A collection of references to instances of a complex type (e.g., a list of Employees).
      • Dynamic: A reference that can point to any complex type, providing flexibility in data modeling.
      • Shared Field: Similar to regular fields but shared across multiple data types, maintaining the same ID and name in all data types they belong to.
    • Alternatively, developers can start by designing user interfaces and let the data structure be synchronized implicitly based on the UI components they add.

  2. Design User Interfaces:

    • The Web Page Editor allows developers to visually design forms and pages by dragging and dropping UI components onto the canvas. These components are directly linked to the underlying data types, ensuring that the UI and data model are always in sync.
    • When a developer places a component on the canvas, such as a text input or table, they are prompted to name it. This automatically adds a corresponding field to the underlying data type, whether it's a regular field or a collection.
    • For instance, if a developer drags a table component onto the canvas and specifies it relates to an "Employee" data type, a collection of Employees is added as a new field in the underlying data type.

  3. Develop Business Logic and Handle Events:

    • Program the application by writing event-based actions. These actions can be triggered by various UI events like "on change" or page lifecycle events such as "on load" and "on save."
    • Actions can be executed either on the client (in the browser) or on the server, depending on the requirements of the application.
    • Code is written using Scratch-like visual blocks, which are converted to JavaScript or Java. Developers can enhance their visual code by adding Java or JavaScript snippets and integrating existing libraries. The resulting code can be viewed in text form, providing insight into the underlying implementation.

  4. Deploy and Manage:

    • Once the application is developed, it is deployed using Docker, ensuring consistent environments and scalable deployment. Each application gets its own relational PostgreSQL database.