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
#Multiplatform #Mobile #Multithreading

Kotlin Multiplatform. Practical multithreading

Серий статей о работе с KMM и особенности многопоточного программирования
Bad Kotlin Extensions

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

Автор разбирает примеры удачных и неудачных расширений, а также выводит рекомендации какие функции надо делать расширениями, а какие лучше оставлять как есть. Главное отличие - ваше расширение действительно добавляет новый функционал, глобальный для типа, либо код внутри функции очень специфичен для вашего приложения и неочевиден по смыслу другим разработчиком.
Philips Case Study: Building Connectivity with Kotlin Multiplatform 

Philips рассказывает о своём опыте использовать Kotlin Multiplatform Mobile для создания SDK под Android и IOS
Forwarded from Android Broadcast
#AndroidBroadcast #Kotlin #Multiplatform

MOKO - готовый фреймворк для Android + iOS приложений на основе Kotlin Mobile Multiplatform
Когда: понедельник, 1 февраля, 10:00 (GMT+3)

Опыт компании IceRock в разработке мобильных приложений (нескольких десятков) с использованием Kotlin Multiplatform. Результат этого опыта - MOKO

Гость выпуска - Алексей Михайлов, CTO в IceRock Development
Технический директор компании аутсорс разработки, в прошлом разработчик под мобильные платформы Android и iOS. В студенчестве создал soProject для S.T.A.L.K.E.R. :)
Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter

JFrog закрывает кучу своих сервисов, включая Bintray. Практически все современные библиотеки заливались на этот сервис, так что у авторов много работы, ведь в конце февраля опубликовать новые не получится. Теперь Maven Central ?
Вышел Kotlin 1.4.30

Вышла новая версия языка Kotlin, которая включает:
👉 Backend нового IR компилятор на JVM достиг Beta. В версии 1.5.0 он станет основным. Старый компилятор больше не поддерживается
👉 Sealed интерфейсы
👉 Поддержка JVM record. Подробности
👉 Sealed классы теперь можно объявлять не только в одном Kotlin файле, но и в рамках одного пакета одного модуля
👉 inline классы теперь становятся value классами. В будущем inline class будет невозможно использовать и останется только value class
👉 В inline классах теперь можно использовать init блок
👉 Добавлена поддержка Gradle Configuration Cache
👉 Новое API String.uppercase() и String.lowercase() не требующиепередачи локали

Изменения в Kotlin/Native:
👉 Ускорение компиляции
👉 Поддержка Apple watchOS 64-bit симулятора
👉 Поддержка XCode 12.2
Forwarded from Android Broadcast
#Coroutines #UnderTheHood

Bridging the gap between coroutines, JVM threads, and concurrency problems

Хотите узнать как работают Coroutine на JVM? Как они связаны c Java потоками? Какую роль в этом выполняет CoroutineDispatcher? В статье найдете ответы простым языком с отсылкой в исходники
#KotlinX #Serialization

К выходу готовится kotlinx.serialization 1.1.0

Представили первую RC следующей версии KotlinX Serialization. В новой версии появится:
👉 Экспериментальная поддержка inline классов (только новый IR компилятор). Подробности
👉 Поддержка сериализации unsigned типов: UIntULongUByte, и UShort. Подробности
👉 Улучшения API
👉 Исправление багов
👉 Улучшение производительности

Для работы новой версии библиотеки вам надо обновиться до Kotlin 1.4.30 или новее. Также перед финальным релизом 1.1.0 могут быть внесены изменения.
#KEEP

Design Notes on Kotlin Value Classes

Описание текущего состояния value классов в Kotlin и их будущего.
#KMM

📺 Meet Kotlin Multiplatform Mobile! (6 мин)

Видеоинструкция как начать разрабатывать кроссплатформенные приложения, используя Kotlin Multiplatform Mobile (KMM).
#Navigation

A comprehensive hundred-line navigation for Jetpack/Desktop Compose

Навигация - важная часть практически любого приложения. В этой статье Аркадий Иванов рассказывает, как быстро создать свой многофункциональный навигатор в чистом Composable мире. Больше всего это актуально для Desktop Compose, но также может быть полезно и для Jetpack Compose.
#AndroidBroadcast

Ktor: микросервисы, веб приложения и клиенты в одном фреймворке (Livestream)
Сегодня в 19.00 (GMT+3)

В гости Android Broadcast приходит Леонид Сташевский - Tech Lead проекта Ktor из JetBrains. Мы обсудим с ним Ktor, его особенности и будущее.

Подключайтесь чтобы послушать и задавать свои вопросы
Forwarded from Android Broadcast
#Kotlin

Announcing Kotlin Symbol Processing (KSP) Alpha

С переходом нового компилятора Kotlin в Beta статус плагины компилятора тоже развиваются. Помните Kotlin Symbol Processing (KSP), которая призвана ускорить генерацию кода в Kotlin проектах, заменив KAPT? Так вот она перешла в альфу

Статус поддерживаемых библиотек сейчас можно найти здесь, а также добавить те, которые важны вам. Сейчас адаптацию пока начали делать только в Room.
Early Access Program for Qodana, a New Product That Brings the “Smarts” of JetBrains IDEs Into Your CI Pipeline

IDEA помимо хорошего функционала по навигацию и рефакторинга кода содержит внутри себя множество проверок кода на разных языках - статический анализ. Использовать их отдельно от IDEA не представляется возможным, но новый продукт от JetBrains это делает. Встречайте Qodana!

Проект состоит из 2 частей: ядро IDEA без GUI для использования на CI как линтера и интерактивный Web UI для отчётов.

Посмотреть примеры работы можно на qodana.beta.teamcity.com (логинтесь как гость) и в любом проекте открывает таб "Qodana".

Использовать Qodana можно через Docker образ, GitHub Action, плагин для TeamCIty или как облачный сервис.

После такого понадобятся ли нам Detekt, Ktlint и прочие анализаторы кода? Как минимум нужен локальный Gradle плагин ещё
#Kotlin1_5

New Language Features Preview in Kotlin 1.4.30

В Kotlin 1.5 появятся новые возможности, которые уже можно попробовать в 1.4.30:
👉 Стабилизация inline value классов
👉 Экспериментальная поддержка JVM records
👉 Эксперементальная поддержка sealed интерфейсов и другие улучшения sealed классов

Чтобы их попробовать вам надо указать у себя в проекте версию языка 1.5. Подробнее как это сделать здесь.
Свойства против методов

Одна из сложностей в написании кода в Kotlin заключается в том что не во всех случаях очевидно понять что лучше использовать: свойство или метод. Официальная документация дает следующие рекомендации по использованию свойств:
👉 если свойство не бросает исключение (exception)
👉 дёшево для вычисления (или можно закешировать при первом запуске)
👉 возвращает одно и то же значение при каждом вызове, если состояние объекта не изменилось

Авто статьи разбирается в этих понятиях подробнее и раскрывает что не всё так очевидно
Multik: Multidimensional Arrays in Kotlin

JetBrains представила первое превью библиотеки Multik, которая предназначена для работы с многомерными массивами
#IDEA

Празднование 20 лет IntelliJ IDEA

Популярнейшей IDE исполнилось 20 лет. В честь этого события нас ждет конференция, которая пройдет 25 и 26 февраля. Мы узнаем о возможностях продукта и его будущем.
#Flow

Backpressure in your Kotlin Flows

Разбор как работает backpressure в Kotlin Flow