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

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

Размещение рекламы: @tanyasanovna
Download Telegram
Тред иконок приложений, сгенерированных Midjourney

Прогресс нейронок, генерирующих иллюстрации, сделал более доступными и красивые иконки для ваших пет-проектов. Посмотрите, какая красота получается!
📌 ВКонтакте привлекает разработчиков к созданию мини-приложений

Команда регулярно проводит конкурсы вроде VK Fresh Code, которые помогают найти лучшие ИТ-продукты и привлечь к развитию платформы талантливых разработчиков. В недавнем этапе выиграли 25 мини-приложений на базе платформы VK Mini Apps на разные тематики, а их создатели получили гранты из призового фонда в 4,5 миллиона рублей. Поучаствовать в конкурсе могут как отдельные разработчики, так и команды.
Обновился роадмап Kotlin

Основной фокус на четырех больших проектах:
1️⃣Релиз стабильного K2 компилятора
2️⃣Релиз нового плагина для IDE на базе K2
3️⃣Стабильный релиз KMM
4️⃣Улучшение жизни авторов библиотек

Подборка интересных фичей и планов:
💣Общий тикет с планами по всем новым языковым фичам и экспериментам
💣Детальные планы по тому, что будет стабилизировано в КММ
💣Первый релиз К2 IDE будет включать в себя только часть фичей старого плагина
💣.gradle.kts планируют сделать дефолтным для всей экосистемы вместо Groovy
💣Новый Gradle DSL для конфигурации компиляторных аргументов
💣Плагин для IDE, который позволит работать с Kotlin в стиле датасаенсовых ноутбуков
💣Много улучшений в KDoc
💣Большой гайд по дизайну API и обеспечению обратной совместимости для авторов библиотек
💣Поддержка Base64 и Hex в stdlib

Голосуйте за самые интересные тикеты, задавайте в комментариях к ним вопросы и обратную связь!
Remote Development в Uber

Отличная статья для тех, кто любит читать, как решаются проблемы в огромных командах разработки. После переезда всех сервисов и приложений Uber в монорепозиторий заметно просела скорость сборки и сложность поднятия локального окружения. Чтобы решить проблему, команда реализовала возможность быстрого поднятия контейнера с преднастроенным рабочим окружением, к которому можно коннектиться с помощью remote development фичей IntelliJ и VSCode.

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

var enabled by remember { mutableStateOf(true) }

☁️mutableStateOf(true) создает объект типа MutableState<Boolean>, который содержит сам стейт
☁️Функция remember говорит фреймворку о том, что выполнять лямбду при каждой рекомпозиции не нужно
☁️Ключевое слово by позволяет работать с переменной enabled как с Boolean

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

🧷Что будет, если опустить что-то из перечисленных выше шагов
🧷Чем отличаются stateful и stateless composables, и когда стейт нужен
🧷Почему TextInput должен быть stateful
🧷Работа со стейтом во ViewModel
🧷Представление стейта с помощью Flow, rxJava и LiveData
У Сбера появилась платформа для разработчиков html-игр.

Здесь каждый может не только получить новый канал продвижения, но и монетизировать свои разработки — достаточно адаптировать игру под пульт, загрузить в каталог хостинга Сбера и начать зарабатывать на in-app покупках и рекламных интеграциях.

Для геймдевелоперов у Сбера действует ежемесячная программа мотивации.

Все подробности здесь
Как устроен и работает Kotlin DSL для описания конфига GitHub Actions

Автор проекта github-workflows-kt рассказывает о том, как настрадался с описанием конфигурации CI с помощью YAML и решил переписать все на Kotlin DSL.

Самое интересное в статье – то, как автор подошел к вопросам дизайна, выделял основные сущности и исправлял проблемы большого количества дублирующихся сущностей в YAML.
KotlinDL теперь на Android

ONNX – это спецификация deep learning моделей, которая поддерживается большинством фреймворков для их обучения, например, TensorFlow. KotlinDL дает возможность запускать такие модели прямо на устройстве с помощью простого API.

Вместе с библиотекой идут несколько уже обученных моделей для следующих задач:

👀Определение объектов
🌅Классификация изображений
💃Распознавание поз
😊Распознавание лиц
🫠Выравнивание лиц

Что еще есть в библиотеке:
- DSL для препроцессинга изображений до передачи их нейронке, с готовыми функциями для кропа, изменения масштаба и поворота.
- Поддержка аппаратного ускорения на девайсах со специальным железом.
- Поддержка любых кастомных ONNX моделей, которые обучили вы сами.

Делитесь фидбэком в комментариях, команде он очень важен!
This media is not supported in your browser
VIEW IN TELEGRAM
Самое простое интро в шейдеры

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

💻Отличие CPU от GPU в вопросах вычислений
🤔Ограничения в разработке шейдеров
🎨Примеры шейдеров
Yatagan – новый DI фреймворк

- Ребята из Яндекс Браузера написали и заопенсорсили новый DI фреймворк, практически полностью совместимый с Dagger по API. Его основной плюс в том, что он ускорил сборку их проекта в два раза.
- В статье с большим количеством деталей разбирается история управления зависимостями в их проекте, архитектура и реализация Yatagan.
Как измерить, сколько времени выполняется блок кода

Самый простой способ узнать, сколько времени уходит на выполнение какого-то куска кода – обернуть его в экспериментальную функцию стандартной библиотеки measureTime. После выполнения лямбды возвращается объект Duration, содержащий информацию о времени ее исполнения.
Architecture Templates от Google

Google завернули все свои архитектурные рекомендации в несколько шаблонов на GitHub.
apk.sh – консольный инструмент для реверс-инжиниринга

- Скрипт помогает автоматизировать рутинные задачи реверс-инжиниринга, в том числе загрузку, декодирование и патчинг APK.
- Под капотом используется apktool и frida.
Релиз-трейны в команде Додо

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

Стандартное решение проблемы – организация релизного поезда. Все релизы катятся по строгому расписанию, вне зависимости от статуса готовности конкретных фичей. Фича готова – значит, попадет в релиз. Чуть-чуть не успели – поедет в следующий.

Команда Додо рассказала, какие проблемы в процессах подтолкнули их к организации релиз-трейнов, как они внедряли новый процесс, и как он повлиял на метрики разработки: lead time и среднее количество дефектов на релиз.