Spec-Zone.ru › Kotlin 1.4

Многоплатформенное программирование

Многоплатформенные проекты находятся в стадии Альфа. Возможности языка и инструменты могут измениться в будущих версиях Kotlin.

Поддержка многоплатформенного программирования является одним из ключевых преимуществ Kotlin. Она сокращает время, затрачиваемое на написание и поддержку одного и того же кода для различных платформ, сохраняя гибкость и преимущества нативного программирования.

Вот как работает Kotlin Multiplatform.

Kotlin Multiplatform

  • Общий Kotlin включает язык, основные библиотеки и базовые инструменты. Код, написанный на общем Kotlin, работает на всех платформах.
  • С помощью библиотек Kotlin Multiplatform вы можете повторно использовать многоплатформенную логику в общем и платформо-специфичном коде. Общий код может опираться на набор библиотек, охватывающих повседневные задачи, такие как HTTP, сериализацию и управление сопрограммами.
  • Для взаимодействия с платформами используйте платформо-специфичные версии Kotlin. Платформо-специфичные версии Kotlin (Kotlin/JVM, Kotlin/JS, Kotlin/Native) включают расширения языка Kotlin и платформо-специфичные библиотеки и инструменты.
  • Через эти платформы вы можете получить доступ к платформо-нативному коду (JVM, JS и Native) и использовать все возможности родной платформы.

С помощью Kotlin Multiplatform тратьте меньше времени на написание и поддержку одного и того же кода для различных платформ — просто поделитесь им, используя механизмы, предоставляемые Kotlin:

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

    Code shared for all platforms

  • Поделитесь кодом между некоторыми платформами вашего проекта, но не всеми. Делайте это, когда вы можете повторно использовать большую часть кода на похожих платформах.

    Hierarchical structure

Если вам нужно получить доступ к платформа-специфичным API из общего кода, используйте механизм Kotlin ожидаемых и фактических объявлений.

С помощью этого механизма, общий набор исходных файлов определяет *ожидаемое объявление*, а платформо-специфичные наборы исходных файлов должны предоставить *фактическое объявление*, которое соответствует ожидаемому объявлению. Это работает для большинства объявлений Kotlin, таких как функции, классы, интерфейсы, перечисления, свойства и аннотации.

Expect and actual declarations

//Common
expect fun randomUUID(): String
//Android
import java.util.*
actual fun randomUUID() = UUID.randomUUID().toString()
//iOS
import platform.Foundation.NSUUID
actual fun randomUUID(): String = NSUUID().UUIDString()

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

Android — iOS

Обмен кодом между мобильными платформами является одним из основных примеров использования Kotlin Multiplatform. С помощью Kotlin Multiplatform Mobile (KMM) вы можете создавать многоплатформенные мобильные приложения, обмениваясь кодом, таким как бизнес-логика, подключение и многое другое, между Android и iOS.

См. функции, примеры и кейсы использования KMM

Клиент — Сервер

Еще один сценарий, когда обмен кодом может принести выгоду, это связанное приложение, где логика может быть повторно использована как на стороне сервера, так и на стороне клиента, работающего в браузере. Это также поддерживается Kotlin Multiplatform.

Фреймворк Ktor подходит для создания асинхронных серверов и клиентов в связанных системах.

Что дальше?

Новые в Kotlin? Посетите начало работы с Kotlin.

Документация

  • Начало работы с Kotlin Multiplatform Mobile (KMM)
  • Создание многоплатформенного проекта
  • Обмен кодом на нескольких платформах
  • Подключение к платформа-специфичным API

Учебники

  • Создание приложения KMM показывает, как создать мобильное приложение, работающее на Android и iOS с помощью плагина KMM для Android Studio. Создайте, запустите и протестируйте свое первое многоплатформенное мобильное приложение.

  • Создание многоплатформенной библиотеки Kotlin учит, как создать многоплатформенную библиотеку, доступную для JVM, JS и Native, которая может быть использована из любого другого общего кода (например, совместно с Android и iOS). Также показано, как писать тесты, которые будут выполняться на всех платформах, и использовать эффективную реализацию, предоставляемую конкретной платформой.

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

Примеры проектов

  • Примеры Kotlin Multiplatform Mobile
  • Приложение KotlinConf
  • Приложение KotlinConf Spinner

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

Spec-Zone.ru

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