Был ли кейс когда надо было поместить один объект на два экрана

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

Ответ

Да, такое бывает, например, при передаче объекта между фрагментами или активити.

Решение 1: Передавать Parcelable объект через Bundle:

// Отправка
val intent = Intent(this, SecondActivity::class.java)
intent.putExtra("user", user as Parcelable)
startActivity(intent)

// Получение
val user = intent.getParcelableExtra<User>("user")

Решение 2: Использовать ViewModel с SharedViewModel, если фрагменты в одном активити:

class SharedViewModel : ViewModel() {
    val sharedData = MutableLiveData<DataObject>()
}

// Фрагмент 1
sharedViewModel.sharedData.value = dataObject

// Фрагмент 2
sharedViewModel.sharedData.observe(viewLifecycleOwner) { data -> 
    // use data
}

Важно: Не хранить тяжелые объекты или ссылки на Context/View, чтобы избежать утечек памяти.