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 (не) против Java: особенности компиляции в байткод (6м) - статья со сравнением языков. Тема скорее кликбейтная и холиварная, чем по-настоящему содержательная: сегодня существенных различий между Java и Kotlin нет.
19👍1
‼️ Koltin 2.0 готовится к релизу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥163🤯26🎉83
Статья (EN, 21м) с описанием подходов безопасного обновления состояния из нескольких потоков. Полезно всем тем кто использует MVI и пишет на Compose

#архитектура @kotlin_broadcast
👍114
Костя Цховребов сделал Gradle плагин для анализа структуры KMP проектов и визуализации в виде картинки.

Репозиторий с кодом тут

#gradle @kotlin_broadcast
🔥38🤯10👍9
Пример добавления собственного источника загрузки изображение в Coil - популярную библиотеку для загрузки изображений

#картинки #coil
👍20
KStore - простая KMP библиотека, которая помогает сохранять и восстанавливать объекты с/на диск с использованием kotlinx.coroutines, kotlinx.serialization and Okio

// Описываем сериализуемый объект
@Serializable data class Pet(val name: String, val age: Int)

// Создаёте хранилище
val store: KStore<Pet> = storeOf(file = "path/to/my_cats.json".toPath())

// Делаем операции
val mylo: Pet? = store.get()
store.set(mylo)
store.update { pet: Pet? ->
pet?.copy(age = pet.age + 1)
}
store.delete()

// Получаем обновления
val pets: Flow<Pet?> = store.updates


#android #ios #desktop #jvm #js
🔥30👍4
Kotlin 2.0 уже совсем скоро выйдет и JetBrains во всю готовится к анонсу стабильной версии. Выпустили руководство по миграции на K2 компилятор и изменения в работе языка:
👉 open val свойства с backieng field должны быть сразу же при объявление, раньше можно было сделать в init блоке
👉 Объявление set методы для свойства теперь будет приводить к ошибке
👉 Поменялись требования к подключение типов из модулей
👉 Улучшения интеропа с Java
👉 Исправлено много багов из Kotlin 1.*

#k2
👍37
Также руководство полезно тем что рассказывает про изменения Kotlin 2.0 компилятора:
👉 Что такое Frontend и Backend компилятора
👉 Улучшения в выводе типов (type inference)
👉 Упрощения добавления новых фичей по все поддерживаемые таргеты
👉 Скорость компиляции выросла
👉 Работа IDE и автокомплит стали быстрее и лучше

Попробовать Kotlin уже можно прямо сейчас по инструкции

#k2
👍22
Продолжение серии статей про использование Kodein. В третьей и заключительной части (9м) автор рассказывает про то как следить за целостностью графа и не получить случайного крэша в runtime. В статье освещаются подходы обеспечения проверки графа через использование только Injection подхода и написание Unit тестов на DI граф

#di #kodein
Пишите ли вы Koltin Multiplatform в продакшен проектах?
Anonymous Poll
20%
Да
57%
Нет
7%
Пробовали, но не пошло в прод
3%
Что это?
14%
Не участвую в опросе
👍6🤯6🔥1
Touchlab выпустила статью c рекомендациями по ускорению сборки KMP проектов:
🔥 Указывайте точный таск для сборки, а не build, который соберет всё
🔥 Изучайте логи и ищите странности
🔥 Swift Package Manager и XCFrameworks: что выбрать?
🔥 Не делайте сборок для iOS симуляторов на CI

Как по мне, все рекомендации имеют базовый характер и уж совсем для тех кто не имеет опыта с Gradle и разработкой

#сборка #gradle #kmp
👍11🔥2
В официально документации от JetBrains появилось руководство "Create a multiplatform app using Ktor and SQLDelight" - как создавать мультиплатформенное приложение с Ktor в качестве сетевого стека, а SQLDelight - как базу данных

#kmp
🔥58👍7
Разбор (EN, 3m) реализации паттерна "Mediator" на Kotlin. Он применяется для упрощения взаимодействия между объектами

#архитектура
👍17
Меньше месяца осталось до фестиваля KODE Waves. Накидайте огоньков если ждете фест 🔥

Сегодня знакомим вас со спикером Кириллом Розовым.
Кирилл Android-разработчик, автор и создатель Telegram и YouTube-канала «Android Broadcast», герой подкастов, автор Хабра и докладчик самых известных IT-конференций.


Кирилл уже пробовал заглянуть в будущее и поразмышлять о том, что будет с IT в России через 5 лет. Доклад “Мобильной разработки не будет через 5 лет” вызвал дискуссию на Mobius, а затем и на Хабре:

“Будут оставаться старые устройства, будут появляться новые, и вам нужно будет адаптироваться под них, чтобы удовлетворять всех пользователей. Что будет через пять лет?
Поддержка нескольких мобильных сервисов.
Смартфоны в текущем виде начнут вымирать.
Смартопланшеты: складные устройства, несколько экранов, новые форматы.
Взаимодействие голосом.
Унификация разработки — Kotlin Multiplatform и Flutter.
Мобильные приложения сквозь все устройства и платформы: смартфоны, планшеты, складные, декстопы, веб, очки.”


С выступления прошло почти 3 года, часть гипотез Кирилла подтвердились, а мы позвали его на KODE Waves, чтобы сново попробовать заглянуть в будущее IT-сферы.

На фестивале он расскажет о преимуществах использования Kotlin Multiplatform и Compose для создания универсального рабочего мессенджера TiMe. Эти инструменты позволяют сократить время разработки, снизить затраты и обеспечить последовательное поведение пользовательского интерфейса и логических взаимодействий на разных платформах.

Узнать больше о разработке универсальных рабочих мессенджеров можно на фестивале KODE Waves, присоединяйтесь к фестивалю вместе с Кириллом! 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍4🤯3
Неофициальное опенсорс SDK для Firebase на Kotlin с поддержкой Android, iOS, Desktop и Web. Какие особенности реализации:
👉 Не брали за основу Java SDK
🔥 Все на корутинах (suspend и Flow)
🔥 KotlinX Serialization для сохранения/записи данных в Firebase
🔥 Аргументы по умолчанию там где это возможно
👉 Инфиксная нотация для API
👉 Перегруженные операции

#firebase #android #ios #desktop #web @kotlin_broadcast
👍26🔥93
Разбор (4м) паттерна Chain of Responsility, - представляет собой поведенческий паттерн проектирования, который позволяет передавать запросы пло цепочке обработчиков. Каждый обработчик в цепочке решает, может ли он обработать запрос или должен передать его следующему обработчику.

#архитектура
👍14