Kotlin Multiplatform Broadcast
9.48K subscribers
834 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
Обновлен сайт с документацией по Kotlin. Из основных новинок можно отметить:
👉 Поддержка мобильных устройств
👉 Обновление UI
👉 Более простая навигация
👉 Возможность оставить отзыв на любой странице
👉 Возможность скопировать одним кликом

Скоро будет больше фич, а также поддержка темной темы
#Compose #Desktop

Вышел Jetpack Compose for Desktop: Milestone 2 с множеством улучшений для разработчиков и interoperability. Что нового:
👉 Обновленный wizard проекта
👉 Поддержка Gradle 6.6 и 6.7
👉 Поддержка macOS 10.13 и 10.14
👉 Поддержка Apple Silicon
👉 Возможность встраивания Compose for Desktop в Swing приложения
👉 Поддержка Android XML иконок
#Database #NoSQL

Realm Kotlin - популярная NoSQL база данных теперь поддерживает Kotlin Multiplatform и Android, вместо того чтобы использовать Java вариант. Библиотека находится в состоянии разработки
#Kotlin #IDEA

Kotlin Plugin Released With IDEA 2020.3

Разработка Kotlin плагина переехала в репозиторий IDEA и стала его частью, чтобы упростить интеграцию последних фичей платформы. Теперь мажорные релизы Kotlin плагина будут выходить вместе с IDE от JetBrains.

В последнем релизе 2020.3 добавили такие функции:
👉 Inline рефакторинг в разных языках
👉 Поддержка структурного поиска и замены для Kotlin, позволяющие искать код по шаблону
👉 Поддержка настроек форматирования кода для Kotlin плагина в .editorconfig
👉 Новые шаблоны для Jetpack Compose for Desktop и KMP
Lets-Plot, in Kotlin - это open-source библиотека от JetBrains для построения графиков на основе статических данных. Библиотека написана полностью на Kotlin. Библиотека поддерживает различные типы графиков,
#gRPC #Android

Announcing gRPC Kotlin 1.0 for Android and Cloud

Добавить особого нечего. Если вы используете Kotlin и gRPC - тогда вас новость очень сильно обрадует.
#KMP #Multithreading

Kotlin Multiplatform. Работаем с многопоточностью на практике

Разбор применения Coroutine в мультиплатформенном проекте, причем чтобы все это работало во множестве потоков. Для iOS используется специальная версия библиотеки kotlinx-coroutines с постфиксом native-mt в версии, которая позволяет обойти текущие ограничения основной.
Вышел Detekt 1.15.0
👉 Улучшение работы правил
👉 Новые правила: RedundantHigherOrderMapUsage, ListAllWhenCases, UseIfEmptyOrIfBlank
👉 Поддержка SARIF в качестве выходного формата
👉 Исправление багов
Вышел первый milestone Kotlin 1.4.30

Kotlin 1.4.30 готовиться к релизу, а пока можно ознакомиться с предварительной версией. В ней значительно ускорена сборка Kotlin/Native и не ломается обратная совместимость.

Обновились inline классы. Появилась поддержка непубличного primary конструктора и init блока

Традиционно улучшили производительность и исправили баги
#KMP #Network

Using Retrofit and Alamofire with Kotlin Serialization on Kotlin Multiplatform

В современной разработке приложений не обойтись без сетевого слоя. Я как Android разработчик сходу отвечу вам, что если у вас REST - берем Retrofit. На KMP стоит брать Ktor. Что делать тем кто пришел с iOS и хочет Alamofire?

В статье приводится пример использовать Retrofit на Android и Alamofire на iOS в KMM. Мой вывод из статьи - проще было взять Ktor
Improvements to inline classes in Kotlin 1.4.30

В Kotlin 1.4.30 нас ждут улучшения в Inline классах:
👉 Возможность использовать init { } блок
👉 Primary конструктор может быть не только public

Подробнее в статье
#JVM

Tonnes of fun with Kotlin

Kotlin упростил жизнь разработчиков, закрыв множество кода от глаз, генерируя его. Но не всегда так очевидно и нужно быть внимательным:
👉 Extention функции не всегда статические методы
👉 Inline классы не всегда встраиваются в код, а используются как обычные классы
👉 Неочевидное перекрытие имен c extention функциями и обычными
👉 Особенности работы методов по умолчанию в интерфейсах неочевидны в каждом случае
👍1
Kotlin Christmas - ресурс, где вы найдете множество интересных статей по Kotlin, библиотеках, фреймворках и лучших практик!
#KMP

Cabret - мультиплатформенная библиотека, которая позволит вам логировать вызовы функций, помечая их аннотацией @DebugLog. Под капотом используется плагин компилятора.
#Coroutines

Coroutines Job Structures

Связь между coroutine и CoroutineScope осуществляется через Job. Эти отношения определяют, как библиотека будет отменять выполнение coroutine.

В статье разбирается несколько примеров, демонстрирующих работы как отношения между Job влияют на поведение отмены coroutine.
#Compose #Ktor

Composing in the wild (8 минут чтения)

Пример нестандартного использования Compose на backend. Механизм на основе которого построено решение может быть использован не только для решения задачи декларативного UI, но и для эффективного построения и поддержки древоподобных структур данных.

В статье разбирается пример использования Compose для построения DOM, а именно HTML и CSS и отправки этого на клиент.
#Multiplatform #iOS

Варианты настройки iosMain sourceSet'а в Kotlin Multiplatform Mobile

Организация sourceSet для iOS в KMP проектах с учетом различных архитектур процессоров и как в этом помогает утилита Commonizer из Kotlin 1.4
#Coroutines

7 Gotchas When Explore Kotlin Coroutine

Coroutine - это подход в асинхронном программировании, который был непривычен для меня, Android разработчика. В своё время я совершил много ошибок, пока осознавал правильный способ использования этого подхода. В статье приводятся популярные ошибки:
👉 Неверное использование runBlocking
👉 Отмена исполнения Coroutine
👉 Особенности работы из-за structured concurrency
👉 Неверная работа с CoroutineScope
#AndroidBroadcast

📺 Планы Android Broadcast 2021 (21 мин)

Рассказал как остался без работы, что планирую делать дальше и об амбициозных планах на 2021 по развитию Android Broadcast.
Higher order functions, how, why and what not to do.

Разбор разлиных аспектов высокоуровневых функций в Kotlin