JetBrains зробив Kotlin Multiplatform доступною у своєму першому стабільному випуску, надавши спільний доступ до коду для iOS, Android, настільного комп’ютера, вебсервера та сервера, хоча фрагмент для спільного використання коду інтерфейсу користувача, Compose Multiplatform, стабільний лише для Android і настільного комп’ютера. Про це повідомляє DevClass.
Kotlin – це мова JVM (віртуальна машина Java), розроблена JetBrains і прийнята Google як основна мова для розробки Android. Оскільки Java вже розроблена для кросплатформного коду, що додає Kotlin Multiplatform? Відповідь полягає у тому, що Kotlin – це не лише мова JVM.
Kotlin/Native компілюється у самодостатні виконувані файли для macOS, iOS, Linux, Windows за допомогою MinGW (ланцюжок інструментів GCC для Windows) і Android NDK. Kotlin/JS транслює Kotlin у JavaScript. Kotlin Wasm, все ще експериментальний проєкт, компілюється до WebAssembly.
Kotlin Multiplatform – це технологія для обміну кодом без графічного інтерфейсу на всіх цих платформах. Вона вирішує дві поширені проблеми спільного використання коду, а саме потребу в частковому спільному використанні коду для підмножини всіх цільових платформ і потребу в доступі до специфічних платформ API.
Проблема рідного API вирішується за допомогою механізму очікуваних і фактичних декларацій. Ключове слово expect позначає декларацію як таку, що буде відповідати коду, позначеному фактичним ключовим словом, яке може залежати від платформи. JetBrains рекомендує використовувати очікуване/фактичне лише для API платформи, в іншому ж випадку використовувати звичайні інтерфейси.
Kotlin Multiplatform призначена для коду без графічного інтерфейсу, але існує пов’язаний проєкт Compose Multiplatform для створених спільних інтерфейсів користувача.
Compose Multiplatform базується на Google Jetpack Compose для створення інтерфейсу користувача для Android. Compose Multiplatform також стабільна для настільних платформ, macOS, Linux і Windows, але Alpha для iOS та експериментальна для Web. За даними JetBrains, мультиплатформу Kotlin вже використовували такі компанії, як Netflix і VMWare.
Якщо Compose Multiplatform ще не готова, як розробники підтримують iOS? Це можливо за допомогою SwiftUI – офіційної мови дизайну інтерфейсу Apple, яка базується на декларативному коді. Є зразки коду, які використовують саме цей підхід.
JetBrains також повідомила, що планує запустити бета-версію Compose Multiplatform для iOS у 2024 році й що Kotlin/Wasm також активно розробляється.
Торік компанія Google підтримала Kotlin Multiplatform, представивши «експериментальний попередній перегляд» деяких інших бібліотек Jetpack не для використання у виробництві, а для «відгуків про використання цих бібліотек Jetpack у багатоплатформних проєктах, орієнтованих на застосунки Android та iOS».
Також Google пропонує Flutter для кросплатформної розробки за допомогою мови Dart та інтерфейсу користувача Flutter.
Ще однією причиною використання Kotlin замість Java є її мовні особливості, зокрема лямбда-вирази, функції розширення, визначення типу, захист від нульових значень тощо. Kotlin не має перевірених винятків на тій підставі, що вони не підвищують продуктивність або якість коду.
Kotlin Multiplatform і Compose Multiplatform є безкоштовними для використання. Код Kotlin знаходиться на Github, її ліцензія – Apache 2.0.
Читайте також на ProIT: Застосункам в Android 14 стане легше підтримувати ключі доступу.
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодну публікацію!