Kotlin Multiplatform
2.62K subscribers
84 photos
3 videos
407 links
Русскоязычный канал новостей о Kotlin Multiplatform
Download Telegram
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
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. Kotlin in iOS: Memory Debugging with Xcode and Instruments - статья про отладку памяти iOS приложения с Kotlin/Native через стандартные Instruments в Xcode. С ней в паре идет небольшая заметка (Debug Kotlin with Xcode References) про подключение kotlin исходников в Xcode для работы переходов к коду из Instruments и работы breakpoint'ов.
#posts

2. Kotlin Multiplatform: ready, steady, … - история перевода двух нативных приложений Codeforces WatchR на использование общей логики с Kotlin Multiplatform. Рассказано о подходе Redux в реализации ReKotlin, которую перевели на multiplatform, о миграции на SQLDelight, о переходе с Retrofit на Ktor. Не обошлось и без проблем на iOS, про которые также указано и как были исправлены.
#posts

3. ReKamp - порт библиотеки ReKotlin в multiplatform, разработанный в процессе миграции Codeforces WatchR из вышестоящей статьи.
#libs

4. sample-KMP-compiler-plugin - простой и аккуратный пример compiler плагина для Kotlin, который будет работать и JVM и для Kotlin/Native версий компилятора. В данном примере красиво реализована подмена расположения множества классов комплиятора (у JVM и Kotlin/Native большой набор классов лежит в разных местах) - такой подход однозначно удобнее дублирования (как например пришлось делать в нашем плагине виджетов)
#samples #plugins

5. Using Koin in a Kotlin Multiplatform Project - новая версия DI библиотеки Koin (3.0.0) получила поддержку Kotlin Multiplatform и в статье описаны первые впечатления от использования библиотеки в multipltform варианте.
#posts #libs

6. devtools-library - библиотека предоставляющая инструменты для работы с конфигурациями в приложении, при чем изменение конфигов можно делать в рантайме через подготовленный UI.
#libs
Привет!

Сегодня Team Lead Android команды разработки Spark Mail расскажет о том, как они шарят код между iOS и Android, используя при этом Swift. Swift на Android. Как Spark код между iOS и Android шарили

Когда: Сегодня, 26 мая, 20.00 (GMT+3)
Где: YouTube канал Android Broadcast
1. KWeather - проект-пример мультиплатформенного приложения с Jetpack Compose UI. Пока только android target, но это не отменяет готовность проекта к добавлению дополнительных таргетов (основной код в common).
#samples

2. KmpGithubMVVM - еще один проект-пример, с уже реализованными таргетами android и ios, с использованием ktor, serialization, sqldelight и cocoapods интеграцией в iOS. Содержит примеры unit тестов.
#samples

3. Développement Android et iOS avec Kotlin Multiplatform - презентация для знакомства с азами мультиплатформы, с актуальной на данный момент информацией (многие прошлые подобные презентации уже стали неактуальны местами).
#slides

4. Архитектурный шаблон MVI в Kotlin Multiplatform, часть 1 - уже появлявшаяся в нашем канале статья о MVI для мультиплатформы теперь доступна на русском языке.
#posts

5. Creating a MultiPlatform Project with Kotlin/Native (Android/iOS) - гайд по созданию нового мультиплатформенного проекта под Android и iOS, может быть полезен новичкам.
#posts
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
1. Kotlin 1.4-M2 Released - вторая milestone версия Kotlin 1.4 с большим количеством обновлений по Multiplatform части. Hierarchical multiplatform, commonizer, suspend in iOS и несколько других классных вещей.
#posts

2. MVI in Kotlin Multiplatform — part 2 (2 of 3) - новая статья про MVI в Kotlin Multiplatform. Продемонстрирована реализация загрузки данных без использования внешних зависимостей, подключение к ui через iOS SwiftUI и android View.
#posts

3. Crafting and publishing Kotlin Multiplatform library to Bintray - статья о публикации своей multiplatform библиотеки на bintray.
#posts

4. Kotlin/Native Concurrency for Mobile Multiplatform - презентация о многопоточности в Kotlin/Native от Touchlab. На данный момент наиболее полное и актуальное описание ситуации с многопоточностью в мобильной мультиплатформе вцелом - рекомендуется всем.
#slides

5. Kotlin Hands-on - Kotlin/Native Concurrency - codelab для ознакомления с особенностями многопоточности в Kotlin/Native.
#codelabs

6. bismarck - библиотека кеширования, с поддержкой ios и android.
#libs

7. kaluga - набор библиотек для mobile multiplatform разработки. Содержит функционал для работы с геолокацией, диалогами, клавиатурой, логированием, разрешениями.
#libs
1. Swift Closures in Kotlin Multiplatform - статья о работе с замыканиями (лямбдами) в Swift. Связь статьи с KMP небольшая - она нацелена на android разработчиков пришедших с использованием KMP в iOS. Поясняются основные особенности работы с замыканиями.
#posts

2. Kotlin Symbol Processing: Early Thoughts - статья о находящемся в разработке у Android команды новом инструменте, замене kapt. Kotlin Symbol Processing разрабатывается как multiplatform ready annotation processor, реализованный как compiler-plugin. Также о нем рассказано в видео State of Kotlin on Android.
#posts #videos

3. Experimenting with Ktor - статья о работе с Ktor http client. Полезна для тех кто еще не знаком с Ktor.
#posts

4. Karmok - библиотека и IDEA plugin генерации mock'ов для тестирования common кода. Находится в экспериментальном статусе, но уже можно пробовать себе.
#libs

5. Introduction to Kotlin/Native Concurrency - очередная статья про многопоточность в Kotlin/Native от Touchlab.
#posts

6. Native dependency in Kotlin/Multiplatform — part 1 : architecture - статья о подключении Native зависимостей в мультиплатформу.
#posts

7. Kotlin Multiplatform Library 101 - гайд по реализации своей multiplatform библиотеки от разработки до публикации.
#posts
1. Создаём своё первое приложение для Kotlin Multiplatform - статья для мобильных разработчиков желающих познакомиться с Kotlin Multiplatform на русском. Кроме утверждения "на Kotlin/Native не поддерживаются background очереди" всё полезно и наглядно.
#posts

2. dynamo - opensource проект мобильного приложения для генерации паролей с использованием Kotlin Multiplatform.
#samples

3. tesla.kt - библиотека для работы с API автомобилей Tesla. Пока только jvm и js таргеты.
#libs

4. CPMovieMaker - opensource проект мобильного приложения редактора видео (пока только объединение нескольких видео клипов в один). UI написан на Flutter, а бизнес-логика на Kotlin Multiplatform.
#samples

5. What is Kotlin Multiplaform? Why & How? - презенатция с вводной информацией про KMP. Также доступно видео выступления, на арабском.
#slides #videos

6. ConferenceFinder - opensource проект с мобильными приложениями и бекендом на Kotlin. Приложение для поиска конференций.
#samples
Forwarded from Konstantin Tskhovrebov
Всем привет!
Сегодня идет бесплатная онлайн конференция DevParty, где от утра Владивостока до вечера в Калининграде нон-стоп выступают разные интересные спикеры.
https://gdg-devparty.ru/
Я тоже там буду😉
С 14:00 до 15:00 я расскажу сжатую версию доклада с мобиус про то, как запустил GitFox на иос и в браузере. Все самое главное осталось в докладе, урезал только бонусы и JB инсайды, ну и рассказывать буду на 1.25х 😅
Предлагаю всем, кто хочет услышать рассказ про перевод типичного андроид проекта двух-трех годичной давности на мультиплатформу (RxJava, Gson, Retrofit и тд), присоединятся!
Ютуб стрим (надеюсь к 14 будет он же, но всегда можно найти актуальный на сайте выше): https://www.youtube.com/watch?v=Xe3Ug3fCO3c
1. Запускаем типичный Android-клиент мультиплатформенно: Путь практика и продолжение - доклад и ответы на вопросы аудитории от Константина Цховребова. Каждый наверняка найдет в этом выступлении полезную для себя информацию.
#videos

2. Working with Kotlin Coroutines and RxSwift - статья с разбором как работать с корутинами из iOS с использованием RxSwift. Статья полезна, пока не вышел Kotlin 1.4 c поддержкой suspend функций для iOS.
Код доступен на github.
#posts

3. Kotlin 1.4 suspend functions - статья о том что нас ждет в Kotlin 1.4 - поддержка suspend функций для iOS.
#posts

4. Getting Started with Kotlin on iOS, Part 3: The Build - продолжение серии статей для iOS разработчиков, на этот раз разбирается детальнее процесс сборки Kotlin для iOS.
#posts

5. Multiplatform Persistence with SQLDelight - краткий гайд по добавлению базы данных в kotlin multiplatform модуль.
#posts

6. Dependency Injection on Kotlin/Multiplatform — Part 1: Factorize your code и Part 2 : Test and build - статьи про внедрение зависимостей в kotlin multiplatform с использованием Kodein.DI и примером как это применяется в тестировании.
#posts