uni-app: Vue.js Cross-Platform Framework
uni-app is a Vue.js framework that compiles one codebase to iOS, Android, HarmonyOS, the web, and a long list of Chinese mini-program platforms. It earns its keep in exactly that mini-program sprint work — hitting WeChat, Alipay, Baidu, and ByteDance from one Vue codebase beats hand-building each target separately. The catch: most docs default to Chinese. English-speaking teams should budget real translation time before committing.
What is uni-app
uni-app is an open-source, Vue.js framework from DCloud for shipping one codebase to iOS, Android, HarmonyOS, web, and mini-programs on WeChat, Alipay, Baidu, ByteDance, and more. It ships two engines: classic uni-app renders through a web-view, while uni-app x compiles its uts language to native Kotlin, Swift, and ArkTS via the uvue rendering engine.
Key features of uni-app
- ✓One Vue.js codebase compiles to iOS, Android, HarmonyOS, web, and mini-programs on WeChat, Alipay, Baidu, ByteDance, Feishu, QQ, Kuaishou, DingTalk, Taobao, JD, and Xiaohongshu.
- ✓uni-app x adds a second engine: the uts language compiles to Kotlin on Android, Swift on iOS, and ArkTS on HarmonyOS Next instead of running through a web-view.
- ✓On web and mini-program targets, uts compiles down to plain JavaScript instead of native code.
- ✓Supports both Vue 2 and Vue 3, maintained on separate uni-app-vue2 and uni-app-vue3 branches.
- ✓Also targets 快应用 quick apps and HarmonyOS meta-services (鸿蒙元服务), platforms most cross-platform frameworks skip.
- ✓Ships a benchmark/ directory in the repo with its own performance evaluation reports.
- ✓Apache-2.0 licensed, so forking, modifying, and redistributing carry no copyleft obligation.
Why cross-platform development matters
Building for the Chinese app ecosystem means more than iOS and Android — WeChat, Alipay, Baidu, ByteDance, Kuaishou, and DingTalk each run their own mini-program runtime with its own component syntax and build pipeline. A team that wants to reach all of them without hand-maintaining ten separate codebases needs a compiler that understands each target, not a generic 'write once' slogan. The README frames uni-app around exactly that: it positions the framework as a better mini-program tool even for teams that never touch iOS or Android at all.
What you can build with uni-app
- •A single product team shipping the same app to iOS, Android, and a responsive web build from one Vue codebase.
- •A retail or content brand that needs presence across WeChat, Alipay, Baidu, ByteDance, and other mini-program storefronts without a separate team per platform.
- •A HarmonyOS-focused release, including compiling uts straight to ArkTS or publishing as a HarmonyOS meta-service (鸿蒙元服务).
- •A quick-app (快应用) build for Android OEM channels like vivo, OPPO, and Huawei — the only quick-app targets the README calls out.
- •A team migrating an existing web-view-based uni-app project to the native-rendering uni-app x engine for better performance.
Getting started with uni-app
Install steps aren't clearly documented in the material available here — the README section provided points to a quick-experience QR code and says the hello uni-app / uni-app x sample code can be pulled from GitHub, but it doesn't spell out CLI commands or package names. The repo topics list hbuilderx, DCloud's own IDE, as the tooling most associated with the project. Start by pulling the example project from GitHub and checking DCloud's docs before assuming a specific install command.
Writing and deploying uni-app code
The uni-app x branch of this repo is organized like a typical framework source tree: src/ holds the engine source, examples/ has runnable sample projects, docs/ is the documentation set, test/ holds the test suite, and benchmark/ contains the project's own performance evaluation reports. The day-to-day build-and-ship workflow — which commands target which mini-program platform, how uts compiles per target — isn't spelled out in the facts available here; that detail lives in docs/, not the top-level README.
Strengths
- ✓One Vue.js codebase reaches an unusually wide spread of targets: iOS, Android, HarmonyOS, web, and a long list of named mini-program platforms, not just the usual two or three.
- ✓uni-app x's uts-to-native compilation (Kotlin, Swift, ArkTS) is a real step up from routing everything through a web-view, for projects that need it.
- ✓Apache-2.0 licensing keeps redistribution and modification unrestricted.
- ✓Explicit HarmonyOS and HarmonyOS meta-service support, which most Western cross-platform frameworks don't offer at all.
uni-app limitations and trade-offs
- △Nearly all of the README, the DCloud ecosystem claims, and (per the repo topics) its primary IDE tooling are Chinese-first; English documentation coverage isn't established in what's available here.
- △uni-app and uni-app x are two different engines with different rendering models (web-view vs. native via uts/uvue) — moving a project from one to the other isn't a drop-in change.
- △Quick-app (快应用) support is narrow: the README states it only covers vivo, OPPO, and Huawei, not the wider Android OEM landscape.
- △The install and day-to-day CLI workflow aren't documented in the material reviewed here, so evaluating setup friction firsthand is the only way to know it.
Alternatives to uni-app
Who should use uni-app
Teams that need to hit WeChat, Alipay, Baidu, ByteDance, or other mini-program platforms alongside iOS and Android — without staffing a separate team per platform — are the clearest fit for uni-app, especially if the team already knows Vue.js. It also suits projects targeting HarmonyOS specifically, since uts compiles straight to ArkTS. Teams working purely in English with no appetite for translating Chinese-first docs, or those who need a fully native rendering pipeline everywhere on day one, should budget extra ramp-up time or look elsewhere.
Frequently asked questions about uni-app
uni-app is released under the Apache-2.0 license, so it's free to use, modify, and redistribute, including in commercial projects, without paying DCloud a licensing fee. Apache-2.0 requires keeping copyright and license notices intact in copies of the source, but it doesn't force derivative works to be open-sourced.
uni-app compiles one Vue.js codebase to iOS, Android, HarmonyOS, and a responsive web build, plus mini-programs on WeChat, Alipay, Baidu, ByteDance (Douyin), Feishu, QQ, Kuaishou, DingTalk, Taobao, JD, and Xiaohongshu. It also supports 快应用 quick apps on vivo, OPPO, and Huawei, and HarmonyOS meta-services (鸿蒙元服务).
Classic uni-app uses a web-view rendering layer: logic runs in JavaScript while the UI renders through an embedded web view, the same architecture mini-programs use. uni-app x is the newer engine, built on the uts language and the uvue rendering engine, compiling to native Kotlin, Swift, or ArkTS instead of rendering through a web-view.
uts is a TypeScript-like, cross-platform language that uni-app x compiles per target: to Kotlin on Android, to Swift on iOS, and to ArkTS on HarmonyOS Next. On web and mini-program builds, uts compiles down to plain JavaScript instead, so the same uts source produces native code on mobile and JS elsewhere.
The README states that DCloud's ecosystem includes a large base of developers, published apps, and monthly active users across apps built with uni-app, which points to real production usage, though the repo doesn't publish exact adoption figures. The project also ships a benchmark/ directory with its own performance evaluation reports for teams that want to check numbers themselves.
That's not clearly documented in uni-app's own README — HBuilderX is DCloud's official IDE and appears among the repository's GitHub topics, but the source material here doesn't state whether it's mandatory or whether VS Code is a supported alternative. Check DCloud's documentation directly before assuming either way.
Related repositories
Curious whether uni-app is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about uni-app.
