# uni-app: Write Once, Deploy to iOS, Android, Web, and Mini-Programs

> uni-app is an open-source Vue.js-based framework from DCloud that compiles a single codebase to iOS, Android, HarmonyOS, Web, and over a dozen mini-program platforms including WeChat, Alipay, and TikTok. The newer uni-app x branch uses native rendering rather than a WebView.

**dcloudio/uni-app** — uni-app is a Vue.js-based cross-platform framework that lets developers ship one codebase to iOS, Android, HarmonyOS, web, and a wide range of mini-program platforms.

- Repository: https://github.com/dcloudio/uni-app
- Website: https://uniapp.dcloud.io
- Stars: 41,617 · Forks: 3,708
- Language: Objective-C
- License: Apache-2.0
- Published: 2026-08-08 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/dcloudio-uni-app

## What uni-app Does and Which Platforms It Targets

uni-app is a framework built on Vue.js that lets developers write a single application codebase and deploy it to multiple platforms: iOS, Android, HarmonyOS (Huawei's operating system), Web (responsive), and over a dozen mini-program environments. The mini-program targets listed in the README include WeChat, Alipay, Baidu, TikTok (Douyin), Feishu, QQ, Kuaishou, DingTalk, Taobao, JD, and Xiaohongshu, as well as quick apps and HarmonyOS meta-services.

The README states the framework's value proposition directly: "developers write one set of code and can publish to iOS, Android, HarmonyOS, Web (responsive), and various mini-programs." DCloud, the company behind uni-app, reports over 10 million developers using the framework.

## uni-app vs. uni-app x: Two Generations in One Repository

The repository has two active lines. The older uni-app (branches uni-app-vue2 and uni-app-vue3) uses the same rendering architecture as mini-programs: a JavaScript logic layer and a WebView rendering layer. The newer uni-app x (the current main branch, named uni-app-x) replaces the WebView renderer with native rendering.

The README describes the performance difference: for view and text component rendering, uni-app x runs at 2 to 3 times the speed of the equivalent native implementation on Android, iOS, and HarmonyOS, according to benchmark reports in the repository's benchmark/ directory. For long-list frame rate tests, uni-app x achieves 2 to 4 times the frame rate of native implementations on those same three platforms. The benchmark reports are in the benchmark/ directory.

The architectural reason is UTS, a new language introduced with uni-app x.

## UTS: The Cross-Platform Language at uni-app x's Core

UTS is described in the README as "a TypeScript-like, cross-platform language." It compiles to different targets depending on the platform: Kotlin on Android, Swift on iOS, ArkTS on HarmonyOS Next, and JavaScript on Web and mini-program platforms.

This means the rendering path uses actual native views compiled from UTS source, rather than interpreting JavaScript inside a WebView. The UTS language is primarily used for native plugin development in the uni-app x ecosystem. Applications written for uni-app x in Vue templates with UTS for native extensions compile to platform-native code at build time.

The repository's src/ directory contains the framework source and examples/, including hello-uts/ and hello-uvue/, which demonstrate UTS and the Vue-based UI layer respectively.

## Getting Started with uni-app

uni-app development uses HBuilderX, DCloud's IDE. The framework is not installed from npm as a standalone command-line tool; HBuilderX manages project creation, compilation, and deployment to simulators and devices. The repository itself is an open-source reference for the framework internals and examples, not a standalone npm package for end-user installation.

The package.json in the repository root is named uni-app-x and contains subtree scripts for pulling in example repositories (hello-uni-app-x from gitcode.com, hello-uts and hello-uvue from GitHub). The yarn.lock suggests the repository uses Yarn for dependency management at the workspace level.

For developers outside China, access to mini-program developer tools (WeChat DevTools, Alipay Studio, and others) requires separate registration with each mini-program platform.

## uni-app vs. Flutter: Scope and Trade-offs

Flutter is Google's cross-platform UI framework that compiles Dart code to native widgets on iOS, Android, Web, and desktop. It does not target mini-programs or HarmonyOS mini-services. Flutter requires Dart, a separate language from JavaScript and TypeScript.

uni-app uses Vue.js, which means developers already familiar with Vue can adopt it without learning a new language. The trade-off is that Flutter's native widget compilation produces performance characteristics similar to fully native code across its supported platforms, while uni-app's WebView-based variant (the older line) runs rendering inside a WebView layer.

For Chinese developers who must ship on WeChat mini-programs and also need iOS and Android apps, uni-app provides a unified codebase path that Flutter cannot offer. For teams targeting only iOS, Android, and Web with no mini-program requirement, Flutter and React Native are both valid alternatives.

## Limitations and Ecosystem Dependencies

uni-app is tightly coupled to the DCloud ecosystem. HBuilderX is the primary development environment; while VSCode support exists (it appears in RELATED SEARCHES as "uni-app vscode"), the toolchain is most integrated with HBuilderX. Accessing the mini-program platforms requires registering developer accounts with each platform individually, which can be a barrier for non-Chinese teams.

The README is written in Simplified Chinese (the English README, README_en-US.md, exists in the repository but the primary documentation at docs.dcloud.net.cn is in Chinese). Teams without Chinese language skills will face a higher support barrier.

The repository does not use semantic versioning with GitHub releases; no releases appear in the metadata. Updates are tracked through CHANGELOG.md and through HBuilderX version numbers.

## License, Maintenance, and AI Tool Integration

uni-app is licensed under Apache-2.0. The last push to the repository was on 2026-09-25. The package.json version is 0.0.1, which does not reflect the maturity of the production framework; versioning is managed through HBuilderX releases.

The README includes a section on AI compatibility: it describes uni-app as "an AI-friendly technical framework" because it uses Vue, JavaScript, TypeScript, and CSS, which are all well-represented in AI training data. DCloud also provides uni-agent, an AI coding tool for uni-app x development, and a reinforcement learning tool for model training on uni-app code, documented at doc.dcloud.net.cn/uni-app-x/ai/.

## Conclusion

uni-app suits teams that need to deploy across Chinese mini-program ecosystems alongside iOS, Android, and Web from a single Vue-based codebase. Developers already comfortable with Vue will find the learning curve low. Before adopting uni-app x, verify that the UTS language and native renderer meet your performance and debugging requirements; the documentation is primarily in Chinese, which may limit support resources for non-Chinese teams.

## FAQ

### What is the uni-app framework used for?

uni-app is a Vue.js-based cross-platform framework that compiles a single codebase to iOS, Android, HarmonyOS, Web, and over a dozen Chinese mini-program platforms including WeChat, Alipay, and TikTok.

### What is UniApp?

UniApp (uni-app) is an open-source framework from DCloud built on Vue.js. Developers write one Vue codebase and deploy it across iOS, Android, and multiple mini-program environments. The uni-app x branch adds native rendering via the UTS language.

### How does uni-app compare to Flutter?

Flutter uses Dart and targets iOS, Android, Web, and desktop with native widget compilation. uni-app uses Vue.js and targets those platforms plus WeChat and other Chinese mini-programs. Flutter does not support mini-program targets; uni-app does not compile to desktop.

### What is the difference between uni-app and uni-app x?

The original uni-app uses a JavaScript logic layer and a WebView rendering layer. uni-app x is the newer branch that uses native rendering compiled from UTS, a TypeScript-like language that compiles to Kotlin, Swift, ArkTS, or JavaScript depending on the target platform.

## Sources

- [Official documentation](https://uniapp.dcloud.io)
- [Official README](https://github.com/dcloudio/uni-app#readme)
- [Project repository](https://github.com/dcloudio/uni-app)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/dcloudio-uni-app
