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

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

Размещение рекламы: @tanyasanovna
Download Telegram
Лайфхак. Если эмулятор на вашей машине тормозит, попробуйте использовать более старую его версию. Например, API 21 намного более шустрый, чем API 30.
https://twitter.com/alexstyl/status/1481947417700454401?s=21
Duration API выходит из Experimental, а значит, самое время разобраться с ним поподробнее. В заметке рассматриваются его основные функции и примеры использования в стандартной библиотеке языка.
https://lengrand.fr/measuring-time-and-durations-in-kotlin/
А стоит ли экспериментировать с кроссплатформой? Какое решение выбрать? Если эти вопросы периодически всплывают в обсуждениях в вашей команде, то вот неплохое видео со сравнением плюсов и минусов Flutter и Kotlin Multiplatform.
https://youtube.com/watch?v=jIgiHYn9xbo
Один из плюсов затаскивания КММ в свой проект – возможность иметь один общий тест сьют на iOS и Android. Тесты пишутся один раз, проверяют один и тот же код, красота. Ребята из TouchLab написали хороший гайд про то, как подойти к написанию мультиплатформенных тестов.
https://touchlab.co/understanding-and-configuring-your-kmm-test-suite/
Я хочу активно развивать канал дальше, но для этого мне хочется узнать побольше про вас: как давно вы занимаетесь Android разработкой, зачем подписаны на канал и какими темами интересуетесь. Я подготовил небольшой опрос, прохождение которого займет у вас не больше 3-5 минут. А чтобы мотивировать вас ответить на мои вопросы, между участниками я разыграю две проходки на ближайшую конференцию Podlodka Android Crew, и замечательную книгу "Код: Тайный язык информатики"!
https://forms.gle/wyPuYdbexrekrepaA
Работа с контактами в 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