Приложение Pocket Casts в Open Source
Команда Pocket Casts решила заопенсорсить свои мобильные приложения на GitHub и вести весь процесс разработки открыто.
Команда Pocket Casts решила заопенсорсить свои мобильные приложения на GitHub и вести весь процесс разработки открыто.
Как в Android развивались ограничения работы в фоне
Кирилл Розов проанализировал, как в различных версиях Android менялись ограничения по работе приложений в фоне, какие из них есть и сейчас, и какие особенности есть в их работе.
Кирилл Розов проанализировал, как в различных версиях Android менялись ограничения по работе приложений в фоне, какие из них есть и сейчас, и какие особенности есть в их работе.
Хабр
Как в Android запрещали фоновую работу и улучшали расход батареи
Когда-то работа в фоне была простой. Теперь в Android есть множество ограничений: работа в фоне, доступ к файловой системе, разрешения, на которые надо получить одобрение модераторов Google Play, и...
This media is not supported in your browser
VIEW IN TELEGRAM
Основные анонсы с Android Dev Summit’22
🎁 Появился Gradle BOM, содержащий стабильные версии всех Compose библиотек.
🎨 Стабильный релиз Compose Material 3, а с ним – подробный migration guide.
👨🎨 Альфа-релиз Relay, инструмента для конвертации Figma-компонентов в Compose-код.
🏎 Baseline Profiles стали стабильными.
💻 Большой рефакторинг Compose Modifiers, благодаря которому перфоманс значительно улучшится.
🛠 Много новых фичей в Compose: от возможности рисовать текст на канвасе до модификатора pullRefresh.
🎁 Появился Gradle BOM, содержащий стабильные версии всех Compose библиотек.
🎨 Стабильный релиз Compose Material 3, а с ним – подробный migration guide.
👨🎨 Альфа-релиз Relay, инструмента для конвертации Figma-компонентов в Compose-код.
🏎 Baseline Profiles стали стабильными.
💻 Большой рефакторинг Compose Modifiers, благодаря которому перфоманс значительно улучшится.
🛠 Много новых фичей в Compose: от возможности рисовать текст на канвасе до модификатора pullRefresh.
Обновленные архитектурные рекомендации от Google
Все рекомендации разбиты на три группы:
🔥Strongly recommended (UDF, lifecycle-aware state collection, coroutines and flows)
👍Recommended (не использовать AndroidViewModel, использовать single-activity подход, Hilt)
🤷♂️Optional (рекомендации по неймингу)
Новый контент в рекомендациях:
- Овервью про модуляризацию
- Обзор паттернов модуляризации
- State holders
- Менеджмент стейта UI
- Navigation UI events
- Использование Navigation Compose
Все рекомендации разбиты на три группы:
🔥Strongly recommended (UDF, lifecycle-aware state collection, coroutines and flows)
👍Recommended (не использовать AndroidViewModel, использовать single-activity подход, Hilt)
🤷♂️Optional (рекомендации по неймингу)
Новый контент в рекомендациях:
- Овервью про модуляризацию
- Обзор паттернов модуляризации
- State holders
- Менеджмент стейта UI
- Navigation UI events
- Использование Navigation Compose
This media is not supported in your browser
VIEW IN TELEGRAM
Как в CameraX решаются проблемы совместимости с разными девайсами
CameraX – Jetpack библиотека, которая дает приложениям доступ к камере. Особенности работы с камерой отличаются от устройства к устройству, поэтому одна из ключевых задач CameraX – скрывать внутри себя детали реализации совместимости. В статье раскрываются детали того, как команда с ними работает:
📱Библиотека тестируется на ферме из 150 разных девайсов.
💻Под капотом скрыты 30 костылей, нужных для поддержки конкретных устройств.
📂Поддержка Foldables из коробки.
CameraX – Jetpack библиотека, которая дает приложениям доступ к камере. Особенности работы с камерой отличаются от устройства к устройству, поэтому одна из ключевых задач CameraX – скрывать внутри себя детали реализации совместимости. В статье раскрываются детали того, как команда с ними работает:
📱Библиотека тестируется на ферме из 150 разных девайсов.
💻Под капотом скрыты 30 костылей, нужных для поддержки конкретных устройств.
📂Поддержка Foldables из коробки.
Исследование того, как в разных компаниях подходят к автотестам
Женя Мацюк, автор библиотеки Kaspresso и бесконечности докладов про автоматизацию тестирования, провел интервью с 30 командами мобильной разработки и подбил аналитику по тому, что там по автотестам в 2022 году.
- У 30% команд написано больше 1000 UI тестов.
- У большинства команд соблюдаются пропорции стандартной пирамиды тестирования, и unit-тестов больше, чем end-to-end.
- 60% команд гоняют UI тесты на каждый PR, а 25% – на ночных сборках.
- У половины команд время на прогона сьюта тестов на PR – больше 25 минут.
- Больше половины респондентов запускают в паралелль не больше пяти эмуляторов.
Конечно, в исследовании явно есть перекос в сторону больших команд, поэтому учтите это при прочтении статьи.
Женя Мацюк, автор библиотеки 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.
🤔Про переезд:
- Основные причины переезда: nullability, поддержка функциональщины, более лаконичный код, поддержка DSL и type-safe билдеров.
- При планировании переезда команда выбирала между двумя подходами – сконвертировать всю кодовую базу на Kotlin, или заморозить ее в текущем виде и писать на Kotlin только новый код. Выбрали первый вариант.
- При переезде активно использовался J2K. Чтобы улучшить результат его работы, команда дописала свои конвертеры с обеих сторон от J2K. Это помогло получить более идиоматичный и подходящий к стайлгайдам компании код.
🔥Результаты:
- Сейчас в монорепе 10 миллионов строк кода на Kotlin.
- Объем кодовой базы уменьшился всего на 11%.
- Runtime перфоманс не изменился.
- Время билда выросло. Чтобы решить эту проблему, команда улучшает поддержку Buck и переезжает с KAPT на KSP.
KotlinConf 2023 в вашем городе
KotlinConf 2023 пройдет 13-14 апреля. Если вы хотите захостить митап с его просмотром в своем городе, обратитесь за помощью к команде Kotlin:
- Вам подгонят стикеры, футболки и другой мерч.
- При необходимости помогут с финансированием.
- Ваше событие поместят на общую карту всех ивентов.
KotlinConf 2023 пройдет 13-14 апреля. Если вы хотите захостить митап с его просмотром в своем городе, обратитесь за помощью к команде Kotlin:
- Вам подгонят стикеры, футболки и другой мерч.
- При необходимости помогут с финансированием.
- Ваше событие поместят на общую карту всех ивентов.
Визуальный гайд по основным операциям над коллекциями в Kotlin
Отличная визуализация функций работы с коллекциями из стандартной библиотеки:
🗺️Mapping
🤐Zipping
🔗Association
🤌Flattening
📙String representation
Отличная визуализация функций работы с коллекциями из стандартной библиотеки:
🗺️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 библиотек, не разбираясь, какие конкретно версии для каждой надо выставить.
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
👉Подключайтесь и вы!
14-18 ноября пройдет новый сезон Podlodka Android Crew с кучей сессий про архитектуру. Вот несколько кайфовых тем:
🧱Почему Backend Driven UI не нужен
🔃Elm и Redux с Compose
📝Публичное собеседование по System Design в Android
💉Эволюция подходов к DI в Lyft
👉Подключайтесь и вы!
История дебага TransactionTooLargeException
- Что такое Binder и для чего он нужен
- Как происходит сохранение состояния Activity при
переходе в бэкграунд
- Как дебажить происходящее в Binder транзакциях с помощью toolargetool
- Что такое Binder и для чего он нужен
- Как происходит сохранение состояния Activity при
переходе в бэкграунд
- Как дебажить происходящее в Binder транзакциях с помощью toolargetool
This media is not supported in your browser
VIEW IN TELEGRAM
Бегущая строка на Compose
Статья с разбором реализации компонента, который для коротких строк ведет себя как Text, а для длинных включает анимацию бегущей строки и добавляет градиент по краям.
Статья с разбором реализации компонента, который для коротких строк ведет себя как Text, а для длинных включает анимацию бегущей строки и добавляет градиент по краям.
Android Developers Backstage: Performance
Выпуск подкаста ADB с разработчиком из команды перфоманса в Android. В выпуске разбираются R8, Perfetto, baseline profiles, различные инструменты и метрики перфоманса, библиотеки Jetpack Tracing и JankStats.
Выпуск подкаста ADB с разработчиком из команды перфоманса в Android. В выпуске разбираются R8, Perfetto, baseline profiles, различные инструменты и метрики перфоманса, библиотеки Jetpack Tracing и JankStats.
Baseline Profiles – реальность сложнее, чем кажется
Твиттер-тред инженера из Square про то, как работают Baseline Profiles, про реальный перфоманс буст и про сложности их создания. Обязательно плолистайте и реплаи, там много ценного.
Твиттер-тред инженера из Square про то, как работают Baseline Profiles, про реальный перфоманс буст и про сложности их создания. Обязательно плолистайте и реплаи, там много ценного.
Twitter
Let's talk about Android Baseline Profiles!
Android team is pushing hard for their adoption. GMaps startup had 40% perf improvements, why isn't everybody jumping on that?!
Reality is a bit more complex...
#AndroidDev #performance
Android team is pushing hard for their adoption. GMaps startup had 40% perf improvements, why isn't everybody jumping on that?!
Reality is a bit more complex...
#AndroidDev #performance
📱Android-разработчик VK Видео (middle)
VK Видео - это один из самых крупных сервисов потокового видео в России. Ежедневно им пользуются десятки миллионов людей и перед командой стоит амбициозная задача - стать видеосервисом 1 в РФ.
Чтобы сделать сервис еще более полезным и увлекательным для зрителей и помогать авторам находить свою аудиторию, они ищут Android-разработчиков
🎯Задачи:
📌Разрабатывать приложение ВКонтакте (продукт видео) для Android;
📌Создавать новые возможности продукта, реализовывать смелые UX-эксперименты;
📌Следить за работоспособностью сервиса и устранять технический долг;
📌Взаимодействовать с командой менеджеров, дизайнеров, аналитиков и тестировщиков;
📌Принимать участие в планировании, обсуждении проектов.
🔥Требования:
💎Отличное знание Java и Kotlin;
💎Хорошие знания платформы Android;
💎Знание классических алгоритмов и структуры данных;
💎Навыки профилирования;
💎Опыт написания Unit-тестов;
💎Опыт работы с аудио или видео на мобильных устройствах (желательно);
💎Готовность активно участвовать в ревью кода.
🛠Стек:
Kotlin — весь новый функционал; Java — legacy части, постепенно переписываемые на Kotlin; RxJava; Room; Coroutines; Jetpack Compose.
🤩Почему у них круто:
ДМС для сотрудника и его детей с первого месяца работы;
100%-ная оплата больничного в течение 30 дней;
Компенсация занятий спортом;
Компенсация питания;
Конкурентный уровень заработной платы.
И многое другое, скорее пиши в рекрутеру - @bxnmx
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.
- Вышел первый стабильный релиз Appyx – библиотеки навигации от Bumble.
- Вместе с релизом выпустили три туториала: Basics, Navigation и Custom animation.