Library / SDK
dcloudio/uni-app avatar
dcloudio/uni-app

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

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.

41,617 stars3,708 forksObjective-CApache-2.0

At a glance

What is it?
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.
Who is it for?
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.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Objective-C, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

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/.

Editorial 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.

Frequently asked questions

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.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
For maintainers

Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/dcloudio-uni-app.svg)](https://hysenlabs.com/projects/dcloudio-uni-app)
Community notes

Community notes