Spec-Zone.ru › Kotlin 2

Обзор

Kotlin предлагает два подхода к веб-разработке с помощью Kotlin Multiplatform:

  • На основе JavaScript (с использованием компилятора Kotlin/JS)

  • На основе WebAssembly (с использованием компилятора Kotlin/Wasm)

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

Kotlin/JS

Kotlin/JS позволяет запускать приложения Kotlin в средах JavaScript (JS), преобразуя ваш код, стандартную библиотеку и все поддерживаемые зависимости в JS.

При разработке с Kotlin/JS приложения можно запускать в браузере или среде Node.js.

Информацию о настройке целевых платформ Kotlin/JS см. в руководстве Настройка проекта Gradle.

Сценарии использования Kotlin/JS

Kotlin/JS подходит, если ваша цель —:

  • Совместно использовать бизнес-логику с кодовой базой JavaScript/TypeScript.

  • Создавать на Kotlin веб-приложения, код которых не будет использоваться совместно с другими платформами.

Совместное использование бизнес-логики с кодовой базой JavaScript/TypeScript

Если вам нужно совместно использовать код Kotlin (например, логику предметной области или работы с данными) с нативным приложением JavaScript/TypeScript, целевая платформа Kotlin/JS обеспечивает:

  • Прямую совместимость с JavaScript/TypeScript.

  • Минимальные накладные расходы при взаимодействии (например, позволяет избежать ненужного копирования данных). Благодаря этому совместный код легко встраивается в рабочий процесс на основе JS.

Создание веб-приложений на Kotlin без совместного использования кода

Для проектов, в которых веб-приложение полностью реализовано на Kotlin и не использует код совместно с другими платформами (iOS, Android или настольными платформами), HTML-решение обеспечивает больший контроль.

HTML-решения улучшают SEO и доступность. Они также обеспечивают более тесную интеграцию с браузером, включая такие функции, как поиск на странице и перевод страницы.

Для HTML-решений Kotlin/JS поддерживает несколько подходов:

  • Использование фреймворков на основе Compose HTML, таких как Kobweb или Kilua, для создания пользовательских интерфейсов с архитектурой в стиле Compose.

  • Использование решений на основе React с обёртками для Kotlin, позволяющих реализовывать компоненты React на Kotlin.

Kotlin/Wasm

Kotlin/Wasm компилирует код Kotlin в WebAssembly (Wasm), позволяя приложениям запускаться в средах и на устройствах, поддерживающих Wasm и отвечающих требованиям Kotlin.

В браузерах Kotlin/Wasm позволяет создавать веб-приложения с помощью Compose Multiplatform. Вне браузера он работает в автономных виртуальных машинах Wasm, используя WebAssembly System Interface (WASI) для доступа к API платформы.

При разработке с Kotlin/Wasm можно выбрать целевую платформу:

  • wasmJs: для запуска в браузерах или Node.js.

  • wasmWasi: для запуска в средах Wasm с поддержкой WASI, например Wasmtime, WasmEdge и других.

Информацию о настройке целевых платформ Kotlin/Wasm см. в руководстве Настройка проекта Gradle.

Сценарии использования Kotlin/Wasm

Используйте Kotlin/Wasm, если хотите совместно использовать логику и пользовательский интерфейс на нескольких платформах.

Создание кроссплатформенных приложений с Compose Multiplatform

Если вы хотите совместно использовать логику и пользовательский интерфейс на нескольких платформах, включая веб-платформу, Kotlin/Wasm вместе с Compose Multiplatform предоставляет общий слой пользовательского интерфейса:

  • Обеспечивает единообразную реализацию пользовательского интерфейса для всех платформ.

  • Использует Wasm для повышения производительности отрисовки и более плавного обновления интерфейса, например для адаптивной анимации.

  • Поддерживает последнюю версию предложения WebAssembly Garbage Collection (WasmGC), благодаря которому Kotlin/Wasm может работать во всех основных современных браузерах.

Выбор подхода к веб-разработке

В таблице ниже приведена рекомендуемая целевая платформа для каждого сценария:

Сценарий использования

Рекомендуемая целевая платформа

Описание

Совместное использование бизнес-логики при использовании нативного для веб-платформы пользовательского интерфейса

Kotlin/JS

Обеспечивает простое взаимодействие с JS и минимальные накладные расходы.

Совместное использование пользовательского интерфейса и бизнес-логики

Kotlin/Wasm

Обеспечивает более высокую производительность отрисовки с помощью Compose Multiplatform.

Пользовательский интерфейс, код которого не будет использоваться совместно с другими платформами

Kotlin/JS

Позволяет создавать пользовательские интерфейсы с помощью HTML-фреймворков, таких как Kobweb, Kilua или React, используя существующие экосистему и инструменты JS.

Если вам нужна помощь в выборе подходящей целевой платформы, присоединяйтесь к нашему сообществу в Slack. Вы можете задать вопросы о различиях между платформами, производительности и рекомендуемых практиках для конкретных сценариев.

Режим совместимости для целевых веб-платформ

Для веб-приложения можно включить режим совместимости, чтобы оно сразу работало во всех браузерах. В этом режиме пользовательский интерфейс можно создавать с помощью Wasm для современных браузеров, а в старых браузерах будет использоваться JS.

Режим совместимости достигается за счёт кросс-компиляции для целевых платформ js и wasmJs. Подробнее о режиме совместимости для веб-платформ и его включении.

12 августа 2026 г.
Создание приложения для управления задачами с помощью Spring Boot и ClaudeKotlin/JavaScript

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/web-overview.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API