28 августа 2017

Android 8: что разработчик может сделать для пользователя

Часть «фишек» новой ОС любой пользователь может заметить сразу (не только их архитектура, но и реализация является частью ОС). Но другую часть сначала должны реализовать разработчики в прикладном ПО, и только после этого пользователь сможет оценить их. Давайте посмотрим, что же предлагает Android 8 Oreo.

Картинка-в-картинке

Новый режим многооконности (в дополнение к режиму разделения экрана на два окна). От разработчиков приложений требуется реализация поддержки режима: указание того, что режим работает и установка параметров (например, соотношения сторон). Вход в режим инициируется пользователем.

Уведомления

Появились довольно интересные для разработчиков (но неочевидные для простых пользователей) возможности, связанные со скрытием уведомлений.

Во-первых, можно узнать что пользователь смахнул уведомление. Таким образом можно вести подробную аналитику по уведомлениям (ранее можно было фиксировать только показ уведомления и открытие его пользователем). И в дальнейшем не надоедать пользователю уведомлениями, которые он не открывает.

Во-вторых, появился таймаут для уведомлений. Удобно, если уведомления информируют о каких-то ограниченных по времени событиях (акция «только сегодня», например). Теоретически можно было и ранее сделать механизм, который отслеживает время и удаляет «старые» уведомления, но теперь не надо изобретать свой велосипед.

Автозаполнение

Как ни странно, но автозаполнение логинов, номеров банковских карт (и паролей?) работает в существующих приложениях из коробки. Надо только включить этот механизм в настройках. Разработчику предлагаются всего лишь некоторые дополнительные возможности.

Загружаемые шрифты

Для типичного бизнес-приложения вещь довольно-таки бесполезная. Шрифты занимают не так много места, чтобы экономить на их включении в приложение. Гораздо дороже стоит раздражение пользователя от того факта, что он не может воспользоваться приложением немедленно, а должен сначала скачать шрифты. Другое дело какие-то дизайнерские приложения и текстовые процессоры (которые дают возможность использовать очень много шрифтов). Еще один вариант – набор приложений, использующих общие шрифты.

Автоматический размер шрифта

Для небольших надписей (заголовков, индикаторов) можно выставлять автоматический размер шрифта. Есть, конечно тонкая подстройка в виде указания минимума, максимума и шага (или даже набора конкретных значений). Удобная штука для режима многооконности (и разделения экранов, и PiP). А если еще вспомнить, что сами экраны бывают разными по размеру и шрифты можно настроить нестандартно (мельче или крупнее), то полезность становится еще более очевидна. Впрочем, назвать это киллер-фичей нельзя. Там где было жизненно необходимо, и раньше был подбор высоты шрифта. Только делался он «вручную».

Адаптивные иконки

Теперь простая иконка может содержать два варианта границ (обычная и закругленная). Кроме того вводится понятие адаптивных иконок: в этом случае отдельно задается фоновое изображение (background) и передний план (foreground). Именно адаптивные иконки поддерживают визуальные эффекты.

Настраиваемые ярлыки

Теперь приложения смогут предлагать пользователю добавлять ярлыки для отдельных сущностей (объектов) на рабочий стол. Например, можно добавить контакт из мессенджера или объект из карт.

Максимальное соотношение сторон

Теперь приложение может ограничить поддерживаемое соотношение сторон экрана (задается для ширины, т. е. числом больше 1). Остальная часть экрана при запуске приложения будет неиспользованной. Например, можно выставить 1,78 (16:9) и приложение не сможет использовать весь экран Galaxy S8 или LG G6. Но зачем это надо на практике, не очень понятно. Ведь и без такой «фишки» никто не мешает разработчику покрасить часть экрана в черный цвет и не выводить туда изображение.

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

Поддержка нескольких дисплеев

При включении поддержки многооконности автоматически включается поддержка нескольких дисплеев. Приложение может указывать, на каком дисплее следует запускать тот или иной экран, но пользователь может переносить экраны между дисплеями.

Ограничения фоновых процессов

Теперь приложения, которые находятся в фоне и не имеют каких-то отображаемых на экране частей (например, уведомлений), получают серьезные ограничения на произвольную работу. Раньше это было одно из ключевых отличий Android от iOS: можно было делать в фоне все, что угодно, и сколь угодно долго. Но чудес не бывает, и такие возможности однозначно сказываются на разряде аккумулятора. Сейчас гайки постепенно заворачиваются. Впрочем, такие вещи обязательно надо попробовать на практике и только потом делать выводы.

… и многое другое

Кроме перечисленного, есть еще множество других изменений, которые надо знать разработчику (например, квоты на размер кэша). Подробнее см. официальную документацию.

Читайте также