Почему надо сохранять состояние в Presenter

«Почему надо сохранять состояние в Presenter» — вопрос из категории Архитектура, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Сохранение состояния в Presenter позволяет восстановить UI после смены конфигурации (например, поворота экрана) без потери данных. Это особенно важно, если данные загружаются асинхронно или есть сложные UI-состояния.

Пример:

class MyPresenter : BasePresenter<MyView>() {
    private var data: List<String>? = null

    fun loadData() {
        if (data == null) {
            // Загрузка данных
            data = fetchFromNetwork()
            view?.showData(data)
        } else {
            view?.showData(data) // Восстановление данных
        }
    }
}

Без сохранения состояния при повороте экрана данные пришлось бы загружать заново, что ухудшает UX и увеличивает нагрузку на сеть.