конкретно про презентер/вьюмодель. Они ведь не могут держать ссылку на контекст. Но почему они не могут принимать в свои методы сущности Android и быть платформозависимыми? У меня никогда не было такой необходимости, но в теории...
Ну как правило все зависит от времени жизни этих объектов. Я не вижу проблем в том, чтобы передать, например Bundle. Хотя это не очень удобно (проще написать data class), но теоретически - можно. В сферической архитектуре у вас presentation слой может быть написан в gradle-модуле на чистом kotlin/java. Но так никто не делает:)
Когда вы попробуете написать юнит-тест на презентер, которому требуется контекст, то столкнетесь с проблемой того, что jvm не знает ничего о нем. И придется использовать методы, которые убивают всю прелесть юнит тестирования.
А какие объекты еще можно передавать в презентер? Активити и фрагменты (и контекст) устаревают. Преференсы? Не удобно работать с ключами, проще написать обертку поверх и передать ее (получится репозиторий) и так со всем) Обертка над нативной штукой позволяет создать более удобное и читаемое API
Обсуждают сегодня