Kotlin Multiplatform Broadcast
9.47K subscribers
821 photos
48 videos
1.09K links
Новости и фичи Kotlin, а также Kotlin Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Compose Multiplatform @compose_broadcast
iOS разработка @ios_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
CameraK - KMP библиотека для Android и iOS (планируются и другие в будущем) с реализацией работы камеры на Compose. Умеет показывать превью, делать фото и сохранять их на диск. Автор также написал статью(EN,7м) с с тем как использовать библиотеку

Библиотека на очень ранней стадии разработки, но уже можно следить за ней.

#kmp #compose #android #ios #камера
Amper будет полностью поддерживать KMP и Compose MP для Android и iOS
👉 запуск тестов локально и в CI
👉 публикация билдов в Google Play и App Store
👉 будет лучшая интеграция с IDE

#amper #kmp #android #ios
Yandex MapKit KMP SDK - библиотека обертка над Yandex Map Kit для Android и iOS

Поддерживает несколько способов взаимодействия для обеспечения постепенной интеграции в приложение. Можно вынести логику в Kotlin common код и иcпользовать нативный UI или взять реализацию на Compose Multiplatform

Больше подробностей смотрите в статье

#yandex #карты #kmp #android #ios
Kotlin Multiplatform IO - порт Java IO API (Reader, InputStream, BufferedReader и других) на KMP с поддержкой #android #jvm #ios #desktop #js @wasm и других таргетов
Статья как использовать Burst 2.0 на Android

#тестирование #android
Вышел Amper 0.5.0 - система сборки проектов от JetBrains. Фокус - KMP разработка
⚠️ Улучшили интеграцию с IDE Fleet
🏝 Поддержка ресурсов Compose Multiplatform
🏝 Поддержка KSP2 (нужен Kotlin 2.1)
🏝 Поддержка Parcelize плагина для Android
🤖 Возможность собирать подписанные Android с применением R8
👉 Единое место на компьтере для кешей всех загрузок

В комментариях делитесь мнение, уйдем ли мы от использования Gradle в пользу Amper для KMP проектов?

#инструменты #kmp #amper
Please open Telegram to view this post
VIEW IN TELEGRAM
Alarmee - KMP библиотека для показа локальных уведомлений в Android и iOS

#kmp #android #ios
KHealth - KMP обёртка над Android Health Connect и Apple HealthKit API

#kmp #android #ios
KmpEssentials - набор более 40 модулей для ускорения KMP разработки под iOS, Android и AppleWatch. Подробности на сайте

#kmp #android #ios #applewatch
Forwarded from Android Broadcast
📹 Демонстрация настройки публикации Android и KMP библиотеки (36 минут)

В новом видео показываю как настроить публикации для Android и Kotlin Multiplatform библиотеки в Gradle с новым механизмом подписи артефактов для Maven Central в 2024

#AndroidBroadcast #видео #gradle #maven #kmp #android
Please open Telegram to view this post
VIEW IN TELEGRAM
EitherNet - KMP библиотека для удобной работы с ответами из сети, когда нужно обработать различные типы ответов и не хочется всё это ловить через NetworkException.

Очень давно я делал видео (доступно на YouTube) как сделать такую же обёртку и зачем это нужно

#kotlin #kmp #jvm #android #ios #wasm #js
Вышел Coil 3.1.0 - популярный загрузчик картинок с поддержкой KMP

👉 Улучшили производительность AsyncImage: скорость работы стала лучше на 25-40%, а потребление памяти - на 35-48%
👉 FakeImage теперь deprecated
👉 Появился ColorImage - полезен для возвращения фейковых значений в тестах и для Compose превью
👉 coil-compose-core больше не зависит от Dispatchers.Main.immedate, что позволило исправить баги в работе Paparazzi и Roborazzi
🛠 Множество других исправлений и улучшений API

#kmp #android #compose
ko-iso - KMP библиотека для работы с кодами стран

#kotlin #kmp #android #jvm #native #ios #android #wasm
🏝 Delight SQL Viewer - KMP библиотека для Android, iOS и Desktop, чтобы смотреть и редактировать содерживаемое БД, управляемой SQLDelight, напрямую из приложения 🤯

Для работы Viewer надо добавить зависимость в проект и провести простую интеграцию с вашей БД

Автор решения также написал статью (4м) на русском с демонстрацией возможностей

#kotlin #kmp #sqlite #android #ios #desktop
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Android Broadcast
🚀 Вышла новая версия Jetpack Room 2.7.0 с поддержкой KMP.

🔥 Главное нововведение этой версии Room — рефакторинг библиотеки для поддержки нескольких платформ через KMP: Android, iOS, JVM (Desktop), native Mac и native Linux. Документацию о том, как начать, можно найти здесь. В рамках поддержки KMP было выделено SQLiteDriver.

🏝 При использовании KSP теперь будет генерироваться код на Kotlin, а для KAPT или проектов с Java — на Java.

🏝 Поддерживается Kotlin 2.0 и выше, также рекомендуется использовать KSP2.

#android #kmp #jetpack #ios #desktop #mac #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Android Broadcast
🤖 Demeter — инструмент для анализа производительности Android приложений

🔧 В опенсорс выложили инструмент для сбора метрик работы Android приложений - Demeter. Решение было разработано в рамках задач по улучшению скорости запуска и работы приложений. Команде не хватало информации, которую собирают готовые решения, поэтому ребята сделали свой инструмент.

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

Инструмент имеет плагинную архитектуру и открытый исходный код, что позволяет вам сделать собственные расширения. Из коробки доступны плагины:
• Замер времени выполнения методов и добавление большей информации для профайлера
• Подсчет количества рекомпозиций в Composable функциях
• Время инициализации зависимостей из Dagger графа
(предлагайте в комментариях, какие замеры было бы полезно сделать в ваших приложениях, а я буду делиться своими)

Demeter может работать через плагин Kotlin компилятора (только с исходным кодом в вашем проекте) и/или через модификацию байткода, где уже можно следить за кодом в подключённых библиотеках без исходного кода. Подробнее можно ознакомиться в статье.

Измерять производительность на дебаг билдах смысла не имеет, так как там много лишнего, а вот когда проходит регресс или через автотесты замерять, то как раз Demeter тут будет полезен, так как важна оценка в одинаковых условиях.

❗️ ВАЖНО! Demeter можно интегрировать в продакшен билд, но НЕ НАДО этого делать. Весь замер должен производиться на тестовых сборках с включением опций профилирования через AndroidManifest.

Задавайте свои вопросы по библиотеке, и ещё сделаем отдельное интервью про производительность приложений и тем как за ней постоянно следить, выдерживая заданную планку качества работы.

#android #производительность #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
🏝 App Platform от Amazon - легковесный KMP фреймворк для разработки клиенстких приложений. Позволяет управлять состоянием и управлять памятью. Поддерживает Android, iOS, JVM, Native и Web!

Концепция строится вокруг модульной структуры для разделения API и реализации. Для DI по умолчанию используется kotlin-inject-anvil, для Presenter - Molecule, но можно заменить. UI слой может быть написан на удобном для вас UI фреймворке.

Для настройки требуется подключение Gradle плагина

На момент написания поста доступна версия 0.0.1

#kotlin #kmp #android #ios #web #desktop #jvm #native
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Библиотека Jetpack Saved State стала KMP с поддержкой Android, iOS, Linux, Mac и JVM. Решение поможет вас сохранять состояние при смерте процесса приложения для восстановления состояния

#jetpack #kotlin #kmp #android #ios #desktop
Please open Telegram to view this post
VIEW IN TELEGRAM
KSensor - KMP библиотека для работы с сенсорами на Android и iOS. Поддерживает акселерометр, гироскоп. магнитометр, барометр, счетчик шагов, местоположение

val sensors = listof(
SensorType.ACCELEROMETER,
SensorType.GYROSCOPE,
SensorType.MAGNETOMETER,
SensorType.BAROMETER,
SensorType.STEP_COUNTER,
SensorType.LOCATION,
)

// Register sensors
KSensor.registerSensors(
types = sensors,
locationIntervalMillis = {optional. default is 1000L},
onSensorData = { type, data ->
println("Sensor: $type - Data: $data")
},
onSensorError = { error ->
println("Sensor error: ${error.message}")
}
)

// Unregister sensors when no longer needed
KSensor.unregisterSensors(sensors)


#kotlin #kmp #android #ios
Media is too big
VIEW IN TELEGRAM
⏸️🤯 Активное использование Main Dispatcher делает ваше приложение медленным

📹 Очень классный доклад с Mobius Весна 2025 с погружением в работу кода на корутинах на Android, анализ долгих ожиданий Main Thread из-за его загруженности и почему стоит максимально всегда запускать операции в ViewModel (и не только там) на Dispatchers.Default или Dispatchers.IO

Александр Таганов проделал крутую работу и его кейс позволит ускорить ваши приложения!

Также можно посмотреть на 📹 VK Video

00:00 - Про доклад
02:44 - Долгое ожидание простых операций
12:59 - Разбор причины долгих загрузок
21:30 - Выводы после анализа
24:35 - На что стоит заменить Dispatchers.Main
27:50 - Тестирование разных Dispatcher

#kotlin #coroutines #android
Please open Telegram to view this post
VIEW IN TELEGRAM