Пример миграции (EN, 6 мин, без VPN) с обычного использова Koin на Koin Annotations - генерацию модулей на основе KSP
👍20
Forwarded from Compose Broadcast (Кирилл Розов)
This media is not supported in your browser
VIEW IN TELEGRAM
В Haze добавили поддержку WebAssembly. Получилось очень просто добавить к уже готовой реализации Compose iOS и Desktop на JVM
#sample #wasm @compose_broadcast
#sample #wasm @compose_broadcast
🔥17
Вчера на собеседование возникло много вопросов касательно Nothing и я решил описать полный правильный ответ на этот вопрос. Статья для патронов на Boosty
👍20❤3
В Kotlin есть возможность уменьшить количество занимаемой памяти объектами с помощью value классов и пометкой их как @JvmInline. Например, так реализован класс Color в Compose, чтобы не создавать обертку над хранимым в long значении. Рекомендую вам ознакомиться с документацией и использовать данный подход в Kotlin/JVM
👍75
Monarch - небольшая мультиплатформенная библиотека для работы с feature флагами
👍17❤1
Опубликовали план развития Ktor на 2024:
👉 Плагин OpenTelemetry
👉 Поддержка gRPC на сервере и клиенте
👉 Миграция на kotlinx-io в Ktor 3.0
👉 Поддержка управления транзакциями в БД
👉 Упрощенный DI в Ktor Server
👉 Улучшение документации
👉 Сторонние плагины Ktor будут приниматься и предлагаться при создании нового Ktor проекта через Web
👉 CLI Tool для Ktor
#ktor
👉 Плагин OpenTelemetry
👉 Поддержка gRPC на сервере и клиенте
👉 Миграция на kotlinx-io в Ktor 3.0
👉 Поддержка управления транзакциями в БД
👉 Упрощенный DI в Ktor Server
👉 Улучшение документации
👉 Сторонние плагины Ktor будут приниматься и предлагаться при создании нового Ktor проекта через Web
👉 CLI Tool для Ktor
#ktor
👍39❤6
Пример использования value классов, чтобы сделать проверки типов строже, но без значительного эффекта на работу кода. Подробности тут (EN, 2 мин)
🔗 Ссылка без VPN
🔗 Ссылка без VPN
❤23👍15🔥8
Kotlin's JDK release compatibility flag - статья о том как можно спокнуться о том как если не проставить везде правильную версию JDK (
Рекомендация - используйте Gradle Toolchain (спорно, и ждем пояснений в следующей статье)
#jvm
-source
, -target
, и -bootclasspath
), то можно получить креш в проде.Рекомендация - используйте Gradle Toolchain (спорно, и ждем пояснений в следующей статье)
#jvm
❤12👍2
Forwarded from Android Broadcast (Кирилл Розов)
На моём Boosty вы сможете найти лучшие практики и лайфхаки по использованию разных API:
👉 Как ускорить получение зависимостей из Dagger графа
👉 Делегаты классов в Kotlin при миграции между разными API
👉 Как не дать запуститься Coroutine больше одного раза. Решение в лоб и красиво
Все это доступно по подписке за 300 рублей в месяц и даже больше контента: База Знаний, эксклюзивные видео, ранний доступ, закрытый чат и много других преимуществ!
#AndroidBroadcast #Boosty
👉 Как ускорить получение зависимостей из Dagger графа
👉 Делегаты классов в Kotlin при миграции между разными API
👉 Как не дать запуститься Coroutine больше одного раза. Решение в лоб и красиво
Все это доступно по подписке за 300 рублей в месяц и даже больше контента: База Знаний, эксклюзивные видео, ранний доступ, закрытый чат и много других преимуществ!
#AndroidBroadcast #Boosty
👍5🤯2🔥1
Используете Dispatchers.Main.immediate ?
Anonymous Poll
30%
Да
31%
Не знаю про такой
34%
Нет
6%
Не участвую
По умолчанию Dispatchers.Main откладывает выполнение кода в очередь, даже если вызов корутины был с Main потока. Dispatchers.Main.immediate делает проверку происходит ли выполнение на главном потоке и если да - сразу выполняет код корутины.
✅ В большинстве случаев для выполнения операции на главном/UI потоке стоит использовать именно immediate Dispatcher. Например, все CoroutineScope из Jetpack Lifecycle и ViewModel используют именно его
Больше подробностей в статье (ссылка без VPN)
#coroutines
✅ В большинстве случаев для выполнения операции на главном/UI потоке стоит использовать именно immediate Dispatcher. Например, все CoroutineScope из Jetpack Lifecycle и ViewModel используют именно его
Больше подробностей в статье (ссылка без VPN)
#coroutines
👍67💯8🎉1
Forwarded from Android Broadcast (Кирилл Розов)
Обновления Lifecycle.2.8.0-alpha03 заслуживают отдельного поста
👉 ViewModel.viewModelScope теперь можно перегрузить через конструктор. Сможете свои параметры CoroutineContext задать
👉 Артефакт
👉 Прошла миграция с Java class на Kotlin KClass
#jetpackupdate #kmp #jetpack #viewmodel
👉 ViewModel.viewModelScope теперь можно перегрузить через конструктор. Сможете свои параметры CoroutineContext задать
👉 Артефакт
lifecycle-viewmodel
теперь мультиплатформенный, а также все API в них ViewModel
, ViewModelStore
, ViewModelStoreOwner
, и ViewModelProvider
👉 Прошла миграция с Java class на Kotlin KClass
#jetpackupdate #kmp #jetpack #viewmodel
👍32🔥5
Приложение-словарь на Kotlin Multiplatform и Compose Mltiplatform для Android и iOS
🔗 Исходники на GitHub
🔗 Приложение в Google Play
🔗 Приложение в App Store
#пример
🔗 Исходники на GitHub
🔗 Приложение в Google Play
🔗 Приложение в App Store
#пример
🔥15👍12❤3
На днях вышел Gradle 8.7 и нтузиаст решил на примере проекта Now In Android оценить влияние версий Gradle на скорость компиляции проекта. По итогу время сборки осталось +- таким же, а вот расход памяти немного увеличился. Подробности читайте тут
#gradle #performance
#gradle #performance
🤯14🔥3👍2🎉2