Android Good Reads
3.88K subscribers
344 photos
13 videos
1 file
2K links
Самые интересные статьи, видео и новости, связанные с Android разработкой. Не больше трёх материалов в день.

Автор канала: @Lamprof

Размещение рекламы: @tanyasanovna
Download Telegram
Новый UI IDEA доступен в 2022.3 EAP

- Последние месяцы JetBrains много тизерил обновленный UI IDEA: легковесный, простой, без кучи лишних кнопок и панелей
- Теперь его могут попробовать все желающие, поставив себе EAP версию IDEA и включив новый UI в настройках
Курс от Google про то, как правильно писать сообщения об ошибках

- Курс сфокусирован на developer-facing ошибках, и пригодится разработчикам, которые разрабатывают библиотеки и тулинг
- Главная мысль курса – сообщения об ошибках должны отвечать на два вопроса: что пошло не так и как пользователю исправить проблему
Penpot – open source аналог Figma

- Если вас беспокоит будущее Figma после покупки Adobe, или вы просто хотите попробовать бесплатнуб альтернативу – посмотрите на Penpot
- Помимо стандартных дизайнерских возможностей по работе с графикой и текстом, Penpot умеет создавать интерактивные мокапы приложений и поддерживает коллаборативную работу
Работа над перфомансом и стабильностью Lyft

- Команда перфоманса в 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)
Пример использования multipreview annotations в Now in Android

- 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
Новая Android Studio Canary – Flamingo

- 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 такого ограничения нет.
Koreography – Kotlin DSL для описания серии анимаций

- Koreography позволяет определять блоки последовательных и параллельных Compose анимаций
- Под капотом все работает на корутинах
Опыт работы с Compose for iOS

- TouchLab написали приложение для Droidcon, пошарив весь код между iOS и Android с помощью KMM и Compose
- Compose for iOS еще совсем-совсем сырой, но критичных проблем команда не встретила
Shape Composer – Figma плагин для экспорта векторных изображений в Compose Paths

- Плагин позволяет экспортировать векторные формы в Compose Shapes и Paths
- Это удобно, чтобы быстро генерировать нужные классы для кастомных кнопок и форм
Релиз Kotlin 1.7.20

- K2 компилятор стал ближе к стабильному релизу: завезли поддержку all-open, noarg, SAM, Lombok, AtomicFU и других компиляторных плагинов
- Новая модель управления памятью в Kotlin/Native включена по умолчанию
- Превью нового оператора для ренджей: ..<
- Generic inline классы в Kotlin/JVM
- Поддержка Gradle 7.1
Disposability, Testability, 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
Мутационное тестирование в Kotlin

Мутационное тестирование – это техника, которая позволяет оценить качество ваших тестов. В чем суть – библиотека автоматически меняет что-то в вашем коде, а затем проверяет, среагировали ли тесты на это изменение.

Автор статьи рассказывает, как завести мутационное тестирование для Kotlin кода с помощью библиотеки PIT Mutation Testing.
Поддержка Compose в Glide

- Glide – популярная библиотека для загрузки изображений с фокусом на перфоманс
- В последнем релизе библиотеки появилась экспериментальная интеграция с Compose
- Пример использования можно посмотреть в семпловом приложении
Как писать плагины для дебаггера Flipper

- Flipper – дебаггер для мобильных приложений, разрабатываемый в Meta. Его главная фишка – расширяемость через плагины
- Плагины включают в себя клиентскую часть и модификацию десктоп приложения
- Пример такого плагина – вывод всех отправляемых приложением событий аналитики в удобную таблицу с фильтрацией и сортировкой