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

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

Размещение рекламы: @tanyasanovna
Download Telegram
Релиз Jetpack Compose 1.2

- Новые API для работы с Grid вышли из Experimental и стали стабильными
- WindowInsets для определения разных отступов на девайсе
- Поддержка nested scroll из коробки
- Easing curves для анимаций
- Новые экспериментальные фичи: LazyLayout, загружаемые шрифты, много фич по работе с текстом

А кроме этого, стал стабильным и Compose for Wear OS 1.0.
Обновился роадмап разработки Compose

Основной фокус следующего релиза будет на:
🏎 Перфомансе
🧐 Поддержке advanced кейсов
🎨 Компонентах из Material 3
🛠 Улучшении тулинга, в том числе Preview и Live Edit

Еще из интересного в роадмапе:

- Стабилизация Paging Compose APIs
- Transition animations в Navigation
- Улучшения обработки эксепшнов на уровне compose-runtime
Первые шаги с Compose в Headhunter

Команда HH поделилась историей того, как они принимали решение затаскивать Compose в свое приложение, проводили первые эксперименты и решали возникающие проблемы.
Видеокурс по корутинам

Кирилл Розов закончил основную часть своего бесплатного видеокурса по корутинам. Самое время его наконец посмотреть! Программа курса:
- Особенности корутин
- CoroutineContext
- Жизненный цикл корутин и structured concurrency
- Обработка ошибок
- Каналы
- Синхронизация между корутинами
- Flow
- Особенности в Android
Обновление dependency-analysis-android-gradle-plugin

Dependency Analysis Plugin – очень полезная штука, которая позволяет детектить неиспользуемые зависимости, транзитивные зависимости, ненужные плагины и неправильную конфигурацию зависимостей. В версии 1.11.0 появилось несколько новых фичей:

- Таска fixDependencies, которая автоматически применяет все предлагаемые плагином исправления к вашим билд-скриптам.
- Более детальное объяснение предлагаемых исправлений по структуре модулей.

Если вы хотите узнать про плагин больше, вот релевантные статьи:
- The proper care and feeding of your Gradle build
- Dependency Analysis Gradle Plugin: Using bytecode analysis to find unused dependencies
- Dependency Analysis Gradle Plugin: What’s an ABI
- Reducing my Gradle plugin’s impact on configuration time: A journey
KMMT – огромный шаблон для создания KMM проектов

- Networking слой на Ktor
- Async Task Helper для запуска кода на бэкграунд тредах на корутинах
- Обвязка для передачи объектов между экранами
- Обвязка для выполнения платформо-зависимого кода
- Модуль сериализации на kotlinx.serialization
- Хранение данных в key-value store, LiveData, SQLDelight
Выводы из года ускорения сборки Яндекс.Браузера

В приложении Яндекс.Браузера ~150 Gradle-модулей, ~2 млн строк кода на Java/Kotlin, десяток Gradle-плагинов и тысячи строк кода в buildSrc. Команда, занимающаяся ускорением сборки проекта, поделилась своим опытом.

- Какие сценарии и с помощью каких инструментов замерять
- Флаги Gradle, которые надо включать
- Оптимизация R.java
- Почему надо отказываться от flavours
- Configuration и build cache
- Работа с версиями зависимостей
Более безопасная альтернатива dependsOn(Task) в Gradle

Иногда в разных Gradle тасках приходится работать с одним и тем же файлом. Одна таска записывает туда данные, другая – читает. При их связи через dependsOn появляется много рисков, которые могут отстрелить при рефакторинге. Автор статьи предлагает более гибкий и безопасный способ конфигурации таких тасок.
Gradle Convention Plugins в приложении Now in Android

Convention Plugins – это удобный способ пошарить кусочки логики билда между разными модулями в проекте. В новом образцовом приложении Now in Android можно посмотреть на то, как они используются.

- Общие функции, нужные разным плагинам, вынесены в отдельные файлы
- Compose и Kapt подключаются только к тем модулям, где они действительно нужны
- В статье есть прямые ссылки на все интересные моменты в реализации
Brush API в Compose 1.2

Разбор новых возможностей кастомной окраски текста, появившихся в новой версии Compose.
Запуск third-party инструментов из Android Studio

В Android Studio можно настраивать External Tools – по сути, запуск любого стороннего исполняемого файла с аргументами с помощью иконки в тулбаре или хоткея.
Как CompositionLocal может помочь с аналитикой

CompositionLocal – это API в Compose, который позволяет получить доступ к каким-то данным из любого Composable без необходимости передачи их вручную через параметры функции. Пример использования – работа с темами.

CompositionLocal удобен и для того, чтобы настроить аналитику – ведь ее инициализация находится где-то в точке общей конфигурации приложения, а непосредственное логивание событий – в листьях дерева нод.
Как в N26 подошли к автоматизации Gradle бенчмарков

Слайды отличного доклада про то, как команда N26 решала задачу автоматизации бенчмарков для большой команды.
Снепшот-тесты для Android

- Такие тесты позволяют хорошо контролировать регрессии на экранах, которые редко изменяются
- QuickBird выпустили библиотеку kotlin-snapshot-testing, которая позволяет легко писать такие тесты
- Она автоматически записывает целевое состояние экрана и строит визуальный дифф, если оно изменится
Релиз Kotlin 1.7.20-Beta

На прошлой неделе вышла первая Beta нового релиза Kotlin. В ней можно потрогать большинство фич, которые войдут в релизную версию, проверить, собирается ли ваш проект, и порепортить найденные баги.

- Новый оператор ..<, который заменяет until, и сильно увеличивает читаемость кода в связке с ..
- K2 уверенно движется к Beta, добавив поддержку многих компиляторных плагинов
- Новая мемори модель в Kotlin/Native теперь включена по умолчанию
- Детальный What’s new
Zipline – библиотека для простой интеграции Kotlin/JS кода в Kotlin/JVM

Большой плюс Kotlin/JS – что его можно распространять и подгоужать в приложение в обход стандартного релиза через Google Play. Zipline помогает с бриджингом и исполнением Kotlin/JS кода из ваших нативных приложений.

Вот где это может пригодиться:
- Различные системы плагинов, которые пользователи устанавливают сами
- Обновление бизнес-логики, например, расчета цен
- Подгружаемый игровой контент
- Реализация системы continuous deployment
Вводная статья в KSP

Разбираемся с тем, как писать собственные инструменты поверх KSP на примере упрощения конвертации enum’ов в строки.
This media is not supported in your browser
VIEW IN TELEGRAM
Brush API и Compose Animations

Продолжение поста про новые возможности работы с окрашиванием текста, которые дает Brush API.
Шаги по поддержке Rust в Android NDK

В ответ на Feature Request о поддержке Rust в NDK, инженеры Google выкатили роадмап по тому, что конкретно требуется для этого сделать. Конкретных планов по его реализации пока нет, но выглядит интересно.