Kotlin Multiplatform
2.62K subscribers
84 photos
3 videos
407 links
Русскоязычный канал новостей о Kotlin Multiplatform
Download Telegram
Forwarded from Liliia Abdulina
Привет всем, команда мобильной мультиплатформы на связи. :)

У нас есть гипотеза, что у экосистемы мультиплатформенных библиотек есть большой потенциал развития. Но чтобы правильно раскрыть этот потенциал, нам нужно побольше узнать про опыт пользователей. Пожалуйста, расскажите нам о своей жизни в мире мультиплатформенных библиотек, заполнив этот опрос: https://surveys.jetbrains.com/s3/kotlin-mobile-multiplatform-libraries-survey-tg. Опрос небольшой, но требует некоторой рефлексии. Зато в конце вы получите нашу версию списка мультиплатформенных библиотек для iOS + Android, возможно открыв для себя что-то новое, и ещё у вас будет шанс поучаствовать в розыгрыше годового all products pack. :)
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
Всем привет! Котлин тим снова на связи, нам опять нужна помощь комьюнити. И это опять опрос :)
Наши лучшие инженеры (в свободное от нужд мобильных разработчиков время, конечно) уже работают над решением, которое позволит залезать в мозг каждому пользователю мультиплатформы напрямую и доставать оттуда всю необходимую информацию - и тогда опросы будут не нужны. Но к 1.4 мы, увы, не успеем его выкатить, а кое-какие решения надо принимать уже сейчас.
Сегодня решаем, какая структура мультиплатформенного проекта самая-самая. А то в одном сэмпле shared-код намертво срастается с Android-приложением, в другом - полная гранулярность, начинающие пользователи недоумевают, как же всё-таки правильно - и грустят.
По ссылке всего один обязательный вопрос и 100% нет никаких паззлеров про Kotlin/Native memory модель, я проверила: https://forms.gle/8ExHPzZT44ercsqE6
Getting Started with Kotlin on iOS, Part 1 - начало цикла статей о начале разработки на Kotlin Multiplatform для iOS разработчиков от iOS разработчика Autodesk.

В первой статье проведено сравнение языков Swift и Kotlin.

Так-же автор опубликовал небольшой проект-шаблон KotlinMobileBootstrap - общая библиотека, без приложений, с базовой конфигурацией.

#posts #templates
Kompose - шаблон мобильного проекта с SwiftUI, Jetpack Compose, Kotlin Multiplatform.

Особенности:
• SwiftUI и Jetpack Compose для интерфейса;
• Kotlin Multiplatform для общей логики;
• Универсальная локализация через Twine;
• Генератор проекта из шаблона (с заполнением имени приложения и пакета);
• Демо приложение как пример использования шаблона.

#templates #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
kuiks - библиотека для выполнения UI тестирования, предоставляет common API с actual реализацией через Espresso (Android) и XCTest (iOS).

Данная библиотека позволит убрать Appium и делать общие для платформ UI тесты полностью нативными инструментами, без WebDriver'а и задержек.

На данный момент библиотека в активной разработке, для использования нужно опубликовать артефакт себе в локальный мавен, но пробовать пользоваться и выдавать фидбек, помогать автору уже можно.

Предлагаю поддержать автора, хотя бы поставить звезду репозиторию, чтобы идея развилась до качественной реализации.

#libs
Forwarded from Android Broadcast
#Podcast #Kotlin #Multiplatform

Android Broadcast Podcast #8: "Kotlin Mobile Multiplatform"

Mobile имеет огромное значение для Kotlin, причем настолько, что появилась отдельная команда - Kotlin Mobile MultiPlatform. Они сделали свой сайт и двигаются только вперед, чтобы показать Flutter и React Native, как шарить код правильно! Упустить шанс сейчас нельзя, и я позвал в гости представителей команды: Анастасию Капанину и Кирилла Шмакова.

Мы обсудили множество тем:
- Kotlin MPP vs Flutter
- Большие компании, которые уже используют Kotlin MPP
- Что можно сделать с Kotlin MPP, но не получится с Flutter или ReactNative
- Как продавать Kotlin MPP iOS команде
- Когда Jetpack Compose станет Multiplatform?
- Как Kotlin/Native сейчас тормозит MPP
- Плагины для Kotlin компилятора
- Kotlin Mobile MPP плагин для Android Studio
- Что Kotlin 1.4 принесёт для Multiplatform разработки?
- Какие библиотеки с поддержкой Kotlin MPP нам ждать в этом году
Touchlab: How we partnered with GoPro to help them pilot Kotlin Multiplatform - небольшая статья о том как Touchlab кооперируется с другими компаниями, помогая им освоиться с Kotlin Multiplatform. Рассказано почему GoPro хотели начать работу с MPP, как дважды попробовали сами и какой результат принесла кооперация.

Мы в IceRock так же предлагаем компаниям аналогичную услугу по помощи в внедрении Kotlin Multiplatform, так как старт действительно не так прост на данный момент.

#posts
Kotlin Multiplatform iOS: Certificate Pinning - статья о реализации проверки сертификата при выполнении сетевых запросов. В статье используется ktor-client, пример реализации дан для iOS. В случае с Android можно просто включить OkHttpEngine и сделать certificate pinning привычными средствами.

Kotlin 1.3.70 Released - возможно кто-то пропустил, уже вышла версия 1.3.70. Для mobile multiplatform самые важные изменения на мой взгляд это улучшение скорости компиляции Kotlin/Native:
- Now Kotlin/Native compiler runs directly from the Gradle daemon;
- In the debug mode, the compiler caches project dependencies for iOS simulator (iosX64) and macOS (macosX64).
В slack сообщают о заметном приросте скорости, хоть и замерялось на linux таргете (для iOS должно быть еще лучше).

Библиотеки постепенно обновляются до 1.3.70 - уже есть релиз Kotlinx.Serialization, klock, multiplatform-settings. Наши MOKO библиотеки ждут релиза coroutines и ktor-client.

#posts
MVIKotlin - порт MVIDroid на kotlin multiplatform. Это фреймворк для построения MVI архитектуры, с ключевой особенностью в виде "Time Travel" фичи (все действия и изменения состояния сохраняются и можно переключаться между ними внутри приложения).

Фичи:
- Multiplatform: Android, JVM, JavaScript, iosX64, iosArm64, linuxX64
- Библиотека-расширение для работы с Reaktive
- Библиотека-расширение для работы с Coroutines
- Поддержка многопоточности на Kotlin/Native
- Логирование (встроенное и возможность дать кастомный логгер)
- Time Travel:
- Поддерживается на всех платформах
- Готовый подключаемый UI для Android и iOS
- Экспорт и импорт событий для Android

Легче всего понять Time Travel можно по видео - Android , iOS.

#libs
How does the Kotlin Multiplatform work? - статья, кратко описывающая как Kotlin поддерживает iOS платформу.

Для тех кому интересно более детально разобраться в магии Kotlin/Native советую посмотреть выступление Николая Иготти - LLVM как инфраструктура для построения компилятора.

А еще Russell Wolf (автор библиотеки multiplatform-settings) выпустил статью с своими впечатлениями от Kotlin 1.3.70.

#posts
Из-за долгой паузы некоторое время будут посты с несколькими инфоповодами.

1. Мы запустили сайт для поиска multiplatform библиотек - он автоматически собирает актуальную информацию с github и maven, имеет фильтрацию по версии kotlin, платформе и категории.
Добавление своей библиотеки простое - 3 строчки в json и pull-request.
Уже сейчас доступно 72 библиотеки, а до kotlin 1.3.70 обновлены 46 из них.
#news

2. Ben Asher (iOS разработчик из Autodesk) опубликовал новую статью - Getting Started with Kotlin on iOS, Part 2: Interop, это продолжение Getting Started with Kotlin on iOS, Part 1, с множеством информации о том во что превращаются Kotlin конструкции при компиляции Kotlin/Native.
#posts

3. На github доступен новый проект-пример с Jetpack Compose, SwiftUI и Kotlin Multiplatform - minimise, а к нему и статьи с разбором - Building an app with Kotlin Multiplatform.
#posts #samples
1. Debugging Kotlin on iOS with Xcode - новые рекомендации по отладке котлина на iOS от Touchlab. Кратко - использовать динамический kotlin фреймворк, вместо статического, а так же использовать folder reference вместо добавления всех kotlin файлов в проект через kotlin-xcode-sync.
#posts

2. From Apache Cordova to Kotlin Multiplatform - неожиданное применение Kotlin MPP - сделано Cordova kotlin-js приложение и нативная логика на Kotlin, настроена связь между kotlin-js в Cordova и нативным Kotlin.
#posts

3. Twitter by K. Galligan - небольшой отчет по проверке влияния Kotlin/Native на итоговый размер iOS приложения.
1. Adding Multiple Kotlin Multiplatform Dependencies to an iOS App - статья для всех тех, кто ждал когда можно будет подключать к iOS приложению несколько фреймворков скомпилированных из Kotlin. Жаль что нет достаточно хорошего описания значения "закрытого мира", но все желающие могут почитать это в issue.
#posts

2. Exploring Kotlin/Native – Part 1 - небольшой обзор Kotlin/Native не в контексте одних только мобилок. С довольно хорошими изображениями пояснениями.
#posts
Migration from Room to SQLDelight - небольшой гайд о том как переехать с Room на SQLDelight, причем проведенную автором работу можно в деталях рассмотреть на github. Так же в тексте статьи даются ссылки на конкретные коммиты с решением описанных в статье проблем.

A State Machine for Multi-Threaded Coroutines in Kotlin Multiplatform - реализация стейтмашины с корутинами, в основном код, почти без пояснений.

Summer MVP. Насколько гибок Kotlin? - история разработки библиотеки summer. Рассказано почему были приняты те или иные решения при разработке библиотеки.

#posts #libs
1. reaktive-pm - новая kotlin multiplatform библиотека, реализующая паттерн Presentation Model. Интегрирована с Reaktive. Автор доступен в нашем чате, если есть желание обсудить библиотеку.
#libs

2. Kotlin Multiplatform —Firebase + MVVM - статья показывающая как можно использовать Firebase Firestore в общем коде. Готовые библиотеки позволяют реализовать приложение с Firestore в котором только UI будет платформенный, все остальное можно делать в common коде, без написания своих expect/actual реализаций.
#posts

3. Multithreading in Kotlin Multiplatform Apps - статья описывающая на что наткнулся автор при реализации многопоточности в Kotlin/Native, с советами по опыту.
#posts

4. MVI in Kotlin Multiplatform — part 1 (1 of 3) - статья для знакомящихся с MVI. Аркадий Иванов давно использует MVI, а теперь показывает как это решение применимо в Kotlin Multiplatform, с этим стоит ознакомиться.
#posts

5. apollo-android - библиотека для реализации GraphQL API Client на android, получила обновление 2.0.0 с поддержкой Kotlin Multiplatform и модуль api поддерживает android и ios таргеты. Больше информации в новой документации.
#libs
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. touchlab/Kermit - новая библиотека логирования из common кода, схожая с Timber и Napier. В отличии от Napier имеет api более схожее с современным Timber - аргументом передается не строка логирования, а лямбда, которая эту строку сформирует при необходимости.
#libs

2. Kotlin/Native and Xcode integration insights - подробная статья о интеграции Kotlin/Native iOS framework с Xcode проектом без CocoaPods. Проект, на примере которого сделан разбор, доступен на GitHub.
#posts

3. Почему мы выбрали Kotlin одним из целевых языков компании. Часть 2: Kotlin Multiplatform - история внедрения multiplatform от компании ДомКлик. Немного базовой теории о Kotlin MPP и сама история о обобщении функционала аналитики iOS и Android платформ. Задета тема многопоточности и использования AtomicReference.
#posts

4. Multiple Kotlin Frameworks in an Application - статья с разбором возможности подключения нескольких Kotlin/Native iOS framework'ов к одному iOS приложению. Тем кто интересовался темой и ждал когда уберут лимит "only one Kotlin framework can be attached in same time" - нужно ознакомиться, отражены важные особенности.
#posts
Forwarded from Android Dev Virtual Meetups
Мобильная кроссплатформенная разработка

Когда: 11 мая, ПН, 19.00 (GMT+3)
Где: YouTube канал ADVM

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

Эксперты кроссплатформы будут отвечать на ваши вопросы:
- Константин Цховребов, разработчик в Kotlin Mobile Multiplatform, JetBrains
- Евгений Кот, директор по развитию Wrike Prague, Dart & Flutter GDE, организатор HolyJS
- Александр Ефременков, Android GDE. Работает в Yandex, разрабатывает мобильные компоненты защиты.

Организовано Android Broadcast и Android Dev Podcast