Как Tencent переизобрел кроссплатформу: знакомимся с KuiklyUI

04 Aug, 2026
3,376
🔱 291
👥 31

Представьте ситуацию: вам нужно запустить проект сразу на Android, iOS, HarmonyOS, в вебе и даже как мини-приложение внутри мессенджера. Обычно в этот момент начинается мучительный выбор между Flutter, React Native или Compose Multiplatform. Но у ребят из Tencent, кажется, свой путь. Они выложили в опенсорс KuiklyUI — фреймворк на базе Kotlin Multiplatform, который уже крутится в QQ Music и Tencent News на устройствах полумиллиарда пользователей.

Kuikly Logo

Что это вообще такое

KuiklyUI — это не просто очередная обертка над KMP. Это полноценная UI-система, которая ставит перед собой амбициозную цель: один код для шести платформ с нативной производительностью. Список поддерживаемых систем впечатляет: Android, iOS, HarmonyOS (что сейчас особенно актуально для китайского рынка), Web, Mini Apps и даже macOS.

В основе лежит Kotlin, но архитектура хитрее, чем кажется. Разработчики из Tencent взяли за основу Jetpack Compose 1.7.3, переписали часть внутренностей под свои нужды и сменили пакеты на com.tencent.kuikly.compose. Это позволило им добиться гибкости, которой иногда не хватает в официальных ветках Compose Multiplatform.

Чем KuiklyUI отличается от конкурентов

Когда я впервые увидел описание, возник резонный вопрос: зачем еще один фреймворк? Но пара деталей в README заставляют присмотреться внимательнее.

Настоящая нативность

В отличие от некоторых решений, которые рисуют интерфейс «поверх» системы, Kuikly генерирует нативные бинарники (.aar для Android, .framework для iOS, .so для HarmonyOS). Это значит, что приложение не тащит за собой тяжелую виртуальную машину или огромный движок отрисовки.

Легковесность

Цифры говорят сами за себя. В режиме AOT (Ahead-of-Time) SDK занимает около 300 КБ на Android и 1.2 МБ на iOS. Для сравнения: Flutter-приложение «из коробки» весит в разы больше. Для крупных компаний, где каждый мегабайт в основном приложении на счету, это критический фактор.

Динамические возможности

Одна из самых интересных фишек — поддержка динамической доставки (dynamic deliverables). Это позволяет обновлять логику или части интерфейса без полной пересборки и переподачи приложения в сторы. В экосистеме Tencent, где приложения превращаются в супер-аппы, это жизненно важная функция.

Взгляд под капот

Если заглянуть в структуру репозитория, видно, что проект разделен на четкие модули. Ядром служит core, где реализованы алгоритмы разметки, реактивность и мосты для связи с нативными API.

.
├── core                    # Общая логика, мосты и алгоритмы лейаута
├── core-render-android    # Рендерер под Android
├── core-render-ios        # Рендерер под iOS
├── compose                # Кастомная версия Compose UI от Tencent
└── demo                   # Примеры использования DSL

Интересно, что Kuikly поддерживает сразу несколько парадигм. Вы можете писать в декларативном стиле (как в Compose) или использовать реактивный подход. У них даже есть собственный DSL для описания интерфейсов.

Где это уже работает

Обычно к новым фреймворкам относятся с опаской: «А не забросят ли его через месяц?». С KuiklyUI ситуация иная. Он уже прошел боевое крещение в продуктах-гигантах:

  • QQ и QQ Music
  • Tencent News
  • Sogou Input Method
  • MyApp Hub (магазин приложений Tencent)

Когда технология обслуживает 500 миллионов активных пользователей в день, вопросы о стабильности отпадают сами собой.

Как попробовать самому

Для старта понадобится стандартный набор: Android Studio (лучше версии 2024.2.1 и выше), Xcode для iOS/macOS и DevEco Studio, если решите пощупать HarmonyOS. Важный нюанс: проект требует JDK 17.

Запуск демо-приложения на Android выглядит стандартно:

  1. Клонируем репозиторий.
  2. Открываем в Android Studio.
  3. Дожидаемся синхронизации Gradle и запускаем модуль androidApp.

Для iOS чуть сложнее: нужно зайти в папку iosApp, выполнить pod install --repo-update и в настройках Xcode отключить User Script Sandboxing, иначе скрипты KMP могут упасть с ошибкой прав доступа.

Стоит ли игра свеч

KuiklyUI выглядит как очень сильный игрок для тех, кто уже использует Kotlin Multiplatform, но недоволен весом или скоростью работы стандартных UI-решений.

Кому стоит присмотреться:

  • Разработчикам супер-аппов, которым важна модульность и динамическое обновление.
  • Командам, ориентированным на азиатский рынок (поддержка HarmonyOS и Mini Programs здесь на высоте).
  • Тем, кто борется за каждый килобайт размера APK/IPA.

Конечно, документация местами завязана на китайский язык, а кастомная версия Compose может вызвать вопросы при миграции с официальных библиотек JetBrains. Но учитывая масштаб проектов, которые уже на нем работают, KuiklyUI — это серьезный инструмент, а не просто эксперимент.

Если вы устали от ограничений существующих кроссплатформенных решений, возможно, стоит дать шанс этому «быстрому» (Kuikly) фреймворку от Tencent. Тем более, что порог входа для тех, кто знаком с Kotlin, минимальный.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.