Различия в расчете corner radius в Android и iOS
- Если в Android выставить квадрату шириной 40dp corner radius 30dp, то он будет выглядеть в точности, как corner radius 20dp
- В iOS такого не происходит, и с повышением значения corner radius форма квадрата продолжает меняться
- Так происходит потому, что в Android есть внутреннее ограничение на то, что corner radius не может быть больше, чем половина самой короткой стороны фигуры. В iOS такого ограничения нет.
- Если в Android выставить квадрату шириной 40dp corner radius 30dp, то он будет выглядеть в точности, как corner radius 20dp
- В iOS такого не происходит, и с повышением значения corner radius форма квадрата продолжает меняться
- Так происходит потому, что в Android есть внутреннее ограничение на то, что corner radius не может быть больше, чем половина самой короткой стороны фигуры. В iOS такого ограничения нет.
Koreography – Kotlin DSL для описания серии анимаций
- Koreography позволяет определять блоки последовательных и параллельных Compose анимаций
- Под капотом все работает на корутинах
- Koreography позволяет определять блоки последовательных и параллельных Compose анимаций
- Под капотом все работает на корутинах
GitHub
GitHub - sagar-viradiya/koreography: A light weight Compose Animation library to choreograph low level Animation API through Kotlin…
A light weight Compose Animation library to choreograph low level Animation API through Kotlin DSL. - sagar-viradiya/koreography
Опыт работы с Compose for iOS
- TouchLab написали приложение для Droidcon, пошарив весь код между iOS и Android с помощью KMM и Compose
- Compose for iOS еще совсем-совсем сырой, но критичных проблем команда не встретила
- TouchLab написали приложение для Droidcon, пошарив весь код между iOS и Android с помощью KMM и Compose
- Compose for iOS еще совсем-совсем сырой, но критичных проблем команда не встретила
touchlab.co
Compose UI for iOS
While Compose for iOS is not production ready yet and may never fully replace native iOS UI, it’s definitely worth it to try it out.
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.