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
#coroutines

📺 Kotlin Coroutines: Important Answers from The Kotlin Team (7 мин)

Рассказ про что нас ждёт в Coroutines:
👉 Поддержка Project Loom
👉 Улучшение тестирования кода с Coroutine - Coroutines Testing Framework в 1.6
👉 Улучшения Flow
👉 Coroutine в Kotlin/Native с новой моделью памяти
Вышел Kotlin 1.5.30

🏗️ sealed when - ошибка компилятора, если пропустите значение enum или возможный подкласс sealed класс (будет в 1.6, но тестировать можно уже сейчас)
🏗️ [ЭКСПЕРЕМЕНТАЛЬНАЯ] Поддержка использовать suspend функций в качестве супертипа
🏗️ [ЭКСПЕРЕМЕНТАЛЬНАЯ] Улучшение работы с рекурсивными Generic типами
🏗️ [ЭКСПЕРЕМЕНТАЛЬНАЯ] Изменения в требованиях к использованию opt-in аннотации
👉 Поддержка создания экземпляра класса-аннотации в Kotlin/JVM
👉 Убраны ограничения выведения типа в build функциях (например buildList)
👉 Улучшения работы с nullablity - теперь можно выбирать будет ли у вас ошибка или предупреждение от компилятора
👉 Kotlin Multiplatform: Новые настройки публикации Android артефактов
👉 Поддержка Apple Silicon в Kotlin/Native
🏗️ [ЭКСПЕРЕМЕНТАЛЬНАЯ] Интероп с Swift 5.5 async/await
👉 JS IR compiler backend в Beta
👉 Gradle: поддержка Java toolchain
👉 Улучшения Duration & Regex API
#coroutines

Safe delay in Android Views: goodbye Handlers, Hello Coroutines!

Использование Handler для отложенных операций в Android - небезопасно. Они не имеют связи с жизненным циклом и могут приводить к утечкам памяти.

На замену автор предлагает использовать Kotlin Coroutines + Coroutine Scope из Android. Поддерживаю 2 руками
#вакансия

Mercury Development — компания из топ-8 Android-разработчиков США по версии Clutch. Один из самых интересных проектов в Меркури сейчас — американский фитнес-стартап, который разрабатывает мультифункциональный тренажер c ИИ под капотом. В команду, которая создает для тренажера мобильное приложение, нужны Android-разработчики из этих городов: Самара, Краснодар, Саратов, Тольятти.

Главное — опыт командной разработки приложений на Android от года, понимание жизненного цикла основных компонентов платформы, знание SQL и английский на уровне чтения технической документации.

Вот контакты, где можно узнать подробности и откликнуться:
✉️ job@mercdev.com
💬@Kate_Rinna

А тут о том, кто они такие и чем занимаются. Например, Меркури помогли разработать первые фитнес-трекеры для Fitbit — корпорации, которую недавно купил Google, софт для световых панелей, которые засветились в клипе Coldplay, мобильное приложение для Бургер Кинга и много чего еще крутого.
#DSL

Effective Kotlin Item 35: Consider defining a DSL for complex object creation

Руководство по созданию собственного DSL для описания создания сложных объектов или вложенных структур
#native

Try the New Kotlin/Native Memory Manager Development Preview

Стала доступна новая модель управления памяти в Kotlin/Native. Пока это лишь ранняя стадия, но она призвана решить ряд текущих сложностей, а именно теперь:
👉 Убраны ограничения на использование объектов из нескольких потоков
👉 Concurrent примитивы без дополнительного менеджмента со стороны разработчиков
👉 Больше не надо вызывать freeze(), за исключением AtomicReference

Всё это пока только в работе и новая модель памяти станет общедоступной в Kotlin 1.6
🔗 Руководство как попробовать новую модель управлением памятью
🔗 Обновленный пример с K/N Concyrrency

Все новые изменения - это большой шаг для решения многих сложностей, которые не даёт массовости для Kotlin под iOS и KMM
#coroutines

Coroutine builders

Разбор того как можно создать Coroutine (launch, async, runBlocking), какую роль в этом играет structured concurrency и CoroutineScope
#AndroidBroadcast #kotlin #lateinit

lateinit - это зло и «костыль» Kotlin

Я всегда плохо высказывался о lateinit. Он принёс много боли мне и разработчикам в моей команде. Пора показать почему и на что его заменить, а когда это не получится. Конечно же расскажу при чём тут Dagger 2.

Видео сделано при поддержке Avito.Tech
💰 Поддержи проект на Boosty или Patreon, чтобы получать контент на канале регулярно
#coroutines

Coroutines under the hood

Разбор работы Coroutine под капотом, ведь как-то это магия должна работать на JVM 1.6
#serialization #kotlinx

Kotlinx.Serialization 1.3.0-RC
👉 Экспериментальная версия сериализации с и в IO потоки
👉 Возможность отдельно управлять сериализацией свойств в значение по умолчанию
👉 Возможность пропускать сериализацию свойств, значение который null
👉 Возможность использовать classDiscriminator отдельно для каждой иерархии
👉 Поддержка Java 9 модулей
👉 Поддержка Apple Silicon
🔨 Исправление багов и минорные улучшения
#coroutines

What is CoroutineContext and how does it work?

Неотъемлемой частью любой Coroutine является CoroutineContext, которые содержит различные элементы, влияющие на работу Coroutine. В статье рассказывают про них подробнее, но и официальная документация хороша
#kapt #ksp

Accelerated Kotlin build times with Kotlin Symbol Processing 1.0

Kotlin Symbol Processing - замена KAPT, которая быстрее и поддерживает не только JVM, но и Kotlin/JS и Kotlin/Native. Moshi и Room уже поддерживают KSP, очень жду когда Dagger подтянется
#js

Introducing the Kotlin/JS Inspection Pack: IR Migration Help, Quick-Fixes, and More

Новый плагин для Kotlin/JS - Kotlin/JS Inspection Pack, который содержит проверки и исправления для Koltin/JS
#ios #kmm

Build iOS apps using the Kotlin Multiplatform framework

Писать на Kotlin под Android просто, но вот с переходом на KMM и поддержкой iOS появляются новые вызовы. В статье автор разбирает как использовать общую часть на KMP в нативном iOS приложении
#опрос

Команда Kotlin работает над улучшением опыта авторов библиотек, и они хотят знать больше о реальных вариантах использования. Если вы работали над собственной библиотекой или планируете ее создать, поделитесь своим мнением, приняв участие в этом опросе.
#coroutines

Coroutines built-in support vs library

Kotlin Coroutines не являются полностью частью языка, а лишь имеют минимальную поддержку и большинство API являются часть библиотеки KotlinX Coroutines. В статье проводится сравнение
#appcode #ios #kmm

CocoaPods Support in the Kotlin Multiplatform Mobile Plugin for AppCode

Всё просто - теперь можно использовать Pod зависимости в shared модулях
#kmm

Sample the World of KMM

Если вам интересно изучать KMM или хотите посмотреть как это делают другие, то примеры - это хороший способ узнать путь других разработчиков. В статье рассказывается про примеры:
👉 D-KMP
👉 multiplatform-redux-sample
👉 people-in-space
👉 KMM production пример - RSS читалка
👉 Kamp-Kit
Всем привет. Хотел вам напомнить про несколько важных аспектов Android Broadcast.

👉 Есть чат для общения, где мы обсуждаем различные вопросы по Android разработке @android_broadcast_talks

👉 Android Broadcast - это некоммерческий проект. Весь контент, который я делаю бесплатен. Живёт проект за счёт рекламы и донатов. Я буду рад, если вы будете поддерживать проект регулярно, что позволит отказываться от рекламы. Сейчас у проекта 164 донатера, хотя ежемесячно контентом пользуются порядка 20 тыс человек. Даже минимальный донат (80 рос. руб. или 1$) - это уже много для меня. Сделать это можно на Boosty (лучше) или Patreon. Также можно сделать произвольный одноразовый взнос здесь.

👉 Один из вариантов поддержки - покупка мерча через androidbroadcaststore.by. Там есть классные майки и другой мерч.

Спасибо вам большое, ваша поддержка очень важна для будущего проекта, его развития и существования