Kotlin Multiplatform
2.62K subscribers
84 photos
3 videos
407 links
Русскоязычный канал новостей о Kotlin Multiplatform
Download Telegram
JetBrains проводит опрос про Kotlin - https://surveys.jetbrains.com/s3/e6-kotlin-census-2019
Kevin Galligan продолжает радовать своими материалами по работе с многопоточностью в Kotlin/Native. Статья Kapture - Kotlin/Native State Capture описывает плагин для IDE, который подскажет места где будет нежелательная заморозка объектов (freeze).

Когда данный плагин будет публично доступен он упростит работу многим. А на данный момент можно записаться на закрытый тест.

#posts #ide
Новые материалы по работе с памятью в Kotlin/Native. Сразу две статьи:
Kotlin/Native - Transferring State
Kotlin/Native - Isolated State

Обе статьи на примерах показывают подходы к работе с изменяемым состоянием в многопоточной среде.
Разобран механизм DetachedObjectGraph и представлены возможности нового релиза библиотеки Stately в той же задаче. Сравнение сделано по производительности.

#posts #libs
В OpenSource проекте PeopleInSpace недавно был добавлен таргет watchOS - приложение для часов, которое получает из сети данные и сохраняет их в локальную бд, а UI построен на SwiftUI.

В статье Adding some Storage (to) Space описано как происходило добавление базы данных к проекту.
Так же можно почитать предыдущую статью про SQLDelight от этого автора - Introduction to Multiplatform Persistence with SQLDelight.

Сам же проект PeopleInSpace является небольшим и понятным примером как можно реализовать общую логику включающую и запросы к серверу и постоянное хранение под мобильные платформы и Apple Watch.

#posts
firebase-multiplatform - набор библиотек, который предоставляет доступ до Firebase библиотек из common кода.

Уже сейчас доступны под обе мобильные платформы:
• core;
• auth;
• storage.

Так же для мобильных платформ доступен FirestoreKMP (от другого автора).

#libs
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
Какой вариант описания constraints лучше?
Все вызовы такого рода производятся в специальном блоке constraints { ... }
Anonymous Poll
25%
emailInput bottomToTop passwordInput offset 8
75%
emailInput.bottomToTop(passwordInput).offset(8)
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