Разработчик Android Nanodegree от Udacity обновлен до компонентов архитектуры Android


Разработчик Android Nanodegree от Udacity ускоряет работу с компонентами архитектуры Android с важным обновлением. Это означает, что популярность компонентов растет, и их можно даже считать современным способом работы на платформе.

Этот новый класс знакомит нас с четырьмя подтемами, которые составляют компоненты архитектуры:
1. Библиотека сохраняемости Room — ORM для упрощения взаимодействия с серверной базой данных.
2. LiveData — на основе RxJava и паттерна Observer, поэтому пользовательский интерфейс может автоматически обновляться при любых изменениях, происходящих в базовом хранилище данных.
3. ViewModel — кэширование и сохранение данных / состояния при изменении конфигурации.
4. Компоненты с учетом жизненного цикла — чтобы объекты, не имеющие жизненного цикла (определенного платформой), стали осведомленными о жизненном цикле.

Эти изменения не только обновляют, но и обновляют как разработку на платформе, так и Naonodegree. До Компонентов было чрезмерное использование некоторых конкретных шаблонов и передовых практик. Возьмите самый популярный — Погрузчики. Большая часть кода буквально «завалена» вызовами Loaders и LoaderManager для доступа к базе данных в отдельном потоке, для кэширования извлеченных данных, для сохранения изменений конфигурации и для обновления пользовательского интерфейса при возникновении событий активности. Большой процент кода приходился на те задачи, которые теперь заменяют Компоненты.
Лекции по Room и LiveData взаимосвязаны и объясняют, что вместо возврата строк таблицы, которые затем сопоставляются с POJO до достижения пользовательского интерфейса, они теперь возвращают объекты LiveData, которые инкапсулируют эти POJO и уведомляют пользовательский интерфейс о необходимости обновления через реактивное программирование. Это означает избавление от необходимости вручную проверять наличие изменений в базовом хранилище данных.
ViewModel обеспечивает защиту от утечек памяти, поскольку ее область действия синхронизирована с областью действия. Так, например, когда Activity уничтожается до того, как асинхронный вызов для выборки данных из базы данных или сети завершается, из-за того, что Activity не задерживается, эти данные будут доставлены в саму ViewModel! Если вы следовали моему подробному обзору / руководству из семи частей моего опыта работы с Android Nanodegree, вы знаете, как сложно поддерживать состояние, особенно когда в игру вступают другие компоненты, такие как фрагменты или Backstack.
Наконец, Lifecycle, состоящий из LifeCycleOwner и LifeCycleObserver, позволяет компонентам, не имеющим собственного жизненного цикла (LifeCycleObservers), например LiveData, иметь возможность наблюдать жизненный цикл владельца (LifeCycleOwner), например, Activity или Fragment , и реагировать на происходящие события их жизненного цикла.
Уроки сопровождаются соответствующим кодом, который является классическим приложением списка дел, но теперь переписан, чтобы представить компоненты архитектуры.
Никаких намеков нет, но я подозреваю, что когда-нибудь в ближайшем будущем проекты, которые необходимо отправить, такие как (самое сложное) приложение поддержки, чтобы продвигаться между этапами Nanodegree, будут изменены, чтобы спросить для их реализации необходимо использовать Компоненты архитектуры.


Добавить комментарий