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

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

Размещение рекламы: @tanyasanovna
Download Telegram
Исследование того, как в разных компаниях подходят к автотестам

Женя Мацюк, автор библиотеки Kaspresso и бесконечности докладов про автоматизацию тестирования, провел интервью с 30 командами мобильной разработки и подбил аналитику по тому, что там по автотестам в 2022 году.

- У 30% команд написано больше 1000 UI тестов.
- У большинства команд соблюдаются пропорции стандартной пирамиды тестирования, и unit-тестов больше, чем end-to-end.
- 60% команд гоняют UI тесты на каждый PR, а 25% – на ночных сборках.
- У половины команд время на прогона сьюта тестов на PR – больше 25 минут.
- Больше половины респондентов запускают в паралелль не больше пяти эмуляторов.

Конечно, в исследовании явно есть перекос в сторону больших команд, поэтому учтите это при прочтении статьи.
Android Good Reads pinned «Вышло ежегодное исследование популярности команд Android разработки В этом году мы опросили 660 Android-разработчиков, на 40% больше, чем в прошлом! Посмотрите отчет, чтобы узнать: 💰В каких сферах предпочитают работать Android разработчики (спойлер – топ…»
Переезд с Java на Kotlin в Meta

🤔Про переезд:
- Основные причины переезда: nullability, поддержка функциональщины, более лаконичный код, поддержка DSL и type-safe билдеров.
- При планировании переезда команда выбирала между двумя подходами – сконвертировать всю кодовую базу на Kotlin, или заморозить ее в текущем виде и писать на Kotlin только новый код. Выбрали первый вариант.
- При переезде активно использовался J2K. Чтобы улучшить результат его работы, команда дописала свои конвертеры с обеих сторон от J2K. Это помогло получить более идиоматичный и подходящий к стайлгайдам компании код.

🔥Результаты:
- Сейчас в монорепе 10 миллионов строк кода на Kotlin.
- Объем кодовой базы уменьшился всего на 11%.
- Runtime перфоманс не изменился.
- Время билда выросло. Чтобы решить эту проблему, команда улучшает поддержку Buck и переезжает с KAPT на KSP.
KotlinConf 2023 в вашем городе

KotlinConf 2023 пройдет 13-14 апреля. Если вы хотите захостить митап с его просмотром в своем городе, обратитесь за помощью к команде Kotlin:
- Вам подгонят стикеры, футболки и другой мерч.
- При необходимости помогут с финансированием.
- Ваше событие поместят на общую карту всех ивентов.
Визуальный гайд по основным операциям над коллекциями в Kotlin

Отличная визуализация функций работы с коллекциями из стандартной библиотеки:

🗺️Mapping
🤐Zipping
🔗Association
🤌Flattening
📙String representation
This media is not supported in your browser
VIEW IN TELEGRAM
Compose Gradle BOM

Gradle Bill of Materials – конфигурационный файл, в котором зафиксирован список связанных друг с другом зависимостей и их версии. Команда Compose начала использовать BOM для того, чтобы было проще обновляться на актуальные версии всех связанных с Compose библиотек, не разбираясь, какие конкретно версии для каждой надо выставить.
Podlodka Android Crew про архитектуру

14-18 ноября пройдет новый сезон Podlodka Android Crew с кучей сессий про архитектуру. Вот несколько кайфовых тем:

🧱Почему Backend Driven UI не нужен
🔃Elm и Redux с Compose
📝Публичное собеседование по System Design в Android
💉Эволюция подходов к DI в Lyft

👉Подключайтесь и вы!
История дебага TransactionTooLargeException

- Что такое Binder и для чего он нужен
- Как происходит сохранение состояния Activity при
переходе в бэкграунд
- Как дебажить происходящее в Binder транзакциях с помощью toolargetool
This media is not supported in your browser
VIEW IN TELEGRAM
Бегущая строка на Compose

Статья с разбором реализации компонента, который для коротких строк ведет себя как Text, а для длинных включает анимацию бегущей строки и добавляет градиент по краям.
Android Developers Backstage: Performance

Выпуск подкаста ADB с разработчиком из команды перфоманса в Android. В выпуске разбираются R8, Perfetto, baseline profiles, различные инструменты и метрики перфоманса, библиотеки Jetpack Tracing и JankStats.
Baseline Profiles – реальность сложнее, чем кажется

Твиттер-тред инженера из Square про то, как работают Baseline Profiles, про реальный перфоманс буст и про сложности их создания. Обязательно плолистайте и реплаи, там много ценного.
📱Android-разработчик VK Видео (middle)

VK Видео - это один из самых крупных сервисов потокового видео в России. Ежедневно им пользуются десятки миллионов людей и перед командой стоит амбициозная задача - стать видеосервисом 1 в РФ.

Чтобы сделать сервис еще более полезным и увлекательным для зрителей и помогать авторам находить свою аудиторию, они ищут Android-разработчиков

🎯Задачи:

📌Разрабатывать приложение ВКонтакте (продукт видео) для Android;
📌Создавать новые возможности продукта, реализовывать смелые UX-эксперименты;
📌Следить за работоспособностью сервиса и устранять технический долг;
📌Взаимодействовать с командой менеджеров, дизайнеров, аналитиков и тестировщиков;
📌Принимать участие в планировании, обсуждении проектов.

🔥Требования:

💎Отличное знание Java и Kotlin;
💎Хорошие знания платформы Android;
💎Знание классических алгоритмов и структуры данных;
💎Навыки профилирования;
💎Опыт написания Unit-тестов;
💎Опыт работы с аудио или видео на мобильных устройствах (желательно);
💎Готовность активно участвовать в ревью кода.

🛠Стек:

Kotlin — весь новый функционал; Java — legacy части, постепенно переписываемые на Kotlin; RxJava; Room; Coroutines; Jetpack Compose.

🤩Почему у них круто:

ДМС для сотрудника и его детей с первого месяца работы;
100%-ная оплата больничного в течение 30 дней;
Компенсация занятий спортом;
Компенсация питания;
Конкурентный уровень заработной платы.

И многое другое, скорее пиши в рекрутеру - @bxnmx
This media is not supported in your browser
VIEW IN TELEGRAM
Релиз Appyx 1.0.0

- Вышел первый стабильный релиз Appyx – библиотеки навигации от Bumble.
- Вместе с релизом выпустили три туториала: Basics, Navigation и Custom animation.
Как нарисовать тени в Android

- Чаще всего достаточно использовать системные тени, определяемые через параметр elevation.
- Если дизайн требует кастомной тени, можно попробовать MaterialShapeDrawable из Material.
- Автор в статье разбирает эти и другие способы создания теней и оптимизирует производительность получившегося решения.
Недооцененные хоткеи в IntelliJ

1️⃣⌥ “x” or Alt+“x” – закрыть все неактивные табы
2️⃣⇧⌘V or Shift+Ctrl+V – управление буфером обмена
3️⃣⌥/ or Alt+/ – специальный режим автокомплишна, который предлагает слова без учета контекста
4️⃣⌥⌘L or Ctrl+Alt+L – применение к коду настроек форматирования
5️⃣⌘F12 or Ctrl+F12 – навигация по структуре файла
6️⃣⌃G or Alt+J – выбор нескольких вхождений поисковой строки в файле для их одновременного редактирования
7️⃣⌘⇧↑/↓ or Alt +Shift+↑/↓ – реордеринг строк в файле
8️⃣⌘D or Ctrl+D – дублирование строки
This media is not supported in your browser
VIEW IN TELEGRAM
Profileable сборки приложений

- В Android 10 появилась возможность собирать релизные билды со специальным тегом profiliable. По сравнению с дебажными сборками, их перфоманс приближен к релизному.
- Такую сборку можно создать как из интерфейса Android Studio, так и вручную, указав тег в AndroidManifest.xml.
Open-Obfuscator – новый обфускатор мобильных приложений

- Автор проекта увлекался поиском уязвимостей в существующих обфускаторах, но ему не были рады. Поэтому он решил написать свой, с упором на открытость к разработчикам и рисерчерам. Даже для первого релиза большую часть времени разработки автор вложил в понятную документацию.
- Open-Obfuscator поддерживает обфускацию нативного кода с помощью специального LLVM плагина, и обфускацию Kotlin/Java кода поверх ядра Proguard.
- Нативный обфускатор называется O-MVLL, обфускатор для Kotlin – dProtect.
Туториал по работе с жестами в Compose

🕵️Отслеживание тапов
🌟Реализация двойного тапа
👆Жест скролла
👉Жест закрытия по свайпу