---
title: Glossary
---

## Glossary

### MiniApp ID

The MiniApp ID is the unique application ID that is automatically assigned to a miniapp.

### MiniApp framework

MiniApp provides a simple and efficient application development framework to help you develop services that deliver native app experiences.

The framework consists of the **logic layer** (App Service) and **view layer** (Webview). The view layer is programmed with the description languages, including Tuya Markup Language (TYML), Cascading Style Sheets (CSS), and Leaner Style Sheets (LESS). The logic layer is implemented with a JavaScript-based framework. Data transmission and event systems are deployed between the view layer and the logic layer. This mechanism allows you to focus on data and logic.

### Cold start

A **cold start** is the process of starting a miniapp that has not been started or destroyed. In this process, the miniapp will be initialized and then trigger the `onLaunch` callback function.

### Hot start

A **hot start** is the process of opening the miniapp that has been closed but runs in the background. In this process, the miniapp will not be destroyed and restarted. Instead, it switches from the background to the foreground. In this case, the `onShow` function will be triggered, and the `onLaunch` callback function will not be triggered.

### Lifecycle

A **lifecycle** covers all stages a computer program undergoes, from initial creation to startup, pause, evoke, stop, and uninstallation.

The lifecycle of a miniapp can be classified into an **application lifecycle** and a **page lifecycle**.

### Page lifecycle

A **page lifecycle** covers the process from entering to leaving a certain page of a miniapp, or the process of navigating from a certain page to another page.

### Page stack

A **page stack** is used to manage interfaces in the MiniApp framework. You can manage all interfaces simply by designing a page stack. `getCurrentPages().length` can be used in the design.

### TYML

**Tuya Markup Language (TYML)** is a markup language dedicated to designing a miniapp framework. The syntax of TYML is divided into five parts: data binding, conditional rendering, list rendering, templates, and references.

### SJS

**Safe/Subset JavaScript (SJS)** is a custom scripting language applicable to miniapps. You can apply SJS to build a page structure on top of TYML.
SJS is a subset of JavaScript but different from JavaScript. These two programming languages follow different syntax rules, so they are not interchangeable.

### RJS

**Render JavaScript (RJS)** is a rendering script used to handle frequent drawing tasks and improve the animation rendering performance at the view layer. The `.rjs` script file provides the `Render()` function to declare a rendering script module and work in tandem with pages or components. The rendering script applies to scenarios such as canvas chart rendering and Web Graphics Library (WebGL) image rendering.

### TYSS

**Tuya Style Sheets (TYSS)** is a programming language used to describe the presentation of a document written in a markup language, such as HyperText Markup Language (HTML) or Extensible Markup Language (XML). HTML is an application of Standard Generalized Markup Language (SGML) and XML is a subset of SGML. TYSS can be used to statically modify web pages and dynamically format all kinds of web page elements with the help of different scripting languages.

**MiniApp currently supports TYSS and LESS.**

### Base library

A **base library of a miniapp** is the container responsible for loading the miniapp framework, and provides standard components and standard APIs required by the miniapp framework.

### Component

A **miniapp component** is a view control. You can combine different components in business development.

### API

**Application programming interface (API)** refers to pre-defined functions or conventions to connect different components of a software system. An API is used to provide a set of routines that applications and developers can access based on certain software, without having to access the original code or understand the details of the internal working mechanism.

### Event listener API

An **event listener API** is used to listen for the trigger of a certain system event. This type of API name is preceded by `ty.on`.

The event listener API has a `callback` function configured as a parameter. When the specified event is triggered, the `callback` function is called. The `callback` function can be passed to an API of the same name that is preceded by `ty.off` to remove the listener. An API of the same name that is preceded by `ty.off` can be called to remove all listeners that are created for the API.

Specific API request parameters and return values are subject to respective API documentation.

### Functional API

A **functional API** is used to implement a specific feature. Functional APIs are classified into asynchronous functional APIs and synchronous functional APIs. This type of API name is preceded by `ty.`, rather than `ty.on` or `ty.off`.

An API of the name that is preceded by `ty.` and followed by `Sync` is a synchronous functional API, such as `ty.setStorageSync` or `ty.getVersionSync`. An API of the name that is preceded by `ty.` but not followed by `Sync` is an asynchronous functional API, such as `ty.navigateTo`.

### Tuya MiniApp IDE

Tuya MiniApp IDE is an application that provides a program development environment. You can simplify your development by using a full range of tools, for example, the code editor, debugger, and graphical user interface (GUI).

**Tuya MiniApp IDE simulator**

Tuya MiniApp IDE simulator can be used to simulate the client-side logic performance of a miniapp. Most JavaScript APIs can be tested with the simulator to show the required and actual status. After a miniapp project is compiled, the project is automatically run in the simulator. You can preview the miniapp at a glance without any real device. To test basic interaction, you can click or drag and drop components of the miniapp to simulate the touch and drag-and-drop operations on a mobile phone.

**Miniapp debugging**

Miniapp debugging is performed to test a miniapp and debug possible functional errors before the miniapp is released. Tuya MiniApp IDE debugging, remote debugger, and performance debugging are available. Debugging at a breakpoint is supported.

**Remote debugger**

The remote debugger allows you to run a miniapp on a real mobile phone and take measures to debug errors to make sure the functional development of the miniapp is completed as expected.

## Panel

### Virtual device

A virtual device is a non-real device for you to try out panels and functional logic built in smart devices.

Specifically, a virtual device does not initiate data points (DPs) reporting or process the linkage logic without commands. For example, a socket supports the following DPs: the main switch and two branch switches. If you send a command to enable the main switch, the virtual device only reports data to indicate that the main switch is enabled.

However, if a real device on which specific firmware runs receives the command, it reports data to indicate the status of both the main switch and branch switches.

### Real device

A real device is a device that integrates a network module to implement firmware logic.

### PID

Stands for the product ID. Each product created on the Tuya Developer Platform is assigned a unique PID. Each PID is associated with the details of a specific product, including the data points (DPs), app control panel, and purchase information. A PID can be regarded as the identity card of the associated product.

### Data point (DP)

A data point (DP) is an abstract representation of a feature you want to apply to a physical device. A DP can be defined by various data types. Smart products are developed based on the defined DPs. For more information, see [Product Functions](https://developer.tuya.com/en/docs/iot/define-product-features?id=K97vug7wgxpoq).

### Tap-to-run (scene)

A tap-to-run scene is a set of cloud-based preset actions, including device operations and delay. The tap-to-run actions can be executed remotely.

### Automation (scene)

You can set trigger conditions for tap-to-run scenes. For example, the conditions can be time, device status, geographic location, and weather.

### Group

A device group is constituted by devices of the same type in a home. Therefore, these devices can be controlled together.

### Panel

A control panel is a program that runs on the SmartLife app, an OEM app, or an app developed based on Tuya's SmartLife App SDK. It is a graphical user interface (GUI) application that controls smart devices within Tuya's ecosystem. Built on top of the MiniApp framework, each control panel supports updates on the fly and keeps the smooth experience of native apps to the maximum extent possible.

A control panel that is implemented based on MiniApp is also known as a panel miniapp.

### UIID

A UIID is an ID assigned to the control panel of a smart product. Each UIID uniquely identifies a UI package that is generated after the respective panel project is developed and uploaded.

### All-in-one panel

All-in-one panels are generally available on the and apply to a series of product categories. This type of panel is designed to accelerate and empower your development of smart products.

### Join network

A Tuya-enabled device is activated and connected to a network. Only devices that are activated can be controlled using the mobile app or other controllers.

Joining a network is a prerequisite for controlling devices.

### OTA update

Send firmware updates to a device over the air.

WeChat mini programs support OTA updates for cloud-connected and Bluetooth Low Energy devices.

### Remove device

An activated device becomes inactive. You can remove a device or perform a factory reset. Removing a device will not delete the device data, but performing a factory reset will.

### Send DP data

Send a command to the device to control it, such as turning on the light.

### Report DP data

The device reports status updates to the cloud or mobile app to show users the current status.

### Device online and offline

When a device connects to the cloud or mobile app via Wi-Fi, 4G, or Bluetooth, it goes online.
When a device does not connect to the cloud or mobile app, it goes offline.
