Shape Composer – Figma плагин для экспорта векторных изображений в Compose Paths
- Плагин позволяет экспортировать векторные формы в Compose Shapes и Paths
- Это удобно, чтобы быстро генерировать нужные классы для кастомных кнопок и форм
- Плагин позволяет экспортировать векторные формы в Compose Shapes и Paths
- Это удобно, чтобы быстро генерировать нужные классы для кастомных кнопок и форм
Релиз Kotlin 1.7.20
- K2 компилятор стал ближе к стабильному релизу: завезли поддержку all-open, noarg, SAM, Lombok, AtomicFU и других компиляторных плагинов
- Новая модель управления памятью в Kotlin/Native включена по умолчанию
- Превью нового оператора для ренджей: ..<
- Generic inline классы в Kotlin/JVM
- Поддержка Gradle 7.1
- K2 компилятор стал ближе к стабильному релизу: завезли поддержку all-open, noarg, SAM, Lombok, AtomicFU и других компиляторных плагинов
- Новая модель управления памятью в Kotlin/Native включена по умолчанию
- Превью нового оператора для ренджей: ..<
- Generic inline классы в Kotlin/JVM
- Поддержка Gradle 7.1
Disposability, Testability, Readability
Разбор трех важных характеристик кода и принципов следования им:
🗑Disposability: готовность к изменениям требований
🐞Testability: возможность покрытия unit и integration тестами
👀Readability: простота для понимания
Разбор трех важных характеристик кода и принципов следования им:
🗑Disposability: готовность к изменениям требований
🐞Testability: возможность покрытия unit и integration тестами
👀Readability: простота для понимания
Видео Droidcon NY 2022
Все видео недавнего Droidcon появились в открытом доступе. Вот что точно стоит посмотреть:
🧬Demistifying Molecule
🤐Dynamic Code with Zipline
🧭Model-Driven Navigation with Compose
🐉Kotlin Adoption in the Giant Java Application (Meta)
🧱Keeping Your Team’s Gradle Builds in Shape
Все видео недавнего Droidcon появились в открытом доступе. Вот что точно стоит посмотреть:
🧬Demistifying Molecule
🤐Dynamic Code with Zipline
🧭Model-Driven Navigation with Compose
🐉Kotlin Adoption in the Giant Java Application (Meta)
🧱Keeping Your Team’s Gradle Builds in Shape
Мутационное тестирование в Kotlin
Мутационное тестирование – это техника, которая позволяет оценить качество ваших тестов. В чем суть – библиотека автоматически меняет что-то в вашем коде, а затем проверяет, среагировали ли тесты на это изменение.
Автор статьи рассказывает, как завести мутационное тестирование для Kotlin кода с помощью библиотеки PIT Mutation Testing.
Мутационное тестирование – это техника, которая позволяет оценить качество ваших тестов. В чем суть – библиотека автоматически меняет что-то в вашем коде, а затем проверяет, среагировали ли тесты на это изменение.
Автор статьи рассказывает, как завести мутационное тестирование для Kotlin кода с помощью библиотеки PIT Mutation Testing.
Medium
Mutation Testing in Kotlin
Today most of us know why testing is necessary in order to ensure the behavior of our code goes as expected, but how can we be sure that…
Поддержка Compose в Glide
- Glide – популярная библиотека для загрузки изображений с фокусом на перфоманс
- В последнем релизе библиотеки появилась экспериментальная интеграция с Compose
- Пример использования можно посмотреть в семпловом приложении
- Glide – популярная библиотека для загрузки изображений с фокусом на перфоманс
- В последнем релизе библиотеки появилась экспериментальная интеграция с Compose
- Пример использования можно посмотреть в семпловом приложении
Как писать плагины для дебаггера Flipper
- Flipper – дебаггер для мобильных приложений, разрабатываемый в Meta. Его главная фишка – расширяемость через плагины
- Плагины включают в себя клиентскую часть и модификацию десктоп приложения
- Пример такого плагина – вывод всех отправляемых приложением событий аналитики в удобную таблицу с фильтрацией и сортировкой
- Flipper – дебаггер для мобильных приложений, разрабатываемый в Meta. Его главная фишка – расширяемость через плагины
- Плагины включают в себя клиентскую часть и модификацию десктоп приложения
- Пример такого плагина – вывод всех отправляемых приложением событий аналитики в удобную таблицу с фильтрацией и сортировкой
Gradle Analytics Plugin
Gradle Analytics Plugin – плагин, генерирующий много различной аналитики по вашему билду:
⏱Время выполнения фаз билда
📊Количество файлов, строк кода и тестовое покрытие в разрезе по модулям
🧱Cache hit rate
🏎Parallel execution rate
🌳Граф зависимости модулей друг от друга
🔥Heatmap по частоте сборки отдельных модулей за определенный период времени
Gradle Analytics Plugin – плагин, генерирующий много различной аналитики по вашему билду:
⏱Время выполнения фаз билда
📊Количество файлов, строк кода и тестовое покрытие в разрезе по модулям
🧱Cache hit rate
🏎Parallel execution rate
🌳Граф зависимости модулей друг от друга
🔥Heatmap по частоте сборки отдельных модулей за определенный период времени
Nullability в Java и Kotlin
Команда Kotlin опубликовала новый гайд в документации, который подробно объясняет различия в работе с nullability в Java и Kotlin на примере частых операций.
Команда Kotlin опубликовала новый гайд в документации, который подробно объясняет различия в работе с nullability в Java и Kotlin на примере частых операций.
KMM вышел в Beta
Сегодня команда Kotlin официально объявила про переход Kotlin Multiplatform Mobile из Alpha в Beta статус. Вот почему это важно:
- Можно спокойно тащить в прод. До стабильного релиза больше не ожидается фундаментальных изменений, которые могут что-то сломать в вашем проекте, только багфиксы и улучшение UX.
- Android выпустили первые официальные мультиплатформенные Jetpack библиотеки: Collections и DataStore.
📹Детальное видео с анонсом и юзкейсами новых пользователей KMM
Сегодня команда Kotlin официально объявила про переход Kotlin Multiplatform Mobile из Alpha в Beta статус. Вот почему это важно:
- Можно спокойно тащить в прод. До стабильного релиза больше не ожидается фундаментальных изменений, которые могут что-то сломать в вашем проекте, только багфиксы и улучшение UX.
- Android выпустили первые официальные мультиплатформенные Jetpack библиотеки: Collections и DataStore.
📹Детальное видео с анонсом и юзкейсами новых пользователей KMM
This media is not supported in your browser
VIEW IN TELEGRAM
Обновилась документация по работе с изображениями в Compose
- Как загружать изображения из интернета
- Растровые изображения против векторных
- Material Icons
- Работа со свойствами Image Composable
- Custom painter objects
- Оптимизация перфоманса при работе с изображениями
- Как загружать изображения из интернета
- Растровые изображения против векторных
- Material Icons
- Работа со свойствами Image Composable
- Custom painter objects
- Оптимизация перфоманса при работе с изображениями
Релиз kotest 5.5.0
Kotest – популярный мультиплатформенный тестовый фреймворк. На днях вышла его новая версия:
- Новые матчеры:
- Улучшенна поддержка Arrow
Kotest – популярный мультиплатформенный тестовый фреймворк. На днях вышла его новая версия:
- Новые матчеры:
shouldBeCloseTo
, shouldMatch
, shouldMatchAll
, shouldMatchAny
- Поддержка тестов корутин в Kotlin/Native- Улучшенна поддержка Arrow
Новый rangeUntil оператор в Kotlin
В Kotlin 1.7.20 под флагом доступен новый оператор ..<, с помощью которого можно определить рендж, не включающий правую границу. Стабильная версия оператора подъедет где-то в районе Kotlin 1.9.
В Kotlin 1.7.20 под флагом доступен новый оператор ..<, с помощью которого можно определить рендж, не включающий правую границу. Стабильная версия оператора подъедет где-то в районе Kotlin 1.9.
YouTube
NEW OPERATOR in Kotlin (and true open-ended ranges)
The rangeUntil operator, or is a new way to create open-ended ranges in Kotlin. You might think of this new operator as just an alias for the long-existing “until” function in Kotlin, but that would mean missing out on some powerful new things that weren’t…
Выпуск подкаста «Запуск Завтра» про историю Kotlin с Андреем Бреславом
Если у вас есть свободные 40 минут, то очень рекомендую потратить их на этот подкаст. Андрей Бреслав, создатель Kotlin, очень бодро рассказывает про раннюю историю его разработки и то, как язык в итоге появился на Android.
Если у вас есть свободные 40 минут, то очень рекомендую потратить их на этот подкаст. Андрей Бреслав, создатель Kotlin, очень бодро рассказывает про раннюю историю его разработки и то, как язык в итоге появился на Android.
Миграция на Gradle 8.0
- В Gradle 8.0 задепрекейтят Transform API, который очень сильно влиял на время билда
- Вместо него предлагается использовать новые Artifacts API и Instrumentation API
- Artifacts API дает доступ к файлам и директориям, которые создаются в процессе сборки
- Instrumentation API дает доступ к анализу и изменениям скомпилированных классов
- Проверьте, что ваши плагины готовы к переезду на новые API, иначе не сможете мигрировать приложение на новый Gradle
- В Gradle 8.0 задепрекейтят Transform API, который очень сильно влиял на время билда
- Вместо него предлагается использовать новые Artifacts API и Instrumentation API
- Artifacts API дает доступ к файлам и директориям, которые создаются в процессе сборки
- Instrumentation API дает доступ к анализу и изменениям скомпилированных классов
- Проверьте, что ваши плагины готовы к переезду на новые API, иначе не сможете мигрировать приложение на новый Gradle
Android Developers Blog
Prepare your Android Project for Android Gradle plugin 8.0 API changes
To improve build speed and provide stable APIs, the Transform APIs will be removed in Android Gradle plugin (AGP) version 8.0.
Серия статей про Kotlin Multiplatform от Premise
Команда Premise, работающая с KMM уже полтора года, опубликовала серию статей про свой опыт с упором на сценарий интеграции в существующие приложения:
🤔Детальный разбор того, как они используют KMM: локальное окружение, CI/CD, обучение команды, эксперименты
🧱Структура и настройка проекта
🚰CI pipeline на GitHub Actions
Команда Premise, работающая с KMM уже полтора года, опубликовала серию статей про свой опыт с упором на сценарий интеграции в существующие приложения:
🤔Детальный разбор того, как они используют KMM: локальное окружение, CI/CD, обучение команды, эксперименты
🧱Структура и настройка проекта
🚰CI pipeline на GitHub Actions
Подробный разбор контекстных ресиверов
В Kotlin 1.6.20 появился прототип новой крупной языковой фичи – контекстные ресиверы. Ее основная задача – заменить собой extension functions в тех случаях, когда их не хватает.
Marcin Moskala написал самую подробную статью про фичу, что я видел, с деталями про кейсы использования и ограничения.
В Kotlin 1.6.20 появился прототип новой крупной языковой фичи – контекстные ресиверы. Ее основная задача – заменить собой extension functions в тех случаях, когда их не хватает.
Marcin Moskala написал самую подробную статью про фичу, что я видел, с деталями про кейсы использования и ограничения.