Kotlin Multiplatform Broadcast
9.48K subscribers
835 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
#IDEA

Вышел Kotlin плагин 2021.1

Kotlin плагин стал частью IDEA и теперь будет выходить вместе с ней. В новой версии нас ждёт:
🚀 Ускорено дополнение кода (code completion). Ускорение на 50%
🚀 Ускорено подсвечивание кода. Ускорение на 25%
👉 Возможность "Change signature" теперь работает лучше
👉 Для свойств с собственным getter теперь можно будет выполнить их код и получить их значение в Debug панеле
👉 Автодополнение кода для аргументов типа (generic)
👉 Теперь UML диаграммы поддерживают работу с Kotlin
👉 Все другие возможности. которые были в 2020.3 теперь также доступны новому Kotlin плагину

Также спойлернули что будут вестись работы над улучшением дебагинга Kotlin кода. Взгрустнул что теперь все фичи работы с Kotlin до Android Studio станут приезжать реже из-за синхронизации графиков релиза Kotlin плагина с IDEA
#coroutines

Use suspendCoroutine to connect callbacks and coroutines

Руководство по написанию адаптера между любым асинхронным вызовом и Coroutine
#Multiplatform

Руководство по старту работы с Kotlin Multiplatform Mobile от IceRock
👉 Почему выбирают Kotlin Multiplatform Mobile?
👉 Настройка окружения
👉 Погружение в Kotlin Multiplatform Mobile
👉 Справка по работе с KMM
👉 Работа с KMM библиотеками
👉 FAQ
#Network #Multiplatform

An Interface for Multiplatform Networking

Если вы пишете мультиплатформенное приложение на Kotlin и хотите выполнять сетевые операции, то вполне возможно вам на ум придёт решение Ktor. В Autodesk написали свою абстракцию над сетевыми операциями для более эффективного решения. Кроме набора базовых классов и интерфейсов ничего в статье не показывают (
Вышел релиз кандидат Kotlin 1.5.0

Самые интересные изменения:
👉 Unsigned целочисленные типы теперь stable
👉 Расширения для java.nio.file.Path API
👉 Функции-расширения для строк uppercase()lowercase()titlecase()  без локалей в параметрах
👉 Убрана путаница в работе Char-to-code и Char-to-digit
👉 Расшиерние multiplatform char API
👉 String?.toBoolean()
👉 Обновление Duration API и изменения в работе под капотом
👉 Новые математические операции: floorDiv(), mod()
👉 Новые расширения для коллекций firstNotNullOf() and firstNotNullOfOrNull()
👉 Обновление тестовой библиотеки
👉 Поддержка inline классов в Kotlinx serialization
👉 Поддержка Gradle 7.0
👉 Поддержка Gradle configuration cache в kotlin.multiplatform плагине
👉 Улучшение производительности
👉 Исправление багов

Kotlin 1.5.0-RC будет совместим с Kotlin 1.5.0.
#KMM #Gradle

Getting your KMM project working with Android Gradle Plugin 7.0+

Если хотите насладиться последними возможностями Jetpack Compose, писать под Android и iOS и шарить код через Kotlin Multiplatform, тогда вам придётся иметь дело Android Studio Artict Fox, которая находится в альфа и поддерживает только Gradle 7.0, который внёс breaking changes в API работы плагинов (не всех).

В статье автор разбирает как правильно настроить всё на вашем компьютере, чтобы у вас всё заработало без проблем.
#Realm #Multiplatform

Realm Kotlin Multiplatform SDK

Realm создали чистое Kotlin SDK и сделали его сразу Multiplatfrom. Написали свой Kotlin Compiler Plugin, чтобы заменить кодогенерацию процессингом аннотаций и избавиться от рефлексии.
#Kotlin1_5

📺 Sealed Interfaces and Sealed Classes Improvements (5 мин)

Совсем скоро нас ждёт новая версия Kotlin и уже начинают рассказывать о возможностях новой версии языка - sealed interface и расширениях возможностей объявления sealed classes, и конечно же их текущих ограничениях.

Помимо прочего обсуждается interop с Java Sealed Class/Interface (версия 15 и 16)
#Kotlin1_5

📺 Support for JVM Records in Kotlin 1.5.0 (2 мин)

В Kotlin 1.5.0 появится поддержка Java Records, который является аналогом Kotlin Data Class. Вы теперь можете добавить @JvmRecord и байткод будет генерироваться по другому
This media is not supported in your browser
VIEW IN TELEGRAM
#Gradle #IDEA

Gradle плагин, который позволит вам унифицировать объявление Gradle зависимостей в Kotlin DSL:
👉 Позиционные аргументы
👉 Именованные аргументы
👉 Gradle нотация зависимостей
#GraphQL

Вышел GraphQL Kotlin 4.0

Мажорное обновление мультиплатформенной библиотеки для работы с GraphQL, которое базируется на Ktor. В новой версии произошло много чистки API и рефакторинга старого кода
#Kotlin1_5

From inline to Value Classes

В Kotlin 1.5.0 нас ждёт стабилизация inline классов и одновременная замена. Теперь они станут частью value классов, новой фичи Kotlin, которая будет позже.
#SQL #Multiplatform

Вышел SQLDelight 1.5.0 в котором произошло множество улучшений и появилась поддержка Android Paging 3.0.
📺 More about future support for value classes

В Kotlin 1.5 inline классы станут value и лишь малой реализацией будущем большой фичи, подробности о которой и рассказываются в видео. Идея строится чтобы произвольные объекты могли хранится не только по ссылке, но и аналогичном примитивным типам Java.

Всё пока вилами по воде, и не факт что вообще value класс могут появится в Kotlin.
#Coroutines

Вышел Release Candidate следующей версии библиотеки Coroutines - 1.5.0-RC. Нас ждёт:
👉 массовая чистка Channel API и удаление уже depracted API ранее.
👉BroadcastChannel и ConflatedBroadcastChannel помечены как ObsoleteCoroutinesApi. Используйте SharedFlow или StateFlow
👉callbackFlow и channelFlow теперь стабильна
👉интеграция с другими реактивными библиотеками теперь полностью стабильна и улучшена работа
👉Новые операторы Flow
👉Улучшение производительности
👉Исправление багов
#Serializarion

Вышла kotlinx.serialization 1.2.0
🚀 Ускорение кодирования и декодирования JSON
👉 Возможность задавать несколько имён одному и то же property
👉 JsonConfiguration теперь часть публичного API
👉 Генерация .proto файлов на основе сериализуемых Kotlin классов
👉 Сериализация generic классов
🕓 Поддержка watchOS
🔨 Исправление багов
Новая библиотека Reflekt от JetBrains Research, которая в compile time заменяет вызовы рефлексии на обычные API, что позволяет не тормозить приложения во время работы.
#Multipalform #Mobile #Пример

Вышел официальный пример на KMM - KMM RSS Reader

Приложение является официальным примером от JetBrains реализации мобильного приложения для iOS и Android на основе Kotlin Mutiplatform Mobile. Построено всё по принципам Clean Architecture и используется Redux подобный подход. Приложение использует:
👉 Jetpack Compose
👉 SwiftUI
👉 Coroutines
👉 KotlinX Serialization
👉 Ktor Http Client
👉 Modo

В README вы найдете все подробности и детали архитектуры приложения.
Effective Kotlin Item 36: Prefer composition over inheritance

Рассказа почему композиция лучше наследования и какие ограничения накладываются механизмом наследования в Kotlin/Java
#Compose

Technology Preview: Jetpack Compose for Web

Compose уже не только в Java мире, но и в JS - тех превью Compose для Web уже здесь! Оно полностью не готово для использования в реальных приложениях или проводить тесты производительности, но вы уже можете посмотреть на видение реализации JetBrains.

Landing страницу Compose for Web уже переписали на новый инструмент