1010data's QuickApp framework provides a powerful and versatile set of interactive layouts and widgets for building custom front-end interfaces on top of 1010data's analytics engine.

A QuickApp is essentially a way to specify a simple interactive visual report, dashboard, or application using a set of tags in 1010data's Macro Language. These tags work in conjunction with block code and the other data transformation operations to specify how the QuickApp should accept user inputs and display query data. One of the things that makes QuickApps so powerful is that it's not necessary to write any JavaScript, HTML, CSS, or other client-side code – the whole QuickApp is written in 1010data's Macro Language.

The following Macro Language tags are instrumental in building a QuickApp:

A <dynamic> element creates an environment of state variables and encapsulates the Macro Language code for both the visual and logical aspects of the QuickApp.

This dynamic environment manages the state of the widgets within it and is responsible for updating any widgets that are affected by a change in state. For instance, if a user interaction with one particular widget changes the value of a variable in the environment, the QuickApp will update any other widgets that reference that variable.

A <widget> element acts as a container for displaying data and may be used for user input.

A <widget> element is used to visually represent a block of Macro Language code. It typically contains a single 1010data query that defines the data that it displays. Widgets can be used as a means for user input, such as an input field or drop-down list, or they can be used to display information to the user, such as in a spreadsheet-like grid or a bar chart.

A <layout> element acts as a container for widgets or other layouts and specifies their presentational arrangement.

A <layout> element allows you to arrange your widgets. There are a number of predefined layout types that you can use to customize the presentation of your QuickApp. For instance, a tabbed panel allows you to organize your content on separate tabs.

QuickApps can be rendered to a number of output targets, such as a web application, PDF, or Excel workbook. This tutorial will guide you through creating a web-based QuickApp, which will allow the user to specify certain parameters for 1010data queries and display the results of those queries in a web browser.

This tutorial is intended to serve as an introduction to the basic concepts of the QuickApp framework as well as a guide to using the specific mechanisms behind it. It is assumed that you are familiar with the 1010data Macro Language, specifically block code and the data transformation operations. It starts off with a simple example and builds on that with each step. As it progresses, the tutorial addresses more complex topics, which illustrate the substantial power of QuickApps. As you follow along, you will learn how to build a fairly robust and functional QuickApp as well as the logic and structure behind it. It is the intention of this guide to give you the foundation to begin building powerful QuickApps that can satisfy the needs of your analyses on the 1010data platform.