## Preface

New technologies emerge to solve problems. The technology choice you are making should match what the businesses and consumers expect. This topic describes the pros and cons of MiniApp technology, compares it with other technologies, and provides use cases to help you make the right choice.

## Why MiniApp?

MiniApp is a new type of mobile application that combines web and client technologies. See [What is MiniApp?](/en/miniapp/common/desc/introduce)

Most tech giants have developed their own MiniApp technology stacks. Considering the developer's needs and future outlook, Tuya also introduced its own MiniApp technology. This aims to address RN version conflicts, enhance development experiences, and enable developers to create lightweight and distinctive applications cost-effectively.

## Differences between MiniApp and React Native

**Syntax**

React Native allows you to build applications using React syntax, but with certain limitations. MiniApp is a popular syntax for building miniapps. Tuya's Ray framework, built on top of the MiniApp syntax, not only supports React but also pushes boundaries to unlock all React features.

In terms of styling, React Native provides a subset of CSS styles, whereas MiniApp enables full access to the CSS syntax.

**Cross-platform**

The approach behind React Native is to learn once, write anywhere. You need to adapt your codebase to the target platform. MiniApp promises to write once, run anywhere.

**Performance**

React Native enhances performance by constraining the syntax and leveraging native components. Theoretically, it outperforms MiniApp that uses WebView as the rendering engine. To bridge this gap, MiniApp adopts a hybrid rendering mode. High-performance components such as maps and videos use native elements, while standard view components are rendered with web tags. This enables you to leverage the benefits of MiniApp without compromising performance.

**Ecosystem**

The MiniApp ecosystem is more extensive than the React Native ecosystem. You can reuse the WeChat Mini Program codebase and web libraries with the following methods.

- [Compatible with WeChat Mini Program](/en/miniapp/develop/miniapp/guide/compatible)
- [Use Web Library](/en/miniapp/develop/miniapp/framework/plugin/intro)

The MiniApp developer community is strong and continuously expanding due to the easy learning curve of MiniApp, making it easy to hire or train talents quickly.

## Migrating to MiniApp

Migrating to MiniApp is made easier by its support for React syntax. Various optimized materials and extension libraries are available for panel development, providing capabilities similar to those offered by the React Native-based Panel SDK. The Panel MiniApp supports all the Tuya-enabled product categories. React Native enters the maintenance phase, with no new features added, so it is strongly advised to create a panel using MiniApp.

- [Materials](https://developer.tuya.com/material/)
- [Extensions](/en/miniapp/solution-panel/ability)

## Pricing

MiniApp is free to use. However, if you use cloud capabilities such as smart metering in a miniapp, there may be associated charges.

## Use cases

There are two types of miniapps: Smart MiniApp and Panel MiniApp. Panel MiniApp is dedicated to building a panel.

Smart MiniApp is versatile and can function as a tab page within an OEM app, a widget on the home screen, or be integrated into the profile page. If your mobile app is built using the App SDK, you can integrate the MiniApp SDK to deploy a miniapp to the desired page within the app as a container. If you want to create a flexible and personalized app on a limited budget, MiniApp can suit you best.

- [What is Smart MiniApp?](/en/miniapp/develop/miniapp/guide/start/smart)
- [What is Panel MiniApp?](/en/miniapp/develop/ray/guide/start/quick-start)
- [What is MiniApp SDK?](https://developer.tuya.com/en/docs/app-development/mini-app-sdk?id=Kcxhf8ebbzcdb)

## Compatible host apps

Miniapps run on the MiniApp SDK. The SmartLife app and OEM app come with the MiniApp SDK, allowing them to run a miniapp directly. To run a miniapp in App SDK-based apps, you must integrate the MiniApp SDK. The MiniApp SDK consists of various modular capabilities called Kits. Make sure the Kit you integrate is present in the target app and meets the required version. If not, update the app accordingly. For more information, see [Concept](/en/miniapp/common/desc/tech-stack/api).

## Development tools

You can develop and debug miniapps with the dedicated tool [Tuya MiniApp IDE](/en/miniapp/devtools/tools). This tool features:

- Miniapp simulator: Simulate miniapp features, such as dark mode, multi-language support, phone models, and scaling.
- Remote debugger: Debug a miniapp that is running on a real device to identify miniapp issues that occurred on the app.
- Real device preview: View the changes made to a mini-app on the app without releasing a new version.
- Debugging panel: View the miniapp elements, requests, console output, and debugging breakpoints.
- Panel tools: Simulate the device's data points (DPs) for debugging and output device logs.

After finishing building a miniapp, you can release a version to the [MiniApp Developer Platform](/en/miniapp/common/desc/platform) where you can manage trial and official versions, start or stop a live version, and roll back to a previous version. You can manage multilingual UI text and view operation logs and statistics, enabling full life-cycle management of miniapps.

## Developer acceptance

MiniApp has been applied in Tuya's in-house development for panels and dynamic applications. Hundreds of business developers choose MiniApp for developing applications. After three years of development, the MiniApp technology is now established and stable for use in various fields.

## Technical support

The developer documentation, examples, tutorials, and AI assistant will support you throughout your development journey. You can post problems and engage with the community on the developer forum.

[Technical support](https://developer.tuya.com/en/miniapp/faq)

## Comparisons with Flutter and uni-app

As a rendering engine, Flutter provides high performance by utilizing native rendering. However, developers may face challenges like the steep learning curve of the Dart language.

uni-app, a popular cross-platform framework in China, is backed by a strong ecosystem. It provides a Vue.js-based framework for cross-platform development, as well as a dedicated code editor and multiple SDKs to streamline your projects. However, uni-app provides capabilities broadly without focusing on specific fields and a unified management backend.

Tuya MiniApp is a comprehensive development system designed for smart devices and services. It provides complete and stable MiniApp capabilities, supports both MiniApp and React syntax, and includes management features.
