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

uni-app x: A Vue.js Framework That Compiles to Native Rendering Across Platforms

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,693 stars3,710 forksObjective-CApache-2.0

At a glance

What is it?
DCloud's uni-app x is a Vue.js-based framework that compiles one codebase to iOS, Android, HarmonyOS, web, and multiple mini-programs. Its main branch uses a vapor mode for native rendering, with performance claims that deserve scrutiny.
Who is it for?
Adopt uni-app x if you are a Vue.js developer needing to ship to China's mini-program ecosystem plus native mobile apps, and you accept the vendor lock-in to DCloud's tooling. Do not adopt it if you need a purely open-source, community-governed stack, or if you are targeting platforms outside the listed set without a custom plugin.
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 November 13, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • dcloudio/uni-app41,693 ★ · +109
Star history
Repository2026-07-282026-11-13
dcloudio/uni-app41.6k41.7k

109 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

What uni-app x Actually Solves

uni-app x targets a specific pain: writing one codebase and publishing to iOS, Android, HarmonyOS, web, and many Chinese mini-program platforms. The README lists WeChat, Alipay, Baidu, Douyin, Feishu, QQ, Kuaishou, DingTalk, Taobao, JD, and Xiaohongshu, plus quick apps and HarmonyOS meta-services. The intended user is a Vue.js developer who wants to avoid learning each platform's proprietary syntax. The framework splits into two generations: the older uni-app uses a mini-program-like architecture with a JS logic layer and a web-view rendering layer, while the newer uni-app x, which is the default branch of this repository, uses a vapor mode that compiles to native rendering. This distinction matters because the performance claims apply only to uni-app x, not the older version. The README explicitly states that uni-app x is the main branch, so anyone cloning the repo today gets the new architecture by default.

The Vapor Mode Architecture

The core mechanism of uni-app x is the vapor mode, which the README describes as using js/ts/uts for page development and native rendering on App platforms. The language uts is a TypeScript-like cross-platform language that compiles to Kotlin on Android, Swift on iOS, ArkTS on HarmonyOS Next, and JavaScript on web and mini-programs. The README says uts is mainly used for native plugin extensions. The README claims that in view and text component performance tests, uni-app x renders 2 to 3 times faster than native on Android, iOS, and HarmonyOS. For long lists, it claims 2 to 4 times the frame rate of native. These are strong numbers, but the README provides no methodology beyond pointing to benchmark reports in the benchmark directory. The repository layout includes a benchmark folder with three platform-specific reports, so a skeptical reader can inspect those files.

Getting Started: Commands and Configuration

The README does not include explicit installation commands, but it points to a quick experience QR code and a sample project called hello-uniapp available on GitHub. The repository structure gives a clue: the src directory holds the source code, examples contains sample projects, and docs holds documentation. The README mentions that the hello uni-app x example can be fetched from github.com/dcloudio/hello-uniapp. For actual command-line usage, you would need to consult the docs directory, as the README is light on CLI details. The framework supports Vue.js, so you write .vue files with templates, scripts, and styles. The uts language is used for native plugin extensions, so if you need platform-specific functionality, you write uts code that compiles to the target language. The README also mentions an AI training tool and a uni-agent for AI-assisted development, but these are external links, not part of the core setup.

Where uni-app x Is the Wrong Tool

The most obvious limitation is the platform list. If your target is not in the supported set, you are out of luck unless you write a native plugin in uts. The README notes that quick apps only support vivo, oppo, and Huawei, so that subset is already constrained. Another limitation is the performance claims: they are vendor-supplied and not independently verified. The README says the rendering speed is 2 to 3 times native. The vapor mode is DCloud's own implementation of native rendering, so you are tied to it. If DCloud stops maintaining a platform, you have no fallback. The README mentions that the older uni-app uses a web-view approach. For developers who need to support platforms outside China, such as a global web app or a Windows desktop app, uni-app x is not a fit. The framework also assumes you are comfortable with Vue.js and TypeScript-like syntax; if you are a React developer, the learning curve is steep.

The Alternative: Capacitor or Native Scripts

A real alternative to uni-app x is Capacitor, which wraps a web app in a native shell. Capacitor does not compile to native code; it runs your existing web app in a WebView and provides native APIs via plugins. The difference in approach is fundamental: uni-app x compiles your Vue.js code to native UI components, while Capacitor keeps your web code as-is and only bridges to native features. For a team that already has a responsive web app, Capacitor is simpler because you reuse the entire web stack without a new compiler. Another alternative is React Native, which renders native components from JavaScript. The choice comes down to whether you need mini-program support and native performance, or whether you prefer a more standard web-based approach with a larger ecosystem. uni-app x is the only one in this comparison that targets the Chinese mini-program ecosystem directly.

Maintenance and Upgrade Costs

The repository shows a default branch named uni-app-x, which indicates active development, but the README does not provide release dates or version numbers. The CHANGELOG.md file exists in the root directory, so you can inspect it for upgrade notes. The framework has two major versions: the older uni-app (with vue2 and vue3 branches) and the new uni-app x. Migrating from the older version to uni-app x is not trivial because the rendering architecture changes from web-view to native. The README states that uni-app x is the main branch, so new features will likely land there first, making the older branches a maintenance liability. The uts language is a new skill to learn, and the compilation targets vary by platform, which means a bug in the Kotlin or Swift code generation can affect all native apps. The license is Apache-2.0, which is permissive and allows commercial use, but the README does not clarify whether the HBuilderX IDE is open source. The docs directory may contain more details on upgrade paths, but the README alone does not specify a migration strategy. If you adopt uni-app x, plan for ongoing updates as DCloud adjusts the vapor mode.

The AI-Friendly Angle and Its Limits

The README makes a notable claim: uni-app is an AI-friendly framework because Vue.js and TypeScript are common in AI training data, so AI models make fewer mistakes and consume fewer tokens. It even provides a reinforcement learning tool for AI models and a uni-agent service. This is a marketing angle, but it has a technical basis: declarative templates are more constrained than imperative code, so an AI has less room to invent APIs. However, the claim is unverified, and the README does not provide evidence beyond the statement. For a human developer, the benefit is that Vue.js is widely known, so hiring is easier. If you rely on a specific Vue.js library, you need to check compatibility with the uni-app x compiler. The AI tools are external services, so they are not part of the open-source repository, and you would need to assess their cost and reliability separately.

Editorial conclusion

Adopt uni-app x if you are a Vue.js developer needing to ship to China's mini-program ecosystem plus native mobile apps, and you accept the vendor lock-in to DCloud's tooling. Do not adopt it if you need a purely open-source, community-governed stack, or if you are targeting platforms outside the listed set without a custom plugin. Before committing, verify the benchmark methodology in the benchmark directory, check the CHANGELOG.md for recent stability fixes, and test your specific list-heavy UI on the three native platforms. The documentation's performance claims are impressive but not independently verified, so treat them as vendor data until you reproduce them.

Frequently asked questions

What is the Uni app used for?

uni-app is a framework that uses Vue.js to develop front-end applications, where developers write one set of code and publish to iOS, Android, HarmonyOS, the responsive web, various mini-programs, quick apps, and HarmonyOS meta-services. The project splits into uni-app and uni-app x, and this repository is the open source repository for the uni-app x version.

What is UniApp?

It is a cross-platform framework using Vue.js. On the App platform the older uni-app generation uses the same technical architecture as mini-programs, with js in the logic layer and a web-view in the rendering layer, while uni-app x supports vapor mode with js, ts, or uts and uses native rendering.

Is the Uni app legit?

The repository is the open source home of the uni-app x version, its manifest declares Apache-2.0, and the last push to the default branch was 2026-11-02. The performance figures it publishes are the vendor's own, so the three benchmark reports for Android, iOS, and HarmonyOS are the place to check the method behind them.

uni app vs uni app x

The README treats these as two generations of the same framework. uni-app is the older one, where the App engine mirrors the mini-program architecture, the logic layer is js, and the rendering layer is a web-view. uni-app x is the new generation and the main branch, with vapor mode for js, ts, or uts and native rendering on the App platform.

uni app vs flutter

The README makes no comparison with Flutter. What it states about itself is a publish target list, its own measured ratios against native on Android, iOS, and HarmonyOS, and a note that quick apps are supported only on vivo, oppo, and huawei.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
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)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/dcloudio-uni-app.svg)](https://hysenlabs.com/projects/dcloudio-uni-app)

Was this useful?