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
Существует множество способов использования Kotlin/JS. Вот неполный список сценариев, в которых вы можете использовать Kotlin/JS:
-
Разработка веб-приложений на стороне клиента с использованием Kotlin/JS
Kotlin/JS позволяет вам эффективно использовать мощные браузерные и веб-API безопасным способом. Создавайте, изменяйте и взаимодействуйте с элементами модели документа (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 для совместного использования кода с другими платформами Kotlin
Ко всем возможностям Kotlin/JS можно получить доступ при использовании плагина Gradle Kotlin
multiplatform.Если ваш бэкенд написан на 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-экосистемой структурированным образом.
Фреймворки Kotlin/JS
Современное веб-разработка существенно выигрывает от фреймворков, которые упрощают создание веб-приложений. Ниже приведены несколько примеров популярных веб-фреймворков для Kotlin/JS, созданных разными авторами:
KVision
KVision — объектно-ориентированный веб-фреймворк, который позволяет писать приложения на Kotlin/JS с готовыми компонентами, которые можно использовать в качестве строительных блоков пользовательского интерфейса вашего приложения. Вы можете использовать как реактивные, так и императивные модели программирования для создания своего фронтенда, использовать коннекторы для Ktor, Spring Boot и других фреймворков для интеграции с вашими серверными приложениями и совместно использовать код с помощью Kotlin Multiplatform.
Посетите https://kvision.io для документации, обучающих материалов и примеров.
Чтобы узнать о новых обновлениях и обсудить фреймворк, присоединитесь к каналам #kvision и #javascript в Kotlin Slack.
fritz2
fritz2 — автономный фреймворк для создания реактивных веб-интерфейсов. Он предоставляет собственную типобезопасную DSL для создания и рендеринга HTML-элементов и использует сопрограммы и потоки Kotlin для выражения компонентов и их привязок к данным. Он предоставляет управление состоянием, валидацию, маршрутизацию и многое другое «из коробки» и интегрируется с проектами Kotlin Multiplatform.
Посетите https://www.fritz2.dev для документации, обучающих материалов и примеров.
Чтобы узнать о новых обновлениях и обсудить фреймворк, присоединитесь к каналам #fritz2 и #javascript в Kotlin Slack.
Doodle
Doodle — фреймворк на основе векторов для Kotlin/JS. Приложения Doodle используют возможности графики браузера для отрисовки пользовательских интерфейсов вместо использования DOM, CSS или Javascript. Используя этот подход, Doodle предоставляет вам точный контроль над рендерингом произвольных элементов интерфейса, векторных фигур, градиентов и пользовательских визуализаций.
Посетите https://nacular.github.io/doodle/ для документации, обучающих материалов и примеров.
Чтобы узнать о новых обновлениях и обсудить фреймворк, присоединитесь к каналам #doodle и #javascript в Kotlin Slack.
Compose для веб
Compose для веб, часть Compose Multiplatform, предоставляет инструментарий UI Jetpack Compose от Google для вашего браузера. Он позволяет создавать реактивные веб-интерфейсы с использованием концепций, представленных в Jetpack Compose. Он предоставляет API DOM для описания вашего сайта, а также экспериментальный набор многоплатформенных элементов макета. Compose для веб также предоставляет возможность совместно использовать части вашего кода и логики UI между Android, настольными компьютерами и веб-приложениями.
Дополнительную информацию о Compose Multiplatform можно найти на его странице посадки.
Присоединяйтесь к каналу #compose-web в Kotlin Slack для обсуждения Compose для веб, или к каналу #compose для общих обсуждений Compose Multiplatform.
Kotlin/JS: сегодня и завтра
В этом видео Kotlin Developer Advocate Себастьян Айгнер рассказывает о ключевых преимуществах Kotlin/JS, делится некоторыми советами и примерами использования, а также обсуждает планы и предстоящие функции для Kotlin/JS.
Начало работы с Kotlin/JS
Если вы новичок в Kotlin, хорошим первым шагом будет ознакомление с основным синтаксисом языка.
Чтобы начать использовать Kotlin для JavaScript, обратитесь к разделу Настройка проекта Kotlin/JS. Вы также можете выбрать практическое занятие Hands-on или ознакомиться со списком примеров проектов 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 IR
Новый компилятор Kotlin/JS IR (в настоящее время со стабильностью Beta) имеет ряд улучшений по сравнению с текущим компилятором по умолчанию. Например, он уменьшает размер сгенерированных исполняемых файлов за счет удаления неиспользуемого кода и обеспечивает более плавную взаимодействие с экосистемой JavaScript и ее инструментарием. Генерация файлов описания TypeScript (d.ts) из Kotlin-кода новым компилятором упрощает создание «гибридных» приложений, которые сочетают TypeScript и Kotlin-код, и использование функциональности совместного использования кода с помощью Kotlin Multiplatform.
Чтобы узнать больше о доступных функциях нового компилятора Kotlin/JS IR и о том, как попробовать его в вашем проекте, посетите страницу документации компилятора Kotlin/JS IR и руководство по миграции.
Присоединяйтесь к сообществу Kotlin/JS
Вы также можете присоединиться к каналу #javascript в официальном Kotlin Slack, чтобы пообщаться с сообществом и командой.
© 2010–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/js-overview.html