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

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

Размещение рекламы: @tanyasanovna
Download Telegram
Работа с контактами в Android никогда не была простой. На днях вышла Kotlin-first библиотека, которая скрывает за собой всю сложность работы с ContactsProvider.
https://github.com/vestrel00/contacts-android
С приходом Compose дизайн-системы получают второе рождение, потому что создавать новые и расширять существующие компоненты стало проще. Автор статьи приводит пример создания простой дизайн-системы поверх Material UI. Отталкиваясь от него, сможете затащить похожий подход и в свои проекты.
https://proandroiddev.com/building-design-system-with-jetpack-compose-1208c250ae75
Как только ваш проект и команда вокруг него начинают расти, вы все чаще слышите недовольство про растущее время билда. Первый шаг на пути к его исправлению – научиться его измерять и мониторить ситуацию. Square делятся своим опытом измерения билдтайма как на CI, так и на машинах отдельных разработчиков.
https://developer.squareup.com/blog/measure-measure-measure/
Продолжим тему скорости билда. Кирилл Розов собрал бенчмарк по скорости сборки Android проектов на различных машинах. Обязательно посмотрите на результаты перед тем, как выбирать себе новый макбук.
https://habr.com/ru/company/surfstudio/blog/646677/
А вот и обновленные бенчмарки от Square, прямо сегодня приехали!
https://twitter.com/vrallev/status/1485430589339492352?s=21
Kotlin scripting дает возможность определять собственные типы скриптов со своим синтаксисом. Вы реализуете хост, который умеет разбирать такой скрипт, встраиваете его в свое приложение, и оно становится способно исполнять скрипты на лету. Это очень удобно для создания всяких штук вроде игровых движков или билд-систем. Одной из главных проблем скриптинга на Kotlin в целом долгое время было отсутствие нормальной документации. И она наконец-то решилась – держите официальный гайд про то, как работать со скриптами с кастомными типами.
https://kotlinlang.org/docs/custom-script-deps-tutorial.html
Google выпустили новый гайд по работе с Baseline Profiles. Настройка этих профилей позволяет добиться нехилого прироста в скорости старта приложения или рендеринга отдельных критичных для пользователя штук.
https://developer.android.com/studio/profile/baselineprofiles
Недавно Google выпустил гайд по тому, как правильно подходить к архитектуре UI слоя. Держите хорошую статью с обзором сильных и слабых сторон этих рекомендаций. И помните, что архитектура должна в первую очередь не соответствовать написанным кем-то универсальным правилам, а решать ваши специфичные задачи.
https://www.droidcon.com/2022/01/14/sending-viewmodel-events-to-the-ui-in-android/
Вместе с релизом Kotlin 1.6 был представлен новый Gradle-плагин Kover, измеряющий тестовое покрытие Kotlin кода. Он все еще экспериментальный, но в целом его спокойно можно использовать в своих проектах. Держите статью с хорошим обзором его интеграции с проектом и GitHub Actions.
https://lengrand.fr/kover-code-coverage-plugin-for-kotlin/
А раз уж мы заговорили про GitHub Actions, то вот вам еще один классный инструмент, который позволяет настраивать воркфлоу с помощью Kotlin DSL вместо YAML.
https://github.com/krzema12/github-actions-kotlin-dsl
Представьте, что вы разрабатываете библиотеку, которая под капотом работает с одним или несколькими сторонними сервисами. Например, GitHub или AirTable. Вы хотите спрятать от пользователя сложность взаимодействия с их API и дать ему простой интерфейс, но абстракция протекает из-за ошибок и исключений, которые могут генерироваться этими интеграциями. Держите статью про основанный на монадах подход, который позволяет аккуратно процессить эти исключения на уровне библиотеки.
https://www.cortex.io/post/how-we-expect-the-unexpected-in-kotlin
В начале прошлой недели я шарил гайд по работе с Baseline Profiles. А тут и кейс-стади от Google Maps опубликовали, которые, благодаря этой фиче, ускорили время старта приложения на 30%. Кайф!
https://android-developers.googleblog.com/2022/01/improving-app-performance-with-baseline.html
Спасибо всем, кто поучаствовал в недавнем опросе подписчиков! Как и обещал, среди участников провел розыгрыш билетов на Android Crew (их получают @mikhailzisman и @Froyder) и книги "Код: Тайный язык информатики" (она улетает @dosssik). И несколько интересных фактов из опроса:
👀 31% подписчиков – сеньоры, а 56% работают в IT больше четырех лет.
📖 Три самых запрашиваемых темы – Kotlin, архитектура и Tips&Tricks по разработке.
😞 Наименее интересная тема – кроссплатформа.

Всем победителям скоро напишу в личку, а всем остальным – много любви и благодарностей!
Отличный материал про использование профилировщика Perfetto для анализа того, что происходит и сколько времени занимает при выполнении каких-то действий с приложением. Помимо общей инструкции по использованию, разбирается как сделать отчет более читаемым с помощью логов.
https://py.hashnode.dev/tracing-main-thread-messages
Задумались о переходе на Jetpack Compose? Тогда вам обязательно нужно попасть на новый сезон Podlodka Android Crew, который начинается 14 февраля! Всего за 5 дней вместе мы составим подробный пошаговый план перехода на Compose.

Вы узнаете как перевести UI приложения с XML и AppCompat на Compose, посмотрите на практические кейсы и набитые шишки экспертов, разберетесь с навигацией, анимацией, узнаете, как правильно сохранять состояние в приложении и всем, что необходимо для комфортного перехода. И все это в формате воркшопов с множеством кейсов-примеров, которые вы сразу сможете применять.

Всего на Podlodka Android Crew выступит больше 10 спикеров, среди которых Павел Стрельченко из HeadHunter Group, Антон Шилов из Badoo, Андрей Шиков из Facebook, Алексей Гладков из Леруа Мерлен, Миша Левченко из Auto.ru.
Чтобы купить билет, заходите на наш сайт! Успейте купить пока действует специальное предложение для early-bird — только до 2 февраля! Ждем вас на борту!
С февраля вам обязательно нужно заполнять «Google Data Safety Section» при обновлении приложения, и указывать, как вы работаете с пользовательскими данными. И если про свое приложение все относительно понятно, то со сторонними SDK могут возникнуть проблемы, особенно если в их документации пока нет ни слова про персональные данные. Держите поддерживаемый сообществом реестр информации про популярные библиотеки.
https://github.com/Privado-Inc/SDK-Privacy-Report
Основной сценарий использования Kotlin Multiplatform – это выделение какого-то компонента бизнес-логики в общий модуль, который затем шарится между платформами. С таким подходом хорошее тестовое покрытие становится важным вдвойне. Держите очень подробный гайд по тому, как подойти к тестированию мультиплатформенного модуля – разбираются и юнит-тесты, и контракты.
https://akjaw.com/testing-on-kotlin-multiplatform-and-strategy-to-speed-up-development/