Spec-Zone.ru › Kotlin 1.8

Kotlin для JavaScript

Kotlin/JS предоставляет возможность транспилировать ваш Kotlin-код, стандартную библиотеку Kotlin и любые совместимые зависимости в JavaScript. Текущая реализация Kotlin/JS ориентирована на ES5.

Рекомендуемый способ использования Kotlin/JS — через плагины Gradle kotlin.js и kotlin.multiplatform. Они позволяют легко настроить и контролировать Kotlin-проекты, ориентированные на JavaScript, в одном месте. Это включает в себя такие важные функции, как управление объединением вашего приложения, добавление зависимостей JavaScript непосредственно из npm и многое другое. Чтобы ознакомиться с доступными вариантами, ознакомьтесь с документацией по настройке проектов Kotlin/JS.

Компилятор Kotlin/JS IR

Компилятор Kotlin/JS IR предлагает ряд улучшений по сравнению со старым компилятором. Например, он уменьшает размер сгенерированных исполняемых файлов за счёт устранения неиспользуемого кода и обеспечивает более плавную интеграцию с экосистемой JavaScript и её инструментами.

Старый компилятор устарел с выпуска Kotlin 1.8.0.

Генерируя файлы описания TypeScript (d.ts) из Kotlin-кода, компилятор IR облегчает создание «гибридных» приложений, которые смешивают код TypeScript и Kotlin, а также позволяют использовать функциональность совместного использования кода с помощью Kotlin Multiplatform.

Чтобы узнать больше о доступных функциях компилятора Kotlin/JS IR и о том, как попробовать его в своём проекте, посетите страницу документации компилятора Kotlin/JS IR и руководство по миграции.

Примеры использования Kotlin/JS

Существует множество способов использования Kotlin/JS. Вот неполный список сценариев, в которых вы можете использовать Kotlin/JS:

  • Создание веб-приложений для фронтенда с помощью Kotlin/JS

    • Kotlin/JS позволяет вам эффективно использовать мощные браузерные и веб-API безопасным способом. Создавайте, изменяйте и взаимодействуйте с элементами Document Object Model (DOM), используйте Kotlin-код для управления рендерингом canvas или компонентов WebGL и получите доступ к множеству других возможностей, поддерживаемых современными браузерами.

    • Создавайте полноценные, безопасные приложения React с Kotlin/JS, используя kotlin-wrappers, предоставляемые JetBrains, которые предоставляют удобные абстракции и глубокую интеграцию для React и других популярных JavaScript-фреймворков. kotlin-wrappers также предоставляет поддержку для ряда смежных технологий, таких как react-redux, react-router и styled-components. Взаимодействие с JavaScript-экосистемой означает, что вы также можете использовать сторонние React-компоненты и библиотеки компонентов.

    • Используйте фреймворки Kotlin/JS, которые в полной мере используют концепции Kotlin и его выразительность и краткость.

  • Разработка серверных и бессерверных приложений с использованием Kotlin/JS

    • Целевой Node.js, предоставляемый Kotlin/JS, позволяет создавать приложения, которые работают на сервере или выполняются в бессерверной инфраструктуре. Это даёт вам все преимущества выполнения в JavaScript-среде, такие как быстрый запуск и уменьшенный размер занимаемой памяти. С помощью kotlinx-nodejs вы получаете безопасный доступ к Node.js API непосредственно из вашего Kotlin-кода.

  • Использование Kotlin-проектов multiplatform для совместного использования кода с другими Kotlin-целями

    • Ко всему функционалу Kotlin/JS можно получить доступ при использовании плагина Gradle multiplatform Kotlin.

    • Если ваш бэкенд написан на Kotlin, вы можете совместно использовать общий код, такой как модели данных или логика валидации, с фронтендом, написанным на Kotlin/JS, что позволяет вам создавать и поддерживать веб-приложения «полного цикла».

    • Вы также можете обмениваться бизнес-логикой между вашим веб-интерфейсом и мобильными приложениями для Android и iOS и избегать дублирования часто используемого функционала, например, предоставления абстракций вокруг конечных точек REST-API, аутентификации пользователей или моделей вашей предметной области.

  • Создание библиотек для использования с JavaScript и TypeScript

    • Вам не нужно писать всё ваше приложение на Kotlin/JS — вместо этого вы можете генерировать библиотеки из вашего Kotlin-кода, которые могут использоваться в качестве модулей из любого кода, написанного на JavaScript или TypeScript, независимо от используемых вами фреймворков или технологий. Этот подход создания гибридных приложений позволяет использовать компетенции, которые у вас и вашей команды уже есть в области разработки веб-приложений, и помогает снизить объём дублирующей работы, упрощая поддержание вашей веб-цели в согласовании с другими целями вашего приложения.

Конечно, это неполный список всех способов использования Kotlin/JS на пользу вашего проекта, а лишь несколько выбранных примеров использования. Мы приглашаем вас экспериментировать с различными комбинациями и найти то, что лучше всего подходит для вашего проекта.

В любом случае, проекты Kotlin/JS могут использовать совместимые библиотеки из Kotlin-экосистемы, а также сторонние библиотеки из JavaScript- и TypeScript-экосистем. Для использования последних из Kotlin-кода, вы можете либо предоставить свои собственные безопасные оболочки, использовать поддерживаемые сообществом оболочки или позволить Dukat автоматически генерировать для вас Kotlin-определения. Использование специфичного для Kotlin/JS динамического типа позволяет ослабить ограничения типа Kotlin и пропустить создание подробных обёртки библиотек, хотя это происходит в ущерб типу безопасности.

Kotlin/JS также совместим с наиболее распространёнными системами модулей: UMD, CommonJS и AMD. Возможность создания и использования модулей означает, что вы можете взаимодействовать с JavaScript-экосистемой структурированным образом.

END_OF_DOCUMENT_MARKER

Kotlin/JS фреймворки

Современное веб-разработка существенно выигрывает от фреймворков, которые упрощают создание веб-приложений. Вот несколько примеров популярных веб-фреймворков для Kotlin/JS, написанных разными авторами:

KVision

KVision — объектно-ориентированный веб-фреймворк, который позволяет писать приложения на Kotlin/JS с готовыми компонентами, которые можно использовать в качестве строительных блоков пользовательского интерфейса вашего приложения. Вы можете использовать как реактивные, так и императивные модели программирования для создания вашего фронтенда, использовать коннекторы для Ktor, Spring Boot и других фреймворков, чтобы интегрировать его с вашими серверными приложениями, а также обмениваться кодом с помощью Kotlin Multiplatform.

Перейти на сайт KVision для получения документации, учебников и примеров.

Для получения обновлений и обсуждений о фреймворке присоединяйтесь к каналам #kvision и #javascript в Kotlin Slack.

fritz2

fritz2 — автономный фреймворк для создания интерактивных веб-интерфейсов. Он предоставляет собственный типобезопасный DSL для создания и рендеринга HTML-элементов, а также использует сопрограммы и потоки Kotlin для выражения компонентов и их привязок к данным. Он предоставляет управление состоянием, валидацию, маршрутизацию и многое другое «из коробки» и интегрируется с проектами Kotlin Multiplatform.

Перейти на сайт fritz2 для получения документации, учебников и примеров.

Для получения обновлений и обсуждений о фреймворке присоединяйтесь к каналам #fritz2 и #javascript в Kotlin Slack.

Doodle

Doodle — основанный на векторах фреймворк для Kotlin/JS. Приложения Doodle используют возможности графики браузера для отрисовки пользовательских интерфейсов вместо DOM, CSS или JavaScript. Используя этот подход, Doodle дает вам точный контроль над отрисовкой произвольных элементов интерфейса, векторных фигур, градиентов и пользовательских визуализаций.

Перейти на сайт Doodle для получения документации, учебников и примеров.

Для получения обновлений и обсуждений о фреймворке присоединяйтесь к каналам #doodle и #javascript в Kotlin Slack.

Compose for Web

Compose for Web, часть Compose Multiplatform, предоставляет инструменты пользовательского интерфейса Jetpack Compose от Google для вашего браузера. Это позволяет создавать интерактивные веб-интерфейсы с использованием концепций, введённых в Jetpack Compose. Он предоставляет DOM-API для описания вашего сайта, а также экспериментальный набор многоплатформенных элементов макета. Compose for Web также даёт возможность совместно использовать части кода и логики пользовательского интерфейса между Android, настольными компьютерами и веб-приложениями.

Дополнительную информацию о Compose Multiplatform можно найти на его странице.

Присоединяйтесь к каналу #compose-web в Kotlin Slack для обсуждения Compose for Web или к каналу #compose для общих обсуждений Compose Multiplatform.

Kotlin/JS, сегодня и завтра

В этом видео Kotlin Developer Advocate Себастьян Айгнер объясняет основные преимущества Kotlin/JS, делится советами и примерами использования, а также рассказывает о планах и будущих функциях Kotlin/JS.

Начало работы с Kotlin/JS

Если вы новичок в Kotlin, хорошим первым шагом будет ознакомление с основным синтаксисом языка.

Чтобы начать использовать Kotlin для JavaScript, обратитесь к созданию проекта Kotlin/JS. Вы также можете пройти учебник или ознакомиться со списком образцовых проектов Kotlin/JS для вдохновения. Они содержат полезные фрагменты кода и шаблоны и могут служить хорошим стартом для ваших собственных проектов.

Учебники по Kotlin/JS

  • Создание веб-приложения с React и Kotlin/JS — учебник проведет вас через процесс создания простого веб-приложения с использованием фреймворка React, покажет, как типобезопасный Kotlin DSL для HTML упрощает создание реактивных DOM-элементов, и продемонстрирует, как использовать компоненты React сторонних производителей и получать информацию из API, при этом вся логика приложения написана на чистом Kotlin/JS.

  • Создание полнофункционального веб-приложения с Kotlin Multiplatform знакомит с концепциями создания приложений, ориентированных на Kotlin/JVM и Kotlin/JS, создавая клиент-серверное приложение, которое использует общий код, сериализацию и другие многоплатформенные парадигмы. Также представлено краткое введение в работу с Ktor как с серверным, так и с клиентским фреймворком.

Образцовые проекты для Kotlin/JS

  • Полнофункциональное совместное приложение для задач Spring показывает, как создать список задач для совместной работы, используя kotlin-multiplatform с JS и JVM целями, Spring для бэкэнда, Kotlin/JS с React для фронтенда и RSocket.

  • Список задач Kotlin/JS и React Redux реализует список задач React Redux с использованием JS-библиотек (react, react-dom, react-router, redux, и react-redux ) из npm и Webpack для сборки, минификации и запуска проекта.

  • Демонстрационное полнофункциональное приложение проведет вас через процесс создания приложения с лентой, содержащей пользовательские публикации и комментарии. Все данные заглушены службами fakeJSON и JSON Placeholder.

Присоединяйтесь к сообществу Kotlin/JS

Вы также можете присоединиться к каналу #javascript в официальном Kotlin Slack для общения с сообществом и командой.

Последнее изменение: 10 января 2023
Kotlin для Android Kotlin Native

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

Spec-Zone.ru

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