Рад что знаком с Аней и эксперты из РУ сообщества выступают на больших каналах технологих. Так держать!
https://www.youtube.com/watch?v=JtUJc4WYObo
https://www.youtube.com/watch?v=JtUJc4WYObo
YouTube
Dependency Injection in Kotlin Multiplatform Mobile projects | KMM Beta
To organize an effective code base, it is really important to connect and configure the relations between the app’s components correctly. The easiest and most common approach is the Dependency Injection pattern. With Kotlin Multiplatform projects, finding…
👍32❤5🔥3😁3
Properties should represent state, not behavior
В Kotlin property - это не аналог Java поля. В Kotlin property это специальный метод, который может выполнять логику, а не просто отдавать значение. Автор делится тем когда стоит выбирать свойство, а когда использовать функции в Kotlin.
В Kotlin property - это не аналог Java поля. В Kotlin property это специальный метод, который может выполнять логику, а не просто отдавать значение. Автор делится тем когда стоит выбирать свойство, а когда использовать функции в Kotlin.
👍8🤔2
Announcing Multiplatform Paging
Cash App сделали мультиплатформенную версию AndroidX Paging. Сделана поддержка iOS и Android. Исходники библиотеки найдете здесь
Cash App сделали мультиплатформенную версию AndroidX Paging. Сделана поддержка iOS и Android. Исходники библиотеки найдете здесь
👍18🤔1
Опубликовали первую бету 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