Kotlin Multiplatform
2.62K subscribers
84 photos
3 videos
407 links
Русскоязычный канал новостей о Kotlin Multiplatform
Download Telegram
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
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