Опубликовали первую бету Kotlin 1.8.0. Пока там всякие обновления поддержки новых тулов и багфикс. Ждем анонса где расскажут больше
GitHub
Release Kotlin 1.8.0-Beta · JetBrains/kotlin
1.8.0-Beta
Android
KT-53013 Increase AGP compile version in KGP to 4.1.3
KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder
Backend. Native. Debug
KT-53561...
Android
KT-53013 Increase AGP compile version in KGP to 4.1.3
KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder
Backend. Native. Debug
KT-53561...
🔥23🤔2👍1
Ну вот и подробности новинок в версии Kotlin 1.8.0:
👉 Удаляют старый backend JVM компилятора. Не понял значит ли это стабилизацию K2, так как явно про него не говорят
👉 Поддержка bytecode Java 19
👉 Поддержка XCode 14
👉 Поддержка Gradle 7.3
👉 Новая структура source set для Android в KMM (включается флагом)
👉 Удаляют старый backend JVM компилятора. Не понял значит ли это стабилизацию K2, так как явно про него не говорят
👉 Поддержка bytecode Java 19
👉 Поддержка XCode 14
👉 Поддержка Gradle 7.3
👉 Новая структура source set для Android в KMM (включается флагом)
👍15🔥3
5 ways to deal with KMM errors (4 мин)
Что может пойти не так при работе с KMM рассказывает Леша Гладков и дает совет
👉 Используйте несколько IDE. Переключайтесь между IDEA и Android Studio
👉 Компиляция кода зачастую помогает убрать красноту в IDE
👉 Версии библиотеки должны уметь работа с версий Kotlin
👉 Используйте новую модель памяти Kotlin/Native. Для этого нужен Kotlin 1.7.20 и новее
👉 Ранние версии IDE лучше работают с KMM плагином
👉 Сбросить кэш и перезапустить IDE тоже работает
Что может пойти не так при работе с KMM рассказывает Леша Гладков и дает совет
👉 Используйте несколько IDE. Переключайтесь между IDEA и Android Studio
👉 Компиляция кода зачастую помогает убрать красноту в IDE
👉 Версии библиотеки должны уметь работа с версий Kotlin
👉 Используйте новую модель памяти Kotlin/Native. Для этого нужен Kotlin 1.7.20 и новее
👉 Ранние версии IDE лучше работают с KMM плагином
👉 Сбросить кэш и перезапустить IDE тоже работает
👍10🌚1
How to test intermediate steps in suspending functions (6 мин)
Руководство как можно управлять выполнением suspend функций в тестах на основе нового API для тестов из KotlinX Coroutines 1.5
#coroutines #testing
Руководство как можно управлять выполнением suspend функций в тестах на основе нового API для тестов из KotlinX Coroutines 1.5
#coroutines #testing
👍13❤1
Kotlin Coroutines use cases for Data/Adapters Layer
Использование корутин в Data слое: адаптеры для callback подходов, библиотеки с поддержкой из коробки и блокирующие функции. Ну и как же без Flow
#ocorutines
Использование корутин в Data слое: адаптеры для callback подходов, библиотеки с поддержкой из коробки и блокирующие функции. Ну и как же без Flow
#ocorutines
👍22🔥1
Forwarded from Android Broadcast (Кирилл Розов)
❗ В Kotlin 1.8 будут полностью отключены Kotlin Android Extensions. Они включали в себя синтетики и генерацию parcelable. Первый заменяем на View Binding, а второй вынесли в отдельный плагин
Полное руководство по миграции найдете тут
Полное руководство по миграции найдете тут
👍29
В Kotlin блоге вышли результаты опроса разработчиков, кто использует Kotlin. Краткие результаты:
👉 Самим языком все довольны
👉 Инструменты для сборки печаль (2/3 пользователей недовольны)
👉 Скорость работы IDEA и Android Studio с Kotlin огорчает (каждый второй недоволен)
👉 Стандартными библиотеками довольно большинство разработчиков
Команда рассказывает что сделал много усилий по ускорению сборки и работы IDE в Kotlin 1.7, K2 компилятор позволит решить еще ряд проблем, ну и в целом скорость сборки и IDE - задача с высоком приоритетом для разработчиков языка
Вы заметили за последние 2 года улучшения в скорости работы Kotlin?
👉 Самим языком все довольны
👉 Инструменты для сборки печаль (2/3 пользователей недовольны)
👉 Скорость работы IDEA и Android Studio с Kotlin огорчает (каждый второй недоволен)
👉 Стандартными библиотеками довольно большинство разработчиков
Команда рассказывает что сделал много усилий по ускорению сборки и работы IDE в Kotlin 1.7, K2 компилятор позволит решить еще ряд проблем, ну и в целом скорость сборки и IDE - задача с высоком приоритетом для разработчиков языка
Вы заметили за последние 2 года улучшения в скорости работы Kotlin?
👍24😁3
Вышел Detekt 1.22.0
🎉 16 новых правил
🎉 2 новых набора правил
🔥 Detekt Marketplace - сборник правил от сторонних разработчик. Можете делиться там своими
👉 Поддержка JVM toolchain
👉 Улучшение работы с выводом типов и управлением конфигурацией
🗑️ Удалена чсть правил, а другие стали depracated. Руководство по миграции здесь
👉 Требуется Gradle 6.7.1 и выше
👉 Исправление багов
🎉 16 новых правил
🎉 2 новых набора правил
🔥 Detekt Marketplace - сборник правил от сторонних разработчик. Можете делиться там своими
👉 Поддержка JVM toolchain
👉 Улучшение работы с выводом типов и управлением конфигурацией
🗑️ Удалена чсть правил, а другие стали depracated. Руководство по миграции здесь
👉 Требуется Gradle 6.7.1 и выше
👉 Исправление багов
🔥12😁1
Вы встретили Kotlin волшебника и он предлагает сделать вам выбор
Anonymous Poll
33%
Ускорить работу IDE с Kotlin (без скорости компиляции)
36%
Ускорить работу компилятора (но писать код в IDE точно лучше не станет)
11%
Заплачу от безысходности
21%
Смотрю результаты
👍2🍾1
Кодогенерация (а значит kapt) - это уже неотъемлемая часть современных Android проектов. Мы знаем что это медленно и затратно по ресурсам.
Вопрос "как глубоко днище потребления ресурсов kapt-ом" раскрывается в статье. На примере проекта автора - чуть меньше половины времени всей сборки - это генерация кода.
Молимся на Kotlin Symbol Processing (KSP)
Вопрос "как глубоко днище потребления ресурсов kapt-ом" раскрывается в статье. На примере проекта автора - чуть меньше половины времени всей сборки - это генерация кода.
Молимся на Kotlin Symbol Processing (KSP)
👍12🤯1
Какой из этих вызов валидный (функция выше)?
Anonymous Quiz
9%
share("...", ios = true, android = true, true, false)
25%
share("...", android = true, true, ios = false, false)
14%
share(post = "...", android = true, ios = false, true, notify = false)
52%
share(post = '...', android = true, kotlin = false, ios = false)
🤯44👍25🤔23😁10
Kotlin Multiplatform Broadcast
Какой из этих вызов валидный (функция выше)?
Пояснение ответа:
В Kotlin уже давно можно делать именованные аргументы. Раньше так можно было поменять их порядок, а позже стало возможно делать именованные аргумент как пояснение только для отдельных аргументов при условии что их порядок передачи не меняется.
👍59🤔5❤2⚡1
Kotlin Coroutines use cases for Presentation/API/UI Layer
Разбор популярных способов запуска корутин в Android приложения и не только
#coroutines
Разбор популярных способов запуска корутин в Android приложения и не только
#coroutines
👍10⚡2👎2
Samples of Using KMMBridge
KMMBridge - это Gradle плагин, который упрощает процесс публикации KMP SDK бинарников в репозиторий. Это упрощает iOS разработчикам использованием KMP SDK без необходимости установки инструментария Kotlin или собирать Kotlin код каждый раз. В статье приводится пример как сделать настройку плагина в проекте.
#kmp
KMMBridge - это Gradle плагин, который упрощает процесс публикации KMP SDK бинарников в репозиторий. Это упрощает iOS разработчикам использованием KMP SDK без необходимости установки инструментария Kotlin или собирать Kotlin код каждый раз. В статье приводится пример как сделать настройку плагина в проекте.
#kmp
🔥15👎2👍1
Как замедлить выполнение корутины? (EN) Да, да! Все верно. Тормозить код тоже кому-то надо, чтобы защититься от "timing attack"
"timing attack" - это подход, когда атакующий на основе длительности выполнения запросов выявляет уязвимости
#coroutines
"timing attack" - это подход, когда атакующий на основе длительности выполнения запросов выявляет уязвимости
#coroutines
🤔11👍2👌2
Какое исключение выбросит вызов checkNotNull(null)
Anonymous Quiz
10%
RuntimeException
26%
IllegalStateException
35%
NullPointerException
29%
IllegalArgumentException
🔥37👍10🍓2❤1
Довольно хороший разбор Kotlin Symbol Processing (KSP) на русском:
👉 ограничения
👉 принципы работы
👉 запуск
👉 как происходит генерация кода
👉 инкрементальная генерация
👉 несколько раундов
👉 пример реализации собственного генератора кода
#ksp
👉 ограничения
👉 принципы работы
👉 запуск
👉 как происходит генерация кода
👉 инкрементальная генерация
👉 несколько раундов
👉 пример реализации собственного генератора кода
#ksp
👍33
Вышел Koin 3.3.1 с исправлениями багов в Android
❤🔥24
Вышел KtLint 0.48.0
👉 Переписали правило indent (оступы) и теперь оно должно работать нормально
👉 Изменили пакеты классов (кто завязывался на API могут сломаться)
👉 Обновления в работе с .editorconfig
👉 Исправление багов
👉 Переписали правило indent (оступы) и теперь оно должно работать нормально
👉 Изменили пакеты классов (кто завязывался на API могут сломаться)
👉 Обновления в работе с .editorconfig
👉 Исправление багов
🔥12