Kotlin Multiplatform Broadcast
9.48K subscribers
833 photos
53 videos
1.12K links
Новости и фичи Kotlin, а также Kotlin Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Compose Multiplatform @compose_broadcast
iOS разработка @ios_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
Почему исключения в Kotlin Coroutines это сложно и как с этим жить?

Обработать ошибку в корутинах не так очевидно и просто порой как это описывают авторы. В статье разбираются
👉 разные примеры запуска корутин и обработка ошибок в них
👉 что будет происходить из-за structured concurrency
👉 CoroutineExceptionHandler
👉 Ключевые особенности обработки
🔥25🤔31👍1
Какого ключевого слово нету в Kotlin?
Anonymous Poll
16%
typeof
7%
typealias
39%
alias
38%
dynamic
💯12👍8🤔4🤯2
Kotlin Multiplatform Broadcast
Какого ключевого слово нету в Kotlin?
Правильный ответ - alias

typeof - ключевое слово, зарезервированное на будущее
typealias - используется для объявления алиасов типов
alias - я выдумал
dynamic - используется в Kotlin/JS. Поэтому многие могли и решить что его нет

Все актуальные ключевые слова
здесь
👍60🎉4👏1
Объект коллекции, созданный этим способом в Kotlin/JVM 1.7.10, можно модифицировать
Anonymous Poll
22%
emptyList<Int>()
7%
listOf<Int>()
1%
listOf(1)
5%
listOf(1, 2)
65%
Правильного ответа нет
👍10👌4
Kotlin Multiplatform Broadcast
Объект коллекции, созданный этим способом в Kotlin/JVM 1.7.10, можно модифицировать
Правильный ответ - "Правильного ответа нет"

👉 emptyList() создаст коллекцию через Collections.emptyList()
👉 listOf() вызовет emptyList()
👉 listOf(1) использует Collections.singletoneList()
👉 listOf(1, 2) использует конвертацию массива в коллекцию с помощью Arrays.asList()

Все эти коллекции являются неизменяемыми и при попытке любой операции модификации (добавление, удаление, замена) будет ошибка UnsupportedOperationException, за исключением Arrays$ArrayList, который разрешает операцию замены элемента (аналогично как поведение массива)
🔥50👍13🎉2🤔1
How to pause a coroutine (3 мин)

Автор делится специальным Dispatcher, который позволит вам остановить корутину в любой момент

#coroutines
🤔13😁3👍2
Вышел Koin 3.2.2

В новой версии исправили баги ViewModel в Compose, в Android Scope начали депрекейтить API и обновленные базовые проекты.

Уже работают на версии 3.3 в которой будет улучшения Constructor DSL, адаптация нового ViewModel API (2.5), новые фичи для Android Jetpack
🔥21👍7
Dowel - KSP генератор стабовых данных для Compose функций

#compose
👍49
🤔40😁5👍1
data object - новая экспериментальная фича в Kotlin 1.7.20. Фактически это object с генерацией нормального toString(). Генерировать equals и hashCode не имеет смысла т.к. object - это singleton.

Подробности фичи и как ее подключить здесь
🤯38👍18🤔6
В Kotlin 1.7.20 появился экспериментальный оператор ..< (появится в Kotlin 1.8), который позволит создать открытые интервалы. Он позволит заменить собой функцию until. Также появился новый интерфейс в стандартной библиотеки для представления OpenEndRange

Подробности фичи и как включить ее здесь
👍33🤔12
The Art of Multiplatform Programming: The Secret to Maximizing Shared Code (14 мин)

Хотите пошарить как можно больше кода, то советы из статьи вам пригодятся. Все просто - описывайте платформенно независимые интерфейсы и делайте их платформенные реализации
🤔3
Mutation Testing in Kotlin

Мутационно тестирование - техника, которая проверяет качество теста, внесением модификаций в код. Если изменения приводят к провалу теста - все у вас хорошо. Статья показывает как это сделать в Kotlin

#testing
🤔10👍5😁1
Exploring "select" expression of Kotlin coroutines

select - это специальная функция, которая дожидается результата нескольких suspend функций и возвращает результат первой выполнившейся. В статье разбираются ее подробности и применение

В комментариях пишите примеры использования такой функции на практике

#coroutines
👍13🤔8😁1
В Kotlin 1.7.20 можно попробовать Generic Inline Classes. Небольшое улучешние, которое сделае ваш код надежне и позволит компилятору не дать вам сделать ошибки. Фича экпериментальная и пока работает только на Kotlin/JVM

📺 Видео обзор
🔥13👍6😁1🤔1
🎉 Kotlin Multiplatform Mobile (KMM) вышел в Beta

Что значит Beta для KMM:
👉 Технология практически готова и ее безопаснос использовать
👉 Количество изменение, требующих миграции, будет минимизровано и авторы стараются такого не допускать

Время пробовать и интегрировать технологию, ведь она уже много где есть в продакшене!
🔥31🎉12😁2👍1
Forwarded from Android Broadcast (Кирилл Розов)
🔥 Google анонсировал экспериментальное превью мультиплатформенных Jetpack библиотек на KMM. Давно уже шло что везде чистый Kotlin, а переносимость Jetpack Compose на другие платформы то и Jetpack либы тоже в этом помогут.

Сейчас мультиплатформенным являются Collections и DataStore. Почему? Да они прекрасно кладутся на функционал который есть на разных платформах, а под капотом используется платформенная реализация или из языка под капотом (например Java Collections)]

Делитесь мнением по поводу официальной поддержки KMM в Android

#kmm #jetpack
🔥26👍7🤔5😁2
Forwarded from Android Broadcast (Кирилл Розов)
📺 Новости мобильной разработки (24 мин)

В свежем выпуске разбираю
👉 анонс KMM Beta
🔥 Jetpack Multiplatform на Kotlin
👉 новый формат Android Dev Summit
👉 Jetpack Compose for Android TV
👉 новые Google Pixel устройства

🎧 Подкаст версия
📺 Версия на YouTube

#AndroidBroadcast
👍11🤯2🤔1