Kotlin Multiplatform
2.62K subscribers
84 photos
3 videos
407 links
Русскоязычный канал новостей о Kotlin Multiplatform
Download Telegram
Доступен новый релиз Kotlin Multiplatform Mobile плагина для Android Studio 🥳
https://github.com/pinterest/ktlint/releases/tag/0.44.0

Новая версия Котлин линтера от Pinterest!
Добавлена проверка на ненужные скобки и сделано множество фиксов.
А еще у проекта появился официальный мейнтейнер
https://www.youtube.com/watch?v=z-o9MqN86eE

Эпизод с Goncalo Silva - CTO Doist, создателя известного приложения Todoist. Рассказывают как делали выбор технологии, с каких туториалов стартовали и другие важные практические истории
🧑‍⚕️ Мы тут с командой сделали первую версию утилиты KDoctor, которая должна помогать при первоначальной настройке окружения для разработки Kotlin Multipltform Mobile приложений, поиске проблем в окружении и подсказке по их устранению. А еще саппорту будет проще 😉

Предлагаю всем попробовать ее запустить и при наличии каких-то проблем сообщить нам, чтобы к официальному анонсу все было идеально 🥳

установка: brew install kdoctor
запуск: kdoctor

Если в конце запуска вы видите: Your system is ready for Kotlin Multiplatform Mobile Development! - значит у вас все отлично 🤟

Описание и документация есть тут: https://github.com/Kotlin/kdoctor
https://www.youtube.com/watch?v=5QPPZV04-50

Для всех, кто хочет разобраться с HMPP, необходимости данного решения, особенностях публикации и обратной совместимости с проектами без иерархии сорсетов внутри!
P.S.: надеюсь все уже удалили хак с определением ios таргета? 🧑‍💻
⚠️ Для всех кто купил себе MacBook M1 и еще не успел понять, что там сломан системный Ruby!!!

Это проявляется как невозможность использовать команду pod install.
В консольном логе можно встретить упоминание, что какие-то внутренние бинари собраны не под ту процессорную архитектуру.

Надо установить кастомный Ruby! А после установки переустановить Cocoapods и Cocoapods-generate гемы

😔 Но наш Cocoapods Gradle плагин 1.6.20 и ранее не поддерживает Ruby 3.*
Поэтому ставить надо что-то более старое, например 2.7.2

🧑‍💻 К Котлину 1.7.0 мы это пофиксили, но надо подождать.

Завели ишую для удобства
https://akjaw.com/refactoring-android-to-kotlin-multiplatform/

Автор делится своим опытом перевода Android Compose приложения на мультиплатформу и затем будет делать реализацию UI на стороне iOS приложения.
Это первая статья из цикла. Продолжение следует 🏄
Продолжение истории о внедрении Kotlin Multiplatform Mobile! 🥳
В этой части больше про принятие решения, прототип и внедрение в команды. Поможет продать идею менеджерам вкупе с еще одним успешным кейсом 🧑‍💻

https://habr.com/ru/company/qiwi/blog/662077/
https://johnoreilly.dev/posts/swift-async-algorithms-combine/

В котлин мы можем использовать силу корутин для асинхронной логики, а как сделать что-то подобное в свифте? Про это в новой статье известного Kotlin Multiplatform Mobile энтузиаста John O'Reilly 👍
Библиотека moko-mvvm получила релиз 0.13.0 с проработанной поддержкой Jetpack Compose и SwiftUI. С новой версией интеграция общей ViewModel в SwiftUI требует минимум кода и без дополнительных классов-оберток.

Также опубликованы статьи на русском и английском, с наглядным пояснением как новая версия библиотеки решает задачу общих ViewModel.

#posts #libs
Сейчас собираю случаи, в которых не удаётся подключить cocoapod к котлин проекту. Выявил две основные проблемы и описал, как их обойти: https://youtrack.jetbrains.com/issue/KT-52070/Cocoapods-Cinterop-error-Module-not-found

Буду очень признателен, если у вас что-то не работает, а решения не помогают, и вы допишите в комментарий ваш случай. Я его внимательно изучу.

(Само собой, pod должен быть с objC хедерами)
Суммарный опыт использования Котлин мультиплатформы для разработки Android+iOS приложений. Хорошо описаны ограничения и проблемы, а так же процессы, позволившие их избегать и получать максимум пользы от технологии 🏄‍♂️
https://medium.com/360learning-engineering/key-takeaways-from-our-kotlin-multiplatform-journey-764415e3606f
А вот еще и обзор новой версии Koin 3.2 👍
А точнее нового DSL, который избавит вас от get(), get(), get(), get() 🔥
https://blog.kotzilla.io/inside-koin-3-2-new-dsl/
https://mobile.twitter.com/TouchlabHQ/status/1527258401423740930?s=20&t=VCMeovYtX9xaIqLu5n5sDw

Touchlab продолжают радовать своими наработками в экосистеме Kotlin Multiplatform Mobile 🥳
Вместе с их плагином для Xcode, iOS разработчикам будет гораздо проще разрабатывать и отлаживать код на Котлин 🔥
А вот и рассказ про новый CLI инструмент, который помогает в настройке окружения для дебага Котлин из Xcode: xcode-kotlin

https://touchlab.co/xcode-kotlin-cli/
Всегда полезно быть в курсе ограничений и текущих недостатков 🧑‍💻, поэтому ознакомьтесь со статьей Enrique López-Mañas о KMM мире со стороны iOS.
Автор неоднократно повторяет, что технология готова к проду 🥰, и все нюансы либо в процессе устранения (новая модель памяти) либо просто надо иметь их ввиду (интероп через objC).
https://enriquelopezmanas.medium.com/kmp-ios-developers-and-production-c754fa958d38
Kotlin Multiplatform часто требует нетривиальных gradle конфигураций, поэтому данная трансляция может быть полезна 👍