Kotlin
A concise multiplatform language developed by JetBrains
Публикации и ответы на комментарии в блогах JetBrains не выходят на русском языке с 2022 года.
Приносим извинения за неудобства.
Что изменилось в KMM после выхода альфа-версии
Альфа-версия Kotlin Multiplatform Mobile (KMM), SDK для кросс-платформенной мобильной разработки, вышла в августе 2020 года. С тех пор прошло 9 месяцев, в течение которых экосистема KMM стремительно развивалась:
- В каждой версии Kotlin появляются новые функции и улучшения, которые позволяют оптимизировать процесс создания мультиплатформенных приложений.
- Инструменты разработки KMM, такие как плагин KMM для Android Studio, постоянно обновляются, благодаря чему создавать кросс-платформенные мобильные приложения стало проще и приятнее.
- Участники нашего сообщества активно развивают экосистему, создавая полезные библиотеки и наглядные образцы проектов, а также делятся своим опытом практического использования KMM в разработке.
Ниже — обзор основных изменений экосистемы с момента выхода альфа-версии, в котором перечислены все важнейшие обновления. Если захотите узнать больше и попрактиковаться, зайдите на портал с документацией KMM, чтобы узнать, как создать свое первое приложение.
Ниже мы рассмотрим:
- Особенности и улучшения плагина KMM, включая поддержку интеграции с CocoaPods.
- Обновления Kotlin Multiplatform, включая повышение производительности Kotlin/Native.
- Обзор основных наработок сообщества, включая новые демонстрационные проекты и новые мультиплатформенные библиотеки.
- Обновления портала с документацией, включая новую страницу с вопросами и ответами.
Что нового в плагине KMM?
Плагин KMM для Android Studio помогает разрабатывать кросс-платформенные приложения. Он интегрируется с экосистемой разработки под iOS и позволяет создавать новые кросс-платформенные мобильные приложения всего за пару кликов.
Стабильная и настраиваемая интеграция с iOS
Плагин KMM позволяет запускать, тестировать и отлаживать код для iOS на целевых платформах под iOS прямо из Android Studio. С момента первого релиза этого плагина его интеграция с iOS стала более стабильной и гибкой. Теперь она поддерживает новейшие технологии iOS. Ознакомьтесь с полным списком реализованных улучшений интеграции с iOS.
Удобные мастера проектов
Плагин KMM — это еще и важный инструмент для ознакомления с KMM. В нем есть удобные мастера, которые помогут быстро создать новый мультиплатформенный проект или добавить мультиплатформенный модуль в уже существующий проект.
Последняя версия плагина дает возможность использовать интеграцию с CocoaPods для новых проектов и модулей KMM. Нужно лишь добавить описание модуля KMM — и плагин сгенерирует весь необходимый код конфигурации.
Полный перечень новых функций и улучшений в плагине KMM, а также инструкции по установке и информацию о совместимости можно найти на странице релизов плагина KMM.
Что нового в Kotlin для KMM?
KMM основан на мультиплатформенных возможностях Kotlin и использует Kotlin/JVM и Kotlin/Native для создания артефактов платформы: .jar для Android и .framework для iOS. С каждым обновлением Kotlin процесс разработки кросс-платформенных мобильных приложений с KMM становится еще удобнее.
Улучшенная интеграция с iOS и повышение производительности Kotlin/Native
Команда Kotlin/Native всецело сосредоточена на реализации функциональности, которую так долго ждали в сообществе KMM. Речь о новом подходе к управлению памятью для Kotlin Native. Мы планируем представить первую версию нового дизайна системы управления памятью к концу 2021 года. Следите за подробностями и состоянием этого проекта в блоге Kotlin/Native Memory Management Update.
Мы не только значительно продвинулись в реализации нового подхода к управлению памятью, но и уделили внимание другим аспектам разработки под iOS с Kotlin/Native:
- В Kotlin/Native появился прототип нового механизма escape-анализа, который дает прирост 10% к производительности iOS приложений.
- Теперь Kotlin/Native может обрабатывать исключения, возникающие в коде Objective-C, что позволяет избежать прерывания программы. Благодаря этому можно выяснить причину сбоя и корректно ее обработать. Узнайте, как оборачивать исключения Objective-C.
- Мы обновили компилятор Kotlin/Native и повысили его производительность. Например, время пересборки тестового фреймворка iOS в KMM Networking and Data Storage сократилось с 9,5 до 4,5 секунд. Узнайте, как ускорить процесс компиляции Kotlin/Native на вашем проекте.
- Улучшена интеграция с CocoaPods. Теперь, например, зависимости пересобираются только при необходимости, и появилась возможность использовать зависимости от большего числа различных типов библиотек.
Стабильный инструментарий для мультиплатформенных проектов
Чтобы работа над тем или иным проектом приносила удовольствие, инструменты должны быть стабильными. После перехода KMM на альфа-тестирование и введения целого ряда мультиплатформенных функций команда Kotlin Multiplatform занялась улучшением фронтенда и повышением стабильности импорта IDE для мультиплатформенных проектов. Было исправлено множество проблем, которые приводили к ошибкам в IDE при работе с мультиплатформенными проектами. Мы продолжаем работать над оптимизацией процесса мультиплатформенной разработки — вот почему нам так важно получить ваши отзывы. Если у вас найдется свободная минутка, сообщите о найденных проблемах в нашем баг-трекере YouTrack.
Разумеется, это всего лишь обзор. Подробнее обо всех нововведениях в Kotlin для разработки мультиплатформенных мобильных приложений читайте на портале с документацией в статье What’s new in Kotlin for KMM. Эта страница обновляется при выходе каждой новой версии Kotlin, так что вы точно не пропустите ничего важного.
Что нового в сообществе?
Сообщество — это сердце любой экосистемы разработки технологий. Вы — наш важнейший источник вдохновения, и от вас мы узнаем много полезного! С момента первого релиза разработчики со всего мира поддерживают развитие экосистемы KMM, делясь опытом использования KMM в своих рабочих проектах и создавая полезные библиотеки и демонстрационные проекты.
Еще больше библиотек KMM
Количество библиотек KMM постоянно растет, а это значит, что вы всегда сможете выбрать то, что лучше всего подходит для решения ваших задач:
- Realm — это простая и удобная локальная база данных, и теперь у нее есть Kotlin Multiplatform SDK. Читайте об основных принципах проектирования, которые лежат в основе развития нового SDK.
- Decompose помогает использовать больше общего кода с помощью KMM. Эта библиотека предоставляет компоненты бизнес логики, привязанные к жизненному циклу, с возможностью роутинга между ними и подключением UI на различных фреймворках. В силу своей гибкости технология KMM позволяет выбирать, в каком объеме использовать общую кодовую базу, а значит, вам не обязательно ограничивать ее применение лишь слоями данных и бизнес-логики. Библиотеки типа Decompose помогут достичь этой цели.
У KMM-разработчиков намного больше насущных потребностей, что открывает перед создателями библиотек новые горизонты. Узнайте, как собрать и опубликовать мультиплатформенную библиотеку, и присоединяйтесь к этой стремительно растущей экосистеме!
Новые демо-проекты
Новую технологию зачастую удобнее изучать на примерах. Благодаря замечательным мастерам нашего сообщества можно выбрать демонстрационный проект, соответствующий вашим сценариям кросс-платформенного использования кода, или попробовать их все:
- D-KMP демонстрирует, как в полной мере совместно использовать ViewModel (в том числе слой навигации) с помощью KMM, реализует паттерн MVI и CQRS, а также работает с новейшими наборами инструментов декларативного интерфейса: Compose для Android и SwiftUI для iOS.
- Проект multiplatform-redux-sample показывает, как выполнить сборку кросс-платформенного приложения с KMM и ReduxKotlin.
- Популярный проект people-in-space прекрасно демонстрирует всю мощь технологии Kotlin Multiplatform. Помимо совместного использования всей бизнес-логики и современных наборов инструментов для мобильного интерфейса, он работает с Compose Desktop, так что вы можете запускать этот проект на своем ПК.
По результатам последнего опроса пользователей Kotlin Multiplatform участники сообщества с нетерпением ждут появления более сложных демонстрационных проектов, поэтому мы представили официальный демо-проект от команды KMM. Это простой RSS-агрегатор, который можно скачать с App Store и Google Play. Его назначение — продемонстрировать, как можно использовать KMM в реальных production-проектах. Этот образец сопровождается подробным Readme, в котором объясняется архитектура, чтобы его можно было использовать для своих проектов.
Кто еще пользуется преимуществами KMM?
Использование общего кода в мобильных платформах с помощью KMM становится обычной практикой как в компаниях, так и среди отдельных разработчиков во всем мире:
- Netflix перешел на Kotlin Multiplatform Mobile, чтобы оптимизировать свое студийное приложение и повысить его скорость работы.
- Philips использует KMM, чтобы ускорить внедрение новых функций. Кроме того, в команде этой компании улучшилось взаимодействие между разработчиками Android- и iOS-приложений.
- KMM помогает Down Dog запускать контент одновременно на всех платформах, способствует стремительному развитию этого стартапа и уменьшает количество ошибок. Более того, команда Down Dog перенесла большую часть кода под iOS с Swift на Kotlin, и теперь на Kotlin реализован почти весь проект, за исключением всего пяти Swift-файлов.
На портале KMM в разделе Case Studies вы найдете и другие вдохновляющие истории из практики от компаний любого калибра и отдельных разработчиков.
Что нового на портале KMM?
Мы продолжаем развивать портал с документацией, который ежедневно помогает вам в работе с KMM:
- Новая страница вопросов и ответов — это неплохая отправная точка в вашем путешествии по KMM. Там есть ответы на большинство часто задаваемых вопросов, в том числе и о том, как работать с KMM на Windows. А если не найдете ответа на свой вопрос, просто дайте нам знать!
- С помощью новой пошаговой инструкции вы сможете сделать свое Android-приложение кросс-платформенным, и оно будет работать как на Android, так и на iOS. Не надо ждать начала нового проекта — наслаждайтесь преимуществами кросс-платформенного подхода!
Чтение документации — это не единственный способ освоения KMM. В новой серии видеороликов «Мультивселенная Kotlin Multiplatform» на нашем YouTube-канале есть материалы для начинающих о том, как создать новый проект и использовать Ktor для работы с сетью, так что вы сможете с головой окунуться в KMM, не вставая с дивана.
Что мы планируем дальше?
Позади девять месяцев напряженной работы! Однако мы не собираемся сбавлять обороты, поскольку KMM остается одним из ключевых приоритетов для команды Kotlin.
Впереди важнейший и долгожданный этап: переход KMM в статус Бета Мы разрабатываем подробный план дальнейших действий и скоро опубликуем отдельную статью о том, какие задачи, связанные с KMM, будут выполнены до выхода бета-версии. Большинство из них, в том числе поддержка целевой платформы для Apple Silicon в инструментарии Kotlin Multiplatform и прототип нового сборщика мусора, уже в разработке. Чтобы узнать подробности и наши приоритеты, смотрите план развития Kotlin.
Мы очень рады, что наше сообщество растет и что все больше компаний по всему миру переходят на KMM. Отправляйтесь с нами в мобильное кросс-платформенное путешествие!
Что еще посмотреть и почитать
Смотрите канал «Котлин» на YouTube:
- Kotlin Multiplatform Multiverse
- Talking Kotlin: Kotlin Multiplatform with John O’Reilly
- Talking Kotlin: MVIKotlin and Decompose with Arkadii Ivanov
Блог Kotlin:
Узнайте больше из документации о Kotlin и KMM:
- KMM в вопросах и ответах
- Знакомство с KMM
- Мультиплатформенное программирование с Kotlin
- Как создать мультиплатформенную библиотеку
Ваша команда Kotlin
The Drive to Develop