Kotlin Multiplatform Broadcast
9.47K subscribers
838 photos
53 videos
1.13K links
Новости и фичи Kotlin, а также Kotlin Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Compose Multiplatform @compose_broadcast
iOS разработка @ios_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
На сайте KotlinConf'24 стали доступны записи докладов. На YouTube канале Kotlin их пока еще не открыли, но они доступны с сайта конференции по ссылкам

#kotlinconf24 #kotlin #compose #kmp #k2 #android #jetbrains #google #kotlinx
👍351
Forwarded from Android Broadcast
Media is too big
VIEW IN TELEGRAM
📺 Lifecycle path to Multiplatform (20 мин)

Недавно библиотеки Jetpack Lifecycle обзавелись поддержкой KMP. Из видео вы больше узнаете о том
👉 как проходил этот процесс, каковы реальные проблемы
👉 связанные с поддержанием обратной совместимости API
👉 какие уроки извлекли из работы с ограничениями KMP команда
👉 что поможет вам перенести ваши собственные библиотеки на KMP

Это перезалив видео с официального канала Android Developers, чтобы ограничения YouTube не сказались на расширении знаний. Ставьте 🤖 если стоит делать так и дальше с перезаливом видео от Google

#androiddev #google #kmp #jetpack #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42👎5🔥4
🤯 Как Google делает Android-библиотеки мультиплатформенными 🚀

Разбирая исходники Navigation 3 я наткнулся на необычную папку в KMP-проекте — jvmStubsMain.

src
├── commonMain
├── androidMain
└── jvmStubsMain


Внутри — только методы, которые либо возвращают значения по умолчанию, либо сразу выбрасывают исключения. Сборка под desktop из этого не получится, да и авторы такую цель не ставили. Возникает логичный вопрос: зачем тогда эта папка нужна? 🤔


🏝 Особенность KMP

В Kotlin Multiplatform папка commonMain содержит код, доступный всем таргетам.

Например:
👉 Если у проекта есть Android и iOS таргеты, в commonMain можно писать только чистый Kotlin + мультиплатформенные API.
👉 Но если оставить только Android-таргет, в commonMain внезапно станет доступен весь Android SDK 🤯 — что для меня было сюрпризом.


❗️ Зачем нужен jvmStub

Добавление таких stub-таргетов в Android-библиотеках помогает искусственно ограничить доступ к платформенным API в commonMain.

Почему это работает:
👉 У JVM и Android в KMP нет общего родителя в стандартной иерархии source sets (хотя платформы имеют много общего).
👉 Stub-реализации позволяют “отсечь” случайное попадание Android API в общий код.
👉 Это помогает держать код в commonMain чистым и переиспользуемым — вдруг завтра вы захотите добавить desktop или другую платформу.

💡 jvmStubsMain — это инструмент архитектурной дисциплины. Он не предназначен для полноценной JVM-сборки, но отлично помогает не тянуть Android-зависимости в общий код и сделать чистую арзитектуру


#kotlin #kmp #android #google
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍71