Сегодня в выпуске: Jetpack для Android-разработчиков, WorkManager для всех фоновых задач, Android App Bundle вместо тысячи APK, AndroidX, а также другой треш и угар с Google I/O, включая потрясающий рассказ о том, как Android отрисовывает картинку и оптимизирует код. Ну а для любителей Kotlin — Kotlin в Android, Kotlin в браузере, Kotlin в Kotlin, который внутри Java, и два отличных читшита по этому отличному языку.
 

Google I/O

 

Jetpack

На конференции Google I/O много говорили о Jetpack — своего рода прокачанном наборе инструментов, который сама Google рекомендует использовать для создания быстрых, производительных, эффективных и самых-самых в мире приложений.

В целом инструменты достаточно стандартны, это все те же набившие оскомину AppCompat, новомодный Android KTX (кстати, да, Google намекает, что Java пора на покой), компоненты так называемой архитектуры Android: LiveData, ViewModel, Room и так далее. В списке есть и стандартные API Android, такие, например, как менеджер загрузок, а еще Emoji, куда же без них.

Запутав за десять лет экосистему Android до такой степени, что среднестатистический разработчик уже не может понять, куда ему ткнуться, Google решила все-таки внести ясность.

Компоненты Jetpack
Компоненты Jetpack
 

WorkManager

Среди компонентов Jetpack оказался один новый и довольно занятный. Название ему — WorkManager, а история очень и очень интересная. Издревле в Android было два основных метода выполнить фоновую работу: фоновый поток (AsyncTask, например) и сервисы. Последние пользовались особой популярностью, потому как работали независимо от самого приложения, да еще и с возможностью попросить систему о своем перезапуске.

Когда набежала толпа гоблинов, вирусов и говнокодеров, стало ясно, что так дело не пойдет и нужен более контролируемый системой фоновый механизм. Google придумала JobScheduler, подсистему Android 5, которая позволяла отдать системе задачу на выполнение в такое-то и такое-то время, почти как в iOS. Сервисы тем временем неистово подавлялись (а в Android 8 вообще ушли в нелегал).

Со временем JobScheduler обрастал функциональностью, появился его аналог для более старых ОС (Firebase JobDispatcher), а народ все не унимался: ну неудобно нам, убогим, первые версии JobScheduler не работали, другие постоянно менялись, предлагаемая Google альтернатива зависела от самой инфраструктуры Google; плюс у нас тут RxJava и вообще реактивщина, а вы нам какой-то JobScheduler с его идеями из прошлого века.

Вот Google и решила выкатить свой WorkManager с промайзами и обсерверами. Если говорить в двух словах, то WorkManager — это работающая на костях существующего Android библиотека, которая позволяет тебе делать любые фоновые штуки с реактивщиной в нужное тебе время, нужной последовательности и нужных условиях и вообще не заботиться о том, на какой версии все это будет работать (библиотека выберет нужный механизм сама, в зависимости от версии Android).

WorkManager.getInstance().beginWith(firstWork)
  .then(secondWork)
  .then(thirdWork)
  .enqueue()
 

Android App Bundle

Еще один важнейший анонс, сделанный компанией на Google I/O, — это App Bundle (видео), мечта всех домохозяек, взявших Android Studio в руки. Представь, что у тебя есть приложение, в которое понапихано множество самой разной графики в разных разрешениях, поддержка 150 языков, а еще есть сборки нативных библиотек для четырех архитектур.

Чтобы поддерживать все это дело, тебе приходится писать большой build.gradle, который собирал бы для тебя с десяток различных вариантов APK для разных платформ, разрешений экрана, возможно даже языков. Все это пришлось бы отдельно заливать в Play Store (ну ладно, может быть, ты юзаешь devops). В любом случае возни море, а все ради того, чтобы размер APK для каждого устройства и региона был адекватным.

А теперь представь, что ты просто нажимаешь «Собрать приложение» и вместо множества пакетов Android Studio выдает тебе один большой файл формата AAB. И в нем все: все картинки, шрифты, изображения, сборки библиотек — все, что только можно. Ты заливаешь этот файл в Google Play, и на этом твои проблемы заканчиваются: Google Play сам разберет его на множество мелких APK под разные архитектуры, размеры экрана и регионы.

Продолжение доступно только подписчикам

Материалы из последних выпусков можно покупать отдельно только через два месяца после публикации. Чтобы продолжить чтение, необходимо купить подписку.

Подпишись на «Хакер» по выгодной цене!

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

1 комментарий

  1. heavis

    30.05.2018 at 11:12

    Но ведь…код «активности со сложным интентом» не изменился в длине 🙂

Оставить мнение

Check Also

Брутфорс в английской глубинке. Как криптостойкие шифры вскрывали до компьютеров

Ты наверняка слышал про тест Тьюринга и, возможно, машину Тьюринга. Однако помимо абстракт…