Сегодня в выпуске: 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
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).
Еще один важнейший анонс, сделанный компанией на Google I/O, — это App Bundle (видео), мечта всех домохозяек, взявших Android Studio в руки. Представь, что у тебя есть приложение, в которое понапихано множество самой разной графики в разных разрешениях, поддержка 150 языков, а еще есть сборки нативных библиотек для четырех архитектур.
Чтобы поддерживать все это дело, тебе приходится писать большой build.gradle, который собирал бы для тебя с десяток различных вариантов APK для разных платформ, разрешений экрана, возможно даже языков. Все это пришлось бы отдельно заливать в Play Store (ну ладно, может быть, ты юзаешь devops). В любом случае возни море, а все ради того, чтобы размер APK для каждого устройства и региона был адекватным.
А теперь представь, что ты просто нажимаешь «Собрать приложение» и вместо множества пакетов Android Studio выдает тебе один большой файл формата AAB. И в нем все: все картинки, шрифты, изображения, сборки библиотек — все, что только можно. Ты заливаешь этот файл в Google Play, и на этом твои проблемы заканчиваются: Google Play сам разберет его на множество мелких APK под разные архитектуры, размеры экрана и регионы.
Содержание статьи Jetpack Android App Bundle Посмотреть Оптимизация Android P Другое Скриптовый Kotlin внутри Kotlin, который в Java Развлекуха с Anko Инструменты Сегодня в выпуске: 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 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 под разные архитектуры, размеры экрана и регионы. Источник новости - google.com