Android Architecture Components - это набор решений от Google, которые помогут вам в разработке приложений.

Я разработал бесплатный курс по этой теме. Он охватывает следующие подтемы. 

 

1. Activity и Fragment Lifecycle

Architecture Components предоставляют несколько механизмов, сочетание которых, позволит вам удобно обрабатывать повороты экрана.

Lifecycle - отслеживает текущий статус Activity и может уведомлять об этом своих подписчиков

LiveData - получает и хранит данные, может отправлять их своим подписчикам

ViewModel - поможет сохранить живыми необходимые для вас объекты при повороте экрана

 

Полезные ссылки по теме:

ViewModel и LiveData: паттерны и антипаттерны

 

 

2. База данных

Room - удобная обертка для работы с базой данных.

 

 

3. Постраничная загрузка данных

Paging Library - библиотека для постраничной загрузки данных из базы данных, с сервера или любого другого источника.

 

 

Обсуждать эти темы можно в нашем Telegram чате.

После теоретических уроков я планирую поразбирать интересные примеры, в которых используются эти компоненты.

 

 

Список уроков:

  • Урок 1. Lifecycle

    В этом уроке рассмотрим возможности Lifecycle. Как подписаться на его события. Как узнать текущее состояние Activity.

  • Урок 2. LiveData

    В этом уроке рассмотрим основные возможности LiveData. Как подписаться на его данные. Как помещать в него данные. Как он взаимодействует со своими подписчиками.

  • Урок 3. LiveData. Дополнительные возможности

    В прошлом уроке мы разобрались, как отправлять и получать данные в LiveData. В этом уроке рассмотрим несколько дополнительных возможностей. Как преобразовать тип данных с помощью map. Как создать свой LiveData. Как объединить несколько LiveData в один с помощью MediatorLiveData.

  • Урок 4. ViewModel

    В этом уроке рассмотрим, как использовать ViewModel. Как сохранять данные при повороте экрана. Как передать Context в ViewModel. Как передать свои данные в конструктор модели с помощью фабрики. Как передать данные между фрагментами. Что использовать: ViewModel или onSavedInstanceState.

  • Урок 5. Room. Основы

    Библиотека Room предоставляет нам удобную обертку для работы с базой данных SQLite. В этом уроке рассмотрим основы. Как подключить к проекту. Как получать, вставлять, обновлять и удалять данные. 

  • Урок 6. Room. Entity

    В этом уроке более подробно рассмотрим возможности Entity. Как задать имя таблицы. Как задать имя или тип поля. Как создать составной или внешний ключ. Как создать индекс. Как использовать вложенные объекты.

  • Урок 7. Room. Insert, Update, Delete, Transaction

    В этом уроке рассмотрим подробнее аннотации Insert, Update и Delete. А также узнаем, как использовать транзакции в Room.

  • Урок 8. Room. Query

    В этом уроке поговорим подробнее про Query. В каком виде мы можем получать данные: List, массив, Cursor, LiveData. Как передавать параметры. Как получать только некоторые поля. Как с помощью Query выполнять update и delete запросы в Room.

  • Урок 9. Room. RxJava

    В этом уроке рассмотрим возможность совместного использования RxJava и Room. Как получать данные в Flowable, Single и Maybe.

  • Урок 10. Room. Запрос из нескольких таблиц. Relation

    В этом уроке рассмотрим, как получать данные из нескольких таблиц. А также разберемся, как использовать аннотацию Relation. 

  • Урок 11. Room. Type converter

    В этом уроке рассмотрим, как использовать конвертеры типов данных, чтобы Room мог сохранять не только поля-примитивы.

  • Урок 12. Room. Миграция версий базы данных

    В этом уроке рассмотрим, как выполняется миграция версий базы данных в Room

  • Урок 13. Room. Тестирование

    В этом уроке рассмотрим, как тестировать Room. Напишем несколько тестов для Dao и протестируем миграцию.

  • Урок 14. Paging Library. Основы

    В этом уроке начнем знакомство с Paging Library. Рассмотрим общую схему работы связки PagedList и DataSource. 

  • Урок 15. Paging Library. PagedList и DataSource

    В этом уроке рассмотрим, какие параметры мы можем задать для PagedList. Подробно разберем, какие значения необходимо передавать в callback.onResult в DataSource. Научимся использовать режим Placeholders.

  • Урок 16. Paging Library. LivePagedListBuilder

    В этом уроке обсудим, в каких потоках выполняется код загрузки данных. Разберем возможности LivePagedListBuilder. Узнаем, как использовать Paging Library с Room.

  • Урок 17. Paging Library. Виды DataSource

    В этом уроке рассмотрим, чем отличаются существующие виды DataSource: PositionalDataSource, PageKeyedDataSource, ItemKeyedDataSource

 

 


Language

Социальные сети

 

Telegram канал



Android чат в Telegram



Группа ВКонтакте



Страница в Facebook