← Ко всем open source проектам

uni-app

dcloudio/uni-app

uni-app — Vue-фреймворк для выпуска одного приложения на веб, мобильные платформы и мини-программы.

Форки 3,711
Автор dcloudio
Язык Vue
Лицензия Apache-2.0
Обновлено 2026-06-27

Что это такое

uni-app — кроссплатформенный фреймворк DCloud, в котором интерфейсы пишутся на Vue, а затем выпускаются на разные платформы: iOS, Android, HarmonyOS, веб и несколько экосистем мини-программ.

Главная идея проекта простая: команда не переписывает один и тот же экран под каждый канал распространения. Она держит общую модель компонентов, страниц и состояния, а адаптационный слой берет на себя различия платформ.

Репозиторий dcloudio/uni-app важен именно как центр фреймворка, а не как маленькая библиотека. В нем живет технология, вокруг которой DCloud развивает инструменты, документацию, примеры и отдельную линию uni-app x.

Как появился и что внутри

Проект вырос из практической боли китайского мобильного рынка, где рядом существуют нативные приложения, веб-версии и мини-программы разных платформ. Для такой среды единая Vue-модель особенно ценна: один продукт должен быстро появляться сразу в нескольких местах.

В классическом uni-app логика пишется на JavaScript, а рендеринг в приложениях использует слой, близкий к мини-программам. В uni-app x команда развивает uts и uvue: этот путь ближе к нативному рендерингу и компиляции под Kotlin, Swift, ArkTS, JavaScript и платформы мини-программ.

Отдельный плюс — знакомый синтаксис Vue. Разработчик видит компонент, шаблон, данные и обработчики событий, а не полностью новую модель интерфейса.

Как используют

uni-app обычно выбирают, когда нужно быстро закрыть несколько каналов: мобильное приложение, веб-версию и мини-программу. Это особенно полезно для сервисов, где важна скорость запуска и единая команда разработки.

Проект хорошо ложится на продуктовые команды, которые уже знают Vue. В этом случае порог входа ниже: привычные компоненты и страницы остаются, а изучать приходится в основном платформенные отличия, сборку и ограничения конкретных целевых сред.

Ограничение очевидное: единый код не отменяет различия платформ. Доступ к нативным возможностям, правила магазинов, поведение мини-программ и производительность сложных экранов все равно нужно проверять отдельно.

Пример компонента

Минимальный компонент показывает саму идею uni-app: разметка похожа на Vue, но элементы и события ориентированы на перенос между платформами.

Один экран в стиле Vue

Пример показывает обычную форму компонента: шаблон, данные и обработчик остаются рядом, а код может пройти через сборку uni-app.

Язык: Vue
<template>
  <view class="profile-card">
    <text>{{ title }}</text>
    <button @click="open">Открыть</button>
  </view>
</template>

<script>
export default {
  data() {
    return { title: "Карточка сервиса" }
  },
  methods: {
    open() {
      uni.showToast({ title: "Готово" })
    }
  }
}
</script>

Сильные стороны и ограничения

Сильная сторона uni-app — практичная экономия на повторной разработке. Один набор страниц можно довести до нескольких площадок, а не держать независимые команды под каждый формат.

Для сложных продуктов важно заранее выделять платформенно-зависимые места: платежи, камеры, карты, уведомления, авторизацию и тяжелую анимацию. Такие зоны лучше не прятать за обещанием абсолютной универсальности.

uni-app подойдет тем, кто уже работает с Vue и выпускает сервис в несколько сред. Если продукт строго нативный, с очень тонкой графикой или платформенными сценариями, стоит заранее проверить прототип на реальном устройстве.