Обложка канала

Мобайл: дизайн и разработка

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

Мобайл: дизайн и разработка

8 лет назад
Открыть в
Небольшая заметка про то, как использовать Architecture Components и не косячить:

1. Когда подписываетесь на обновления LiveData во фрагменте, передавайте в метод observe не сам фрагмент (this), а viewLifecycleOwner. Это предотвратит создание новых Observer'ов при пересоздании view фрагмента, если сам фрагмент сохраняется во время смены конфигурации.

2. Загружайте данные для экрана не в методе onCreate/onCreateView, а в конструкторе ViewModel. Благодаря этому данные не будут загружаться заново каждый раз при смене конфигурации.

3. Если вы передаете ссылку на ViewModel объекту, который живет дольше, обнуляйте её в методе onCleared, чтобы Garbage Collector смог её уничтожить.

4. Убедитесь, что View из ViewModel получают LiveData, а не на MutableLiveData. View не должны изменять данные в LiveData.

5. Передавайте во ViewModelProvider не сами зависимости, а их провайдеры (class MyViewModelFactory(private val repository: Provider<MyRepository>)). Тогда зависимости не будут создаваться каждый раз, когда ViewModelFactory пересоздается при смене конфигурации.

https://proandroiddev.com/5-common-mistakes-when-using-architecture-components-403e9899f4cb

#разработка #architecturecomponents