Kotlin Multiplatform
2.63K subscribers
84 photos
3 videos
407 links
Русскоязычный канал новостей о Kotlin Multiplatform
Download Telegram
Effective Kotlin-Swift interoperability - про особенности на стыке Kotlin и Swift.

В выступлении:
- Синглтоны;
- Разные примитивы (int32, int64, ...);
- Автоматическое добавление _ в пересекающиеся имена функций/аргументов;
- Особенности с enum, sealed class;
- Поддержка Generic'ов;
- Value types;
- Build perfomance;
- Runtime perfomance;
- Доступные библиотеки с поддержкой iOS.

Рекомендую всем, кто использует Kotlin Framework из Swift кода.

#videos
Kotlin multiplatform - past, present, future - какой путь уже прошла мультиплатформа и что планируется в будущем.

Часть выступления это история развития, с какими проблемами сталкивалась команда, а так же пример - как выглядит мультиплатформа сейчас (снаружи и внутри).

Описана идея hierarhical multiplatform projects и зачем это нужно, а так же почему это так долго и тяжело реализуется.

На примере posix показали ад мультиплатформы (разница API в мелких деталях увеличивается с каждой подключенной платформой) и инструмент, который должен решить задачу шаринга платформенных библиотек - Commonizer (про этот инструмент так же рассказывал Дмитрий Доловов на Kotlin/Everywhere Nsk). А так же задели упрощение работы с зависимостями через gradle metadata (об этом более детально говорил Илья Матвеев так же на Kotlin/Everywhere Nsk).

На будущее планируют больше обучающих материалов и больше кейсов что и как шарилось (начали с mobile) и улучшать экосистему инструментов.

Выступление несет мало технических деталей и расчитано на массовую аудиторию для ознакомления, чего-либо нового не несет (упоминание commonizer'а только, но не детально - детали есть в выступлении с Kotlin/Everywhere Nsk).

#videos
Kotlin Multiplatform in action: more than 10 projects for iOS and Android with shared code - наше (IceRock) выступление.

В выступлении:
- Как вводили MPP в работу;
- Как масштабировали на всю компанию (хронологически);
- Что вынесли в опенсорс из внутренних разработок компании (moko библиотеки);
- Показали moko-widgets в работе, на нескольких примерах. Библиотека позволяет построить все приложение из общего кода (сейчас тестируется внедрением в боевой проект).

Так же есть запись live-coding'а с использованием moko-widgets на примере более старой версии библиотеки.

#videos #libs
Your Multiplatform Kaptain has Arrived - Careem делятся деталями о использовании Kotlin Multiplatform.

25k строк расшаренного кода, год в продакшене на Android и 7 месяцев на iOS. 5 iOS и 11 Android разработчиков в команде.

Решились на переписывание бизнес-логики, на Kotlin, на новой архитектуре (MVI).

Сначала попробовали добавление iOS платформы через переписывание kotlin в swift код, но это не удалось поддерживать в дальнейшем, поэтому пошли в KMP.

Что поняли:
1. Нужно избегать Android Driven Development (iOS разработчики должны так же принимать участие в разработке общей логики, чтобы лучше понимать что и как делается в приложении и получать оптимальный для обеих платформ API);
2. Общение команд Android и iOS должно быть плотнее, чем при чистой нативной разработке, мерж реквесты должны проверяться представителями обеих платформ, большие фичи должны обсуждаться сообща;
3. Разработка общей библиотеки требует иного понимания разработки приложения.
4. Шарить между платформами то, что комфортно шарить для обеих платформ.

Так же упомянуты некоторые технические особенности, например изменение имен классов при дублировании, экспорт классов из зависимостей в фреймворк. А так же что потерялось из-за интеропа с ObjC, вместо Swift.

В конце зачитан стих посвященный kotlin mpp, это надо видеть :)
Не только конец надо видеть, а все выступление - оно достаточно информативное.

#videos
I walk the line - What parts of an app should be in Kotlin/Native - and what parts shouldn't? - опыт разработки небольшого проекта с шарингом кода между Android и iOS.

В выступлении:
- Чем отличается Kotlin от обычной кроссплатформы;
- Выбор архитектуры;
- Интеграция с swift ui;
- Генерация цветов из общего описания для android и iOS ресурсов;
- Мнение когда имеет смысл использовать Kotlin/Native.

Код проекта доступен на github. Действительно интересная была часть про генерацию цветов и про стык с swift ui (но там немного).

#videos
Kotlin in Space - использование kotlin в новом проекте JetBrains - Space. Kotlin там везде.

В выступлении:
- Kotlin на мобилках, фронте, бекенде, плагинах к IDEA;
- Шарили data model, view model, валидацию, утилсы и т.д.;
- Не шарили UI и Storage;
- Exposed для работы с DB;
- Ktor для client-server взаимодействия;
- WebSocket RPC на базе Ktor;
- Документирование Rest API;
- Kotlin-React для фронта;
- Тесты;
- Система автоматизации (заявленная поддержка kotlin-script для своих кастомных операций в Space).

Стоит посмотреть, чтобы увидеть возможности kotlin multiplatform в масштабном проекте.

#videos
Завершение цикла постов о KotlinConf:

Going Native - опыт разработки мультиплатформенного игрового приложения.

В выступлении:
- Демо самой игры;
- Что ушло в общий код;
- Архитектура с множеством математических игр на двух платформах;
- Сравнение API между платформами;
- Рисование через общий код;
- Примеры утечек памяти;
- Особенности на стыке Kotlin и Swift (синглтоны, списки).

Sharing is caring - intro to kotlin multiplatform - погружение в мультиплатформу. В целом ничего нового и выделяющегося в выступлении не было.

"Share only what you want when you want" - хорошее выражение силы kotlin multiplatform.

И из последних новостей:
Вышла новая версия Kotlinx.coroutines 1.3.3 с обновлением kotlin до 1.3.61, рядом багфиксов, поддержкой watchOS, tvOS. В новом релизе пока нет поддержки многопоточности для Native (все еще в разработке).

#videos #libs
Насколько Kotlin Multiplatform готов для эффективной разработки мобильных приложений - выступление с митапа Leroy Merlin. Спикер из Kaspersky Lab рассказал:
* Как шарят код между платформами в Kaspersky;
* Основы Kotlin Multiplatform;
* Немного болей Kotlin/Native;
* Свою историю реализации фуллстек kotlin multiplatform приложения;
* Стоимость перехода на Kotlin Multiplatform;
* Сравнение с Flutter.

#videos
Powering Worldwide Learning with Kotlin Multiplatform - выступление о внедрении Kotlin Multiplatform в Quizlet (статья с их историей уже была в канале). Перевели сложную бизнес-логику в общий код сначала на JS, а потом на Kotlin Multiplatform (с шарингом на android, ios, web).

Practical Kotlin Native Concurrency Part 3 - новая часть разбора многопоточности в Kotlin/Native от Touchlab.

Разобрано актуальное состояние - превью многопоточных coroutines, библиотеки coroutineWorker и reaktive. На примерах показано как библиотеки решают вопрос многопоточности, когда происходит заморозка объектов и какие последствия заморозки можно встретить.
А так же разобраны Atomc'и.

#videos #posts
Using Gradle Metadata for a Kotlin multiplatform project - статья описывающая как Gradle Metadata позволяет упростить работу с зависимостями multiplatform проектов.

Детальнее про управление зависимостями можно прочитать в документации, а так же послушать в выступлении Ильи Матвеева - Мультиплатформенные проекты и Gradle.

Если интересно как устроены метаданные в деталях - можно ознакомиться на сайте gradle.

#posts #videos
Building a native iOS app with Kotlin Multiplatform - видеозапись (на английском) выступления Lammert Westerhoff.

В видео есть:
• Вводная "что такое kotlin multiplatform";
• Во что компилируется для iOS и некоторые особенности;
• Подход позволяющий обращаться к строкам и изображениям из общего кода;
• Сравнение с нативной и ReactNative разработкой.

#videos
Intro to Kotlin Multiplatform and how to share code between Android and iOS – выступление-вводная про kotlin multiplatform. Имеет хороший итог в виде плюсов и минусов, а остальное уже множество раз говорилось.

FlowRedux – библиотека для построения стейтмашины с использованием Flow. Мультиплатформенная, под все возможные таргеты кроме JS. Может быть полезна для построения unidirectional data flow.

#videos #libs
Kotlin multiplatform: Android + iOS + Backend в одном монорепозитории - выступление про mpp включающее:
- Проблематику дублирования бизнеслогики и обзор доступных решений;
- Разбор как mpp ложится на идею Clean Architecture;
- Особенности многопоточности Kotlin/Native;
- Сравнение MVP, MVVM, MVI для Kotlin Multiplatform;
- Подробный разбор реализации MVI в mpp;
- Про Rx в mpp (Reaktive);
- Подробный разбор кода приложения (Android, iOS, Backend, тесты).

Код доступен тут: MultiplatformTodoApp

#videos #samples
Top 8 Mobile Apps in 2020 Built with Kotlin Multiplatform - список популярных мобильных приложений, которые используют Kotlin Multiplatform. Компании-разработчики этих приложений были указаны на KotlinConf 2019, а в статье чуть детальнее разобрано какие приложения используют KMP.

Kotlin Vs Flutter: Who Will Rule the Cross-platform App Market? - сравнение Kotlin Multiplatform и Flutter. Однозначного ответа как всегда нет, но критерии по которым проводится сравнение могут быть интересными.

Kotlin Multiplatform: code sharing without compromise - видеозапись доклада о Kotlin Multiplatform - как общий код в Sudoku добавляли.

#posts #videos
1. Multiplatform Settings version 0.6 is out! - главная kmm библиотека по работе с хранением настроек получила обновление. Одно из главных изменений - добавлен дополнительный артефакт no-arg дающий возможность создать экземпляр Settings из общего кода.
#posts

2. Firebase Kotlin SDK - еще одна multiplatform версия Firebase, доступны модули - auth, database, firestore, functions для ios, androidm, jvm, js.
#libs

3. VK SDK Kotlin - неофициальная multiplatform версия vk-sdk, доступна на всех платформах.
#libs

4. Серия постов #TouchlabShare - Building a Business Case for Kotlin Multiplatform & Mobile Code Sharing , How to Evaluate Kotlin Multiplatform, React Native and Flutter , Identifying Parts of your Mobile App for High-Impact Code Sharing , Building a Proof of Concept with Kotlin Multiplatform с записями вебинаров, которые проводил Touchlab ранее.
#videos #posts

Указанные выше библиотеки (и многие другие) можно удобно искать на libs.kmp.icerock.dev, используйте фильтр по kotlin версии для поиска подходящих вам библиотек.
1. Publishing Kotlin Multiplatform Artifacts to Artifactory (Maven) - статья о настройке публикации мультиплатформенной библиотеки в Artifatory. Помимо публикации там же и про настройку dokka под mpp.
#posts 

2. Kotlin — Multiplatform MVI - 3 статья из серии статей про Kotlin Multiplatform. Первые две статьи описывали настройку под android и ios, а в третьей кратко описаны впечатления от MVIKotlin. Реализованный проект доступен на GitHub.
#posts

3. droidcon multiplatform - series Part 1 of 3 - droidcon в online формате, первая часть будет проведена завтра.
#videos

4. Александр Погребняк (IceRock) — Особенности Kotlin Multiplatform для разработки нативных приложений - недавно опубликованная запись ноябрьского выступления нашего CEO.
#videos

А также один из участников нашего чата делится своей Kotlin Multiplatform библиотекой:
TelegramBotAPI - это комплекс мультиплатформенных библиотек, призванных упростить работу с соответствующим API с помощью корутин, ktor, котлиновской сериализации и щепотки мультиплатформенной магии
1. Как мы сделали не blockchain - история о применении Kotlin Multiplatform (точнее даже Kotlin/Native для множества таргетов) от МТС. В статье описан непривычный подход к использованию Kotlin Multiplatform на мобилках (здесь использованы таргеты iosNative + androidNative, вместо iosNative + androidJvm). Почему так и с чем столкнулись по пути - описано в статье.
#posts

2. kotlin-mpp-flow-store - проект-пример показывающий как реализовать хранение состояния приложения с Flow в multiplatform модуле и использовать это с нативной стороны iOS (SwiftUI) и Android.
#samples

3. Magic and tricks with Kotlin Multiplatform - запись выступления про kotlin multiplatform, по сути введение в тему и небольшой обзор некоторых доступных библиотек - coroutines, ktor, sqldelight, firebase, apollo.
#videos

4. First Step with Kotlin Multiplatform - еще одна запись выступления, тоже введение в тему, но дополнительно с демонстрацией создания проекта.
#videos

5. KorGE Game Jam - конкурс по использованию игрового движка KorGE, предлагающего разрабатывать игры с Kotlin Multiplatform под множество целевых платформ.
#news