Что нового в Android Q? | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Team Lead Архитектура и шаблоны проектирования Разработчик IoT C# Developer. Professional PostgreSQL Подготовка к сертификации Oracle Java Programmer (OCAJP) C# ASP.NET Core разработчик
-5%
Kotlin Backend Developer
-8%
iOS Developer. Professional
-8%
Symfony Framework Unity Game Developer. Basic JavaScript Developer. Professional Android Developer. Basic JavaScript Developer. Basic Java Developer. Professional Highload Architect Reverse-Engineering. Professional Java Developer. Basic PHP Developer. Professional Алгоритмы и структуры данных Framework Laravel Cloud Solution Architecture Vue.js разработчик Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив "Tarantool" PHP Developer. Basic
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK Дизайн сетей ЦОД Разработчик IoT PostgreSQL Экспресс-курс "Версионирование и командная работа с помощью Git"
-30%
Экспресс-курс «Введение в непрерывную поставку на базе Docker» Базы данных Reverse-Engineering. Professional Administrator Linux. Professional Network engineer Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Tarantool" Network engineer. Basic
Корпоративные курсы
Безопасность веб-приложений IT-Recruiter Дизайн сетей ЦОД Компьютерное зрение Разработчик IoT Вебинар CERTIPORT Machine Learning. Professional
-6%
NoSQL Пентест. Практика тестирования на проникновение Java QA Engineer. Базовый курс Руководитель поддержки пользователей в IT
-8%
SRE практики и инструменты Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Infrastructure as a code Супер-практикум по использованию и настройке GIT Промышленный ML на больших данных Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» BPMN: Моделирование бизнес-процессов Основы Windows Server
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

Что нового в Android Q?

Androidbasic_Deep_23.7_Site-5020-9d50cc.png

Не так давно отгремела конференция для разработчиков Google I/O 2019. И на ней представили много давно ожидаемых и полезных фич, которые уже можно попробовать в своих приложениях. НО! Не рекомендуем сразу бросаться обновлять приложения, которыми пользуются люди. Давайте сначала посмотрим, что может пойти не так.

Вообще, список изменений в новой ОС довольно большой, но мы остановимся на наиболее практичных с точки зрения конечного пользователя.

Разрешение на использование геолокации

В Android Q появилось разрешение на геолокацию в фоновом режиме. То есть пользователь теперь решает не только дать или запретить доступ к геолокации для вашего приложения, но и будет ли этот доступ работать, если приложение свёрнуто. В некоторых случаях достаточно будет нескольких строк кода (если есть разрешение ACCESS_FINE_LOCATION), в некоторых — приложение может просто не открыться. Проверьте это заранее!

Запуск Activity из фонового режима будет невозможен

Случаев, когда это действительно нужно, не так уж и много. Сами убедитесь, что вы корректно используете PendingIntent (что ещё можно использовать).

Тёмная тема (наконец-то!)

Теперь тёмную тему можно применять автоматически или в несколько строк кода (система сама перерисует ваши экраны). Если у вас уже реализована тёмная тема в приложении, то смысла что-то переделывать нет, если не реализована — рекомендуем её включить и проверить все экраны. Система может так инвертировать цвета в некоторых местах, что станет больно смотреть! В этом случае можно обойтись малой кровью и исключить часть элементов из тёмной темы и перерисовать самостоятельно.

Жесты навигации по краям экрана

С Android Q на всех смартфонах появляется новая система жестов, для которой не нужны кнопки в принципе. Это сделано для того, чтобы освободить как можно больше места на экране (в идеале — сделать экран безрамочным). Жесты слева и справа от края экрана будут возвращать пользователя на предыдущий экран, жесты снизу — сворачивать и листать приложения.

Поэтому самое пристальное внимание нужно уделить элементам экрана в районе нижней панели, ViewPager, DrawerLayout и вертикальным/горизонтальным спискам, когда пользователь вместо прокрутки может перейти на предыдущий экран. Для решения этой проблемы есть exclusion zones.

Вместо вывода

Есть ещё довольно много нововведений, которые тут не отмечены. Рекомендуем вам ознакомиться с полным списком на сайте разработчиков и потестировать своё приложение, если вас эти изменения касаются. Happy coding!

Обзор подготовлен специально для OTUS. За подготовку материала выражается благодарность Александру Аникину.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться