Google I/O 2021: что нового для Android-разработчиков (полный обзор)

d7805b889376ed7c43d7cc204ac757ae.png

В этом году Google I/O проходил в виртуальном формате. Как это было, например, 3 года назад, можно прочитать в моей прошлой статье. Привычка делать саммари интересных докладов для разработчиков у меня осталась, так что решил поделиться своими заметками после просмотра сессий и чтения блог-постов. Думаю, что будет полезно не только внутри Wrike.

Android 12: Новый дизайн и фреймворк Material You

Это обновление дизайна называют самым большим ever. Бету на Pixel, начиная с 3, а также десяток устройств других производителей (Asus ZenFone 8, OnePlus 9/9 Pro, Oppo Find X3 Pro, Realme GT, Tecno Camon 17, TCL 20 Pro 5G, Vivo iQOO 7 Legend, Xiaomi Mi 11, Mi 11 Ultra, Mi 11i and Mi 11X Pro, ZTE Axon 30 Ultra 5G) уже можно скачать тут.

Источник — https://blog.google/products/android/android-12-betaИсточник — https://blog.google/products/android/android-12-beta

Всё теперь гибкое, анимированное и настраиваемое под пользователя. Почитать подробнее про возможности дизайна можно здесь. Сделали адаптивные цветовые схемы, которые подстраиваются под обои телефона или просто настраиваются пользователем исходя из предпочитаемых цветов, новые анимации открытия приложения (теперь всё с красивым переходом и быстро) и окончание списка с резиновостью (overscroll effect). А также смягчили переключение звука из активного приложения.

Ещё добавили интерактивные красивые закругленные виджеты с чекбоксами, кнопками, настройкой внешнего вида и адаптацией под размер устройства и системные цвета.

Источник — https://android-developers.googleblog.com/2021/05/whats-new-in-android-12-beta.htmlИсточник — https://android-developers.googleblog.com/2021/05/whats-new-in-android-12-beta.html

Обещают повышенную производительность (системные приложения потребляют на 22% меньше ресурсов) и используют менее производительные ядра. В целом, запуск приложений и работа с данными должны стать намного быстрее. Девайсы, которые выдерживают более строгие параметры высокой производительности и поддержки возможностей, получат бейджик «performance class» и смогут более эффективно работать на Android 12.

Android Privacy

Как всегда, много внимания уделили лучшему и честному миру с полным владением своими данными. Новый Privacy Dashboard показывает, какие приложения получали доступ к локации, микрофону и камере за последние сутки. 

Источник — https://android-developers.googleblog.com/2021/05/android-security-and-privacy-recap.htmlИсточник — https://android-developers.googleblog.com/2021/05/android-security-and-privacy-recap.html

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

Источник — https://android-developers.googleblog.com/2021/05/android-security-and-privacy-recap.htmlИсточник — https://android-developers.googleblog.com/2021/05/android-security-and-privacy-recap.html

Для поиска Bluetooth-устройств больше не нужен будет доступ к точному местоположению.

Если вам в приложении нужно указать только город или район, то можно разрешить приложению использовать примерное местоположение.

Источник — https://android-developers.googleblog.com/2021/05/android-security-and-privacy-recap.htmlИсточник — https://android-developers.googleblog.com/2021/05/android-security-and-privacy-recap.html

Появились уведомления о том, что приложение прочитало буфер обмена.

А ещё улучшили убийство всех разрешений на приложение, если им давно не пользовались. Теперь система ещё и удалит все кэши и очистить память.

Jetpack Compose

Стабильная версия 1.0 выходит в июле. Кто не помнит, Jetpack Compose — это фреймворк декларативного дизайна, аналог SwiftUI на iOS, который может сделать вам красиво из кода на любом устройстве. После стабилизации можно будет пользоваться без опасений, но многие разработчики экспериментируют уже сейчас. Вот примеры приложений на нём, выглядит круто:

Источник — https://github.com/android/compose-samplesИсточник — https://github.com/android/compose-samples

Android Studio Arctic Fox 

Источник — https://android-developers.googleblog.com/2021/05/android-studio-arctic-fox-beta.htmlИсточник — https://android-developers.googleblog.com/2021/05/android-studio-arctic-fox-beta.html

Вышла последняя бетка Artic Fox — песца. 

Что нового:

  • Ускорили разработку дизайна интерфейса с помощью Compose и быстрого просмотра изменений на устройствах, добавили Accessibility-сканер.

  • Добавили возможности расширения приложения на новые устройства: быстрый пейринг часов, новые симуляторы с упрощённым управлением — часы с датчиком пульса, пульты GoogleTV и CarAuto.

  • Повысили удобство разработки: новые lint checks, тестирование на нескольких устройства сразу с помощью Test Matrix, новый Memory Profiler, WorkManager Inspector для фоновых задач и быстрый переезд на Non-transitive R classes. Кстати, поддержали и Apple Silicon.

Kotlin

Google любит Kotlin. Добавили Kotlin Symbol Processing, ускорив в 2 раза для библиотек типа Room.

Android Jetpack

Много чего вышло из беты:

  • CameraX — для легкой работы с камерой, в том числе с HDR, зумами, экспозицией.

  • Hilt — dependency injection на базе Dagger.

  • Paging 3.0 — для легкой загрузки и показа порций данных. 

  • ConstraintLayout — для проектирования макетов, MotionLayout — API для управления движением и анимацией виджетов.

  • Security Crypto — позволяет безопасно и легко шифровать файлы и SharedPreferences.

  • Fragment — библиотека деления приложения на экранные кусочки, которые могут жить в одной активити, теперь работает еще лучше и быстрее. Но они пишут, что поломали совместимость, и это нужно будет перепроверить вам самостоятельно.

В бету перешёл DataStore — надежное решение для хранения данных, которое нормально работает с Flow и RxJava и устраняет недостатки SharedPreferences.

В альфе немного обновились библиотеки:

  • AppSearch — новая библиотека поиска на устройстве, которая обеспечивает высокую производительность и многофункциональность полнотекстового поиска внутри приложения.

  • Room — средство безопасной работы с SQLite.

  • WorkManager — рекомендуемый Android способ планирования отложенных асинхронных задач, которые выполняются даже при выходе приложения или перезапуске устройства.

  • Navigation — фреймворк Jetpack для перемещения между экранами приложений.

  • Macrobenchmark — расширяет охват бенчмаркинга Jetpack до запуска приложений и локального поведения типа производительности прокрутки.

  • Библиотека EmojiCompat — поддерживает emoji, начиная с Android 19 (4.4). Добавили emoji2-формат с большим количеством вариантов emoji.

  • Можно также делиться своим шорткатом для Google Assistant в библиотеку шорткатов через ShortcutManager. 

WearOS

Объединились с Samsung Tizen, чтобы улучшить опыт работы с часами, а также обновили системные приложения и подружились с фитнес-сервисами Fitbit. Добавили возможность быстро вернуться к приложению, красивые плитки (наборы UI-элементов) через Tiles API и набор сервисов для приложений для здоровья и фитнеса. Упростили работу часов с IDE: эмулятор, быстрый пейринг, сделали даже виртуальный датчик сердечного ритма.

Источник — https://android-developers.googleblog.com/2021/05/wear-os-at-io.htmlИсточник — https://android-developers.googleblog.com/2021/05/wear-os-at-io.html

Планируется запуск специальных секций в Google Play для быстрого поиска приложений для часов.

Большие экраны: планшеты, Chrome OS и foldables («раскрывушки»)

Google заявляет, что продаются миллионы больших устройств ежегодны и процесс ускоряется. Рекомендуют добавить лейаут с размером больше 600dp по короткой стороне, возможность использовать в портрете и ландшафте и возможность работы на весь экран. А также поддерживать split screen, multiple instance support, drag and drop и навигацию с помощью клавиатуры и шорткатов. Советуют посматривать на гайдлайны для больших экранов.

Добавили обновленный SlidingpaneLayout 1.2.0, который автоматически подстраивает вьюхи под большие экраны и раскладушечки, чтобы отображать две рядом.

Источник — https://android-developers.googleblog.com/2021/05/whats-new-in-foldables-tablets-and.htmlИсточник — https://android-developers.googleblog.com/2021/05/whats-new-in-foldables-tablets-and.html

Добавили компонент навигации сбоку вместо навигации внизу — Vertical Navigation Rail.

Источник — https://android-developers.googleblog.com/2021/05/whats-new-in-foldables-tablets-and.htmlИсточник — https://android-developers.googleblog.com/2021/05/whats-new-in-foldables-tablets-and.html

Появилось свойство Max Width для кнопок, текстовых полей и листов, чтобы они сильно не толстели на больших экранах.

Из больших обновлений — WindowManager Jetpack library в альфе, который поможет эффективно раскидывать вьюхи на планшеты и «раскрывушки».

Android for Cars

Полезно не для всех, но для карт и музыки — да. Android Auto теперь на 100 миллионах машин и даже на Porsche 911. Для разработчиков завезли Android for Cars App Library.

AndroidTV 

Тоже подходят в основном стримингу. 80 миллионов устройств с Android TV OS, 80% рост в США. Советуют активно пользоваться WatchNext API, сделали более продвинутый Cast Connect для стриминга в приложение, добавили телевизоры в Firebase Test Lab и, как обычно, обновили эмулятор.

Обновления в Google Play

Самая денежная часть. С 7 июня можно будет подключиться к программе сниженной комиссии: 15% с выручки вместо 30%, пока не заработаете 1 миллион долларов в год. Хорошая штука для всех. При этом добавили 34 новые формы оплаты для 30 стран и снизили минимальную стоимость для 20 стран.

Ещё из интересного — внедряют возможность покупки нескольких ваших докупок за 1 раз (например, 5 сундуков или 5 раз по 100 страниц текста), а также сборные подписки, которые включают несколько элементов или предложений. Ещё появятся предоплаченные планы (например, 2000 рублей за полгода), чтобы продвигать их внутри и за пределами стора.

Добавили секцию Google Play SDK Console, которая позволит увидеть производительность вашего SDK в разных приложениях. Пока доступно только для минимального количества партнёров.

Напоминают, что запретят использовать в названии приложений большое количество ключевиков и упоминания вроде free и sale. А ещё Android App Bundles будет обязательным для всех.

Для аналитиков сделали сравнение приложения с конкурентами в Google Play Console и возможность самостоятельно настроить KPI на главном экране.

Напоминают про Google Play Pass, в котором можно заявить игру или приложение. Оплачивают по фактическому времени: чем больше используется приложение — тем больше разработчик получит денег. Подписка теперь доступна на 40 рынках.

В общем, будет чем заняться этим летом.

Напоследок напомню, что в Wrike есть вакансии разработчиков с релокацией в Прагу. Если хотите присоединиться к нашим усилиям по переходу на Android 12 — будем рады познакомиться!

© Habrahabr.ru