8 мая был представлен Android Jetpack, следующее поколение компонентов, инструментов и архитектурных руководств для ускорения разработки Android-приложений.

Android Jetpack был вдохновлен Support Library, набором компонентов, позволяющих легко использовать новые функции Android, сохраняя обратную совместимость; библиотека поддержки в настоящее время используется в 99% приложений в Play Маркете. Следуя этому успеху, разрабы представили Architecture Components, предназначенные для упрощения обработки данных во время изменений конфигурации и сложностей жизненного цикла приложения. Поскольку эти компоненты вводились на I/O всего год назад, подавляющее число из них было принято. Компании, такие как LinkedIn, Zillow и iHeartRadio, получают меньше ошибок, более высокую тестируемость и больше времени, чтобы сосредоточиться на том, что делает их приложение уникальным.

Что такое Android Jetpack?

Android Jetpack — это набор компонентов, инструментов и руководств для создания отличных приложений для Android.  Компоненты Android Jetpack объединяют существующие компоненты библиотеки поддержки и архитектуры и объединяют их в четыре категории:

Screen Shot 2018-05-05 at 11.49.30 AMimage1

 

Компоненты Android Jetpack предоставляются как «разрозненные» библиотеки, которые не являются частью базовой платформы Android. Это означает, что вы можете начать использовать любой компонент на своей скорости, в свое время. Когда станут доступны новые возможности Android Jetpack, вы сможете добавить их в свое приложение, развернуть свое приложение в Play Store и предоставить пользователям новые функции за один день! Разделенные библиотеки Android Jetpack все были перемещены в новое пространство имен androidx.* (как подробно описано в этом сообщении).

Кроме того, ваше приложение может работать на разных версиях платформы, поскольку компоненты Android Jetpack построены таким образом, чтобы обеспечить их функциональность, не зависящую от какой-либо конкретной версии, обеспечивая обратную совместимость.

Кроме того, Android Jetpack построен на основе современных методов проектирования, таких как разделение проблем и тестируемость, а также такие функции производительности, как интеграция Kotlin. Это значительно упрощает создание надежных и качественных приложений с меньшим количеством кода.

Хотя компоненты Android Jetpack созданы для совместной работы, например, с учетом жизненного цикла и live data, вам не обязательно использовать их все — вы можете интегрировать те части Android Jetpack, которые решают ваши проблемы, сохраняя при этом части вашего приложения которые уже работают отлично.

Мы знаем, что эти преимущества важны для вас из-за обратной связи:

«Мы подумывали попробовать MVVM в нашей базе кода. Компоненты Android Architecture Components предоставили нам простой шаблон для его реализации, и это помогло сделать наш код более пригодным для тестирования, а возможность модульного тестирования ViewModels определенно повысила надежность кода».

— Sumiran Pradhan, Sr. Engineer, Zillow

И, наконец, как вы можете видеть на диаграмме Android Jetpack выше, сегодня мы объявляем и новые компоненты.

Читать ещё :   Анонс Android P для разработчиков. Часть 2

Что нового

Android Jetpack поставляется с пятью новыми компонентами:

  • WorkManager alpha release
  • Navigation alpha release
  • Paging stable release
  • Slices alpha release
  • Android KTX (Kotlin Extensions) alpha release

WorkManager

Компонент WorkMananager представляет собой мощную новую библиотеку, которая обеспечивает универсальное решение для фоновых заданий на основе ограничений, требующих гарантированного выполнения, заменяя необходимость использования таких вещей, как jobs или SyncAdapters.

WorkManager предоставляет упрощенный, современный API, возможность работы с устройствами с сервисами Google Play или без них, возможность создания графиков работы и возможность запроса состояния вашей работы. Ранняя обратная связь очень обнадеживает, но мы любим следить за тем, чтобы ваши варианты использования также были покрыты. Вы можете видеть, что у нас есть, и предоставить обратную связь по нашей альфе на компоненте WorkManager.

Navigation

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

Сегодня мы представляем компонент Navigation как основу для структурирования вашего пользовательского интерфейса в приложении, с акцентом на то, чтобы сделать single-Activity app предпочтительной архитектурой.

Благодаря встроенной поддержке фрагментов вы получаете все преимущества Architecture Components, такие как Lifecycle и ViewModel, а также позволяя Navigation обрабатывать сложность FragmentTransactions для вас. Кроме того, компонент Navigation позволяет вам объявлять переходы, которые мы обрабатываем для вас, автоматически создает правильное поведение Up и Back, включает полную поддержку глубоких ссылок, и предоставляет помощники для подключения навигации в соответствующие виджеты пользовательского интерфейса, такие как navigation drawer и bottom navigation. Но это не все! Navigation Editor в Android Studio 3.2 позволяет визуально просматривать и управлять свойствами навигации:

pasted image 0 (2)image2

Компонент Navigation также находится в альфе, и нам нужны ваши отзывы.

Paging

Данные, представленные в приложении, могут быть большими и дорогостоящими для загрузки, поэтому важно избегать загрузки, создания или представления слишком большого количества одновременно. Компонент Paging 1.0.0 позволяет легко загружать и представлять большие наборы данных с быстрой и бесконечной прокруткой в ​​вашем RecyclerView. Он может загружать выгружаемые данные из локального хранилища, сети или и того, и другого, а также позволяет определить, как загружается ваш контент. Он работает из коробки с Room, LiveData и RxJava.

Slices

И, наконец, чтобы завершить набор новых функций, дебютирующих в Android Jetpack, это компонент Slices.

«Slice» — это способ разместить пользовательский интерфейс вашего приложения внутри Google Assistant в результате поиска:

Читать ещё :   Architecture Components. ViewModel. Часть 3

Screen Shot 2018-05-07 at 6.10.13 PM

Android KTX

И последнее, но не менее важное: одна цель Android Jetpack использует возможности языка Kotlin, которые делают вас более продуктивными. Android KTX позволяет вам преобразовать код Kotlin типа этого:

в более сжатый код Kotlin, как показано ниже:

Это всего лишь первый шаг в оказании поддержки Kotlin компонентам Android Jetpack; наша цель — сделать Android Jetpack отличным для разработчиков Kotlin (и, конечно же, Java-разработчиков!). Вы можете больше узнать об Android KTX на веб-сайте Android Developer.

Начинайте

Вы можете начать работу с Android Jetpack на developer.android.com/jetpack . Вы найдете документы и видео для Android Jetpack, посмотрите, что нового в компонентах Android Jetpack, участвуйте в сообществе и дайте нам обратную связь. Мы также создали плейлист YouTube, посвященный Android Jetpack , поэтому вы можете настроить информацию об Android Jetpack, компонентах, инструментах и ​​лучших практиках.

Начало работы с Android Jetpack расскажет вам, как привести компоненты Android Jetpack в существующие приложения и помочь вам начать работу с новыми приложениями для Android Jetpack. Android Studio 3.2 имеет отличную инструментальную поддержку для Android Jetpack. Для создания новых приложений используйте активность Activity & Fragment + ViewData, с которой вы можете перейти от File | New | New Project в Android Studio:

new_templateimage4

 

Что дальше

В Android Jetpack мы используем преимущества Библиотеки поддержки и Architecture Components, интеграцию с Android Studio и поддержкой Kotlin. И хотя Android Jetpack предоставляет компоненты следующего поколения, инструменты и рекомендации для ускорения разработки Android, у нас есть намного больше, что мы хотим сделать, и мы хотим вашу помощь. Перейдите на сайт developer.android.com/jetpack и сообщите нам, что мы можем сделать, чтобы ваш опыт создания приложений Android стал еще лучше.