Курс от Google про то, как правильно писать сообщения об ошибках
- Курс сфокусирован на developer-facing ошибках, и пригодится разработчикам, которые разрабатывают библиотеки и тулинг
- Главная мысль курса – сообщения об ошибках должны отвечать на два вопроса: что пошло не так и как пользователю исправить проблему
- Курс сфокусирован на developer-facing ошибках, и пригодится разработчикам, которые разрабатывают библиотеки и тулинг
- Главная мысль курса – сообщения об ошибках должны отвечать на два вопроса: что пошло не так и как пользователю исправить проблему
Penpot – open source аналог Figma
- Если вас беспокоит будущее Figma после покупки Adobe, или вы просто хотите попробовать бесплатнуб альтернативу – посмотрите на Penpot
- Помимо стандартных дизайнерских возможностей по работе с графикой и текстом, Penpot умеет создавать интерактивные мокапы приложений и поддерживает коллаборативную работу
- Если вас беспокоит будущее Figma после покупки Adobe, или вы просто хотите попробовать бесплатнуб альтернативу – посмотрите на Penpot
- Помимо стандартных дизайнерских возможностей по работе с графикой и текстом, Penpot умеет создавать интерактивные мокапы приложений и поддерживает коллаборативную работу
Работа над перфомансом и стабильностью Lyft
- Команда перфоманса в Lyft работает над тремя основными направлениями: стабильность, время старта и скорость рендеринга
- Самым приоритетным направлением стало исправление крешей: топ-10 крешей отвечали за 53% всех падений приложения
- Основные причины топовых крешей: сторонние SDK, Out of memory, Native crashes
- Команда перфоманса в Lyft работает над тремя основными направлениями: стабильность, время старта и скорость рендеринга
- Самым приоритетным направлением стало исправление крешей: топ-10 крешей отвечали за 53% всех падений приложения
- Основные причины топовых крешей: сторонние SDK, Out of memory, Native crashes
Jake Wharton про Java 19
Три года назад на KotlinConf Jake Wharton делал доклад про будущее Java и про фичи, которые нужно сделать, чтобы догнать Kotlin. На прошлой неделе вышла Java 19, и он подбил статус своих прогнозов:
🔴Local methods
🟢Multiline string literals (релиз в Java 15)
🟢Records (релиз в Java 16)
🟢Sealed hierarchies (релиз в Java 17)
🟢Type patterns (релиз в Java 16)
🟠Record patterns (превью в Java 19)
🟡Virtual threads (превью в Java 19)
Три года назад на KotlinConf Jake Wharton делал доклад про будущее Java и про фичи, которые нужно сделать, чтобы догнать Kotlin. На прошлой неделе вышла Java 19, и он подбил статус своих прогнозов:
🔴Local methods
🟢Multiline string literals (релиз в Java 15)
🟢Records (релиз в Java 16)
🟢Sealed hierarchies (релиз в Java 17)
🟢Type patterns (релиз в Java 16)
🟠Record patterns (превью в Java 19)
🟡Virtual threads (превью в Java 19)
Jake Wharton
Report card: Java 19 and the end of Kotlin – Jake Wharton
Пример использования multipreview annotations в Now in Android
- Compose позволяет задавать кастомные конфигурации для Preview аннотаций. Они позволяют быстро посмотреть, как будет выглядеть компонент с разными настройками
- В Compose 1.2.0 завезли поддержку Multipreview аннотаций. Благодаря ей можно скомбинировать несколько Preview с разными конфигурациями в одну аннотацию
- По ссылке – PR в приложение Now in Android, в котором Multipreview аннотации используются для добавления поддержки светлой и темной темы
- Compose позволяет задавать кастомные конфигурации для Preview аннотаций. Они позволяют быстро посмотреть, как будет выглядеть компонент с разными настройками
- В Compose 1.2.0 завезли поддержку Multipreview аннотаций. Благодаря ей можно скомбинировать несколько Preview с разными конфигурациями в одну аннотацию
- По ссылке – PR в приложение Now in Android, в котором Multipreview аннотации используются для добавления поддержки светлой и темной темы
Ворнинги Android Lint и Detekt в GitHub PR
- В GitHub появилась фича code scanning – возможность выводить ворнинги и ошибки CI в комментарии к PR без использования ботов и сторонних инструментов
- Для этого надо сгенерировать специальный файл с отчетом и загрузить его с помощью GitHub Action
- В статье разбирается, как сгенерировать такой файл для Android Lint и Detekt
- В GitHub появилась фича code scanning – возможность выводить ворнинги и ошибки CI в комментарии к PR без использования ботов и сторонних инструментов
- Для этого надо сгенерировать специальный файл с отчетом и загрузить его с помощью GitHub Action
- В статье разбирается, как сгенерировать такой файл для Android Lint и Detekt
Новая Android Studio Canary – Flamingo
- Flamingo работает поверх IntelliJ Platform 2022.2.1
- В ней исправлено много багов, связанных с импортом КММ проектов
- Одна из ключевых фичей – Compose Composition Tracing, интеграция composables с system trace profiler
- Полный список исправлений
- Flamingo работает поверх IntelliJ Platform 2022.2.1
- В ней исправлено много багов, связанных с импортом КММ проектов
- Одна из ключевых фичей – Compose Composition Tracing, интеграция composables с system trace profiler
- Полный список исправлений
Различия в расчете 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 по частоте сборки отдельных модулей за определенный период времени