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

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

Размещение рекламы: @tanyasanovna
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
AdbOrc – простой шаринг Android девайсов в команде

AdbOrc создает распределенную виртуальную ферму девайсов. Им не нужно физически находиться в одном месте, достаточно просто подключить их к компьютеру и расшарить для подключения через консольную тулу.

Сеть состоит из трех ролей:

📲Supplier – тот, кто предоставляет свой девайс для использования.
💻Consumer – тот, кто подключается к чужому девайсу.
🔄MarketMaker – хаб, который регистрирует девайсы и менеджерит доступ к ним.

На каждый расшаренный девайс стартует ADB сервер, информация о котором расшаривается через MarketMaker. Для доступа к экрану девайса используется scrcpy. Все соединения шифруются.

AdbOrc на GitHub
Pager API переезжает из Accompanist в Compose

API для работы с горизонтальными и вертикальными лэйаутами с постраничной прокруткой переезжает из Accompanist в Compose 1.4.0. Пока что под экспериментальным флагом.
История одного крэша

Расследование причин крэша с NoClassDefFoundError, который происходил на 21 API и сборке без R8. Спойлер – вся проблема в ограничении количества dex файлов в 100 штук на старых версиях Android.
Обзор редко используемых фичей Kotlin

В статье разбирается несколько полезных, но сравнительно редко используемых фичей Kotlin:

👉fun interface / function types
👉type alias
👉import alias
👉value class
👉data object
Вышел Kotlin 1.8.0

- Значительна улучшена производительность kotlin-reflect
- Новый флаг -Xdebug, который отключает все оптимизации во время дебага
- Удален старый Kotlin/JVM бэкенд
- Новые аннотации в Kotlin/Native для улучшения интеропа с Objective-C/Swift
- Стабилизирован новый Kotlin/JS бэкенд
- Совместимость с Gradle 7.3
- Компиляторные флаги теперь можно задавать с помощью удобного Gradle DSL
Гайд по прохождению System design интервью

Подробный алгоритм прохождения архитектурной секции интервью с учетом мобильной специфики на примере ленты Твиттера:

- Как правильно собирать требования и какие уточняющие вопросы задавать
- Как отрисовать общую архитектурную схему и какие компоненты показать
- Как подойти к дизайну взаимодействия с бэкендом
- Как обсуждать организацию хранения данных
- Какие дополнительные темы могут всплывать
Подкаст про MockK

MockK – одна из популярных библиотек для создания моков в Kotlin. С ее автором записали эпизод подкаста The Developers’ Bakery, в котором разобрали нюансы работы с моками в JVM, отличия MockK от других библиотек, детали его реализации и оптимизации перфоманса.
Gradle 8.0-RC

Вышла предрелизная версия Gradle. Большая часть касается улучшений поддержки KTS в Gradle:

- Появилась поддержка всех языковых и stdlib фичей Kotlin выше версии 1.4.0.
- Убрали лок на Java 8 для компиляции скриптов.
- Компиляция скриптов ускорена на 20% за счет кастомного интерпретатора для блока plugins {}.

Учитывая, что вместе с этим в Android Studio Canary в несколько раз улучшили перфоманс IDE, все движется к тому, что скоро .gradle.kts станет дефолтной опцией для написания билдскриптов.

Кроме этого, в Gradle 8.0 много улучшений для configuration cache и buildSrc билдов.
This media is not supported in your browser
VIEW IN TELEGRAM
Android приложение, написанное ChatGPT

За 78 вопросов и ответов к ChatGPT автор получил приложение, которое выводит 50 популярных бумаг с их ценами. Весь проект настроен и код сгенерирован нейронкой, а баги, если появлялись, исправлялись тоже с помощью чат-бота.

Код на GitHub
Опыт использования Compose Desktop в продакшне

- Фреймворк лучше всего подходит для написания приложений, которым не требуется тесная интеграция с системой.
- Например, компонент для реализации меню в Tray выглядит и работает нормально в macOS, но на Windows он устаревший. А поддержки действий с уведомлениями вообще нет.
- Вызывать нативные API платформы тоже довольно больно, хотя и теоретически возможно.

Документация и примеры
Алгоритмический трейдинг на Kotlin

Если вы еще не решили, каким пет-проектом заняться в начале года, отличный кандидат – вкатиться в алгоритмический трейдинг. Если вы никогда о нем не слышали, вот вам выпуск Подлодки по теме.

А для реализации можете взять библиотеку Roboquant, которая предоставляет кучу готовых абстракций, и умеет интегрироваться как с обычным кодом, так и с Jupyter ноутбуками.
Бенчмарк переезда AGP с JDK 11 на JDK 17

Android Gradle Plugin 8.0.0 будет требовать использования JDK 17. Автор статьи решил посмотреть, как изменение версии Java повлияет на перфоманс, и замерил несколько сценариев работы с приложением Now in Android.
KEEP про data objects

- Data objects – новая фича Kotlin, которая совмещает data classes и objects. Например, вы сможете объявлять синглтоны, у которых из коробки будет реализована функция toString.
- Превью data objects появится в Kotlin 1.8.20, а стабильная фича выйдет в 1.9.0.
- В KEEP хорошо разобраны спорные вопросы, приведены сравнения с другими языками и подробно описан дизайн фичи.
Сравнение перфоманса разных бэкендов Kotlin

Таблица с оценкой перфоманса разных способов компиляции Kotlin-кода и размера получающихся артефактов. Важно помнить, что любые бенчмарки показывают только часть картины, и к ним нужно относиться изначально довольно скептично. Как минимум, оценка производительности на числодробилке будет значительно отличаться от работы с Android проектами.
This media is not supported in your browser
VIEW IN TELEGRAM
Тултипы в Compose с помощью библиотеки Balloon

- Balloon – библиотека для создания анимированных интерфейсных подсказок, которые очень хорошо кастомизируются. Библиотека полностью совместима с Compose.
- В статье приводится пример ее использования для создания простого тултипа.
Работа с фокусом в Compose

- Compose дает несколько API для управления фокусом текстовых полей: FocusManager, FocusRequester и различные модификаторы.
- В статье разбирается, как с помощью этих API можно получить текущий фокус, переместить его на другое поле, определив их порядок, и очистить его.
Генеративное искусство на Compose Desktop

18 января пройдет вебинар, на котором Антон Архипов из команды Kotlin покажет, как можно использовать Compose Desktop для отрисовки сложных геометрических фигур и генеративного арта. Вполне себе идея для вашего пет-проекта!
Как написать свой сериализатор для kotlinx.serialization

Ядро kotlinx.serialization поддерживает не так много форматов – JSON, Protobuf и несколько других. Поддержкой сериализации других форматов в основном занимается коммьюнити. Автор библиотеки KToml рассказывает о деталях устройства и работы kotlinx.serialization и накидывает кучу советов по тому, как писать свои собственные сериализаторы.

Слайды доклада
Сколько можно заработать на книге про Android

Автор блога Effective Android, статьями из которого я регулярно делюсь, написал книгу про внутреннее устройство Jetpack Compose. С этого момента прошло уже полтора года, и он поделился своим опытом авторства.

Писать книгу про внутреннее устройство фреймворка довольно тяжело, потому что оно может меняться очень часто, и книгу вместе с ним придется обновлять. Для Compose, который только-только зарелизился, это особенно актуально.

Продажи принесли ему $32k за все время, но это до вычета налогов. Кроме этого, он еще смог привлечь спонсоров, которые принесли дополнительные $6.5k.
Планы по улучшению поддержки Kotlin в IDE

Один из основных фокусов команды Kotlin на ближайшие полгода – переписывание IDE поддержки языка на новый К2 компилятор. Этот проект в первую очередь направлен на то, чтобы улучшить стабильность анализа кода и скорость навигации, автокомплишна и подсветки кода и в IDEA, и в Android Studio.

Первая публичная версия нового плагина для IDEA выйдет в июле 2023. Важный момент – первый релиз будет Lightweight версией, которая включает в себя только самые базовые IDE фичи:

🛠️Полноценная подсветка кода и Find Usages
🛠️Базовые автокомплишн и дебаггер
🛠️Основные рефакторинги и code insight фичи (go to declaration, parameter info и т.д.)
🛠️Самые частоиспользуемые инспекции
🛠️Поддержка мультиплатформы и gradle.kts

Старый и новый плагин какле-то время будут жить вместе, так что вы сможете выбирать, что вам важнее – полный список текущих IDE фичей или быстрый перфоманс.