Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
При повороте экрана нужно сохранить и изменить определённые данные в Presenter без ViewModel. На каком этапе жизненного цикла и как это сделать?
При повороте экрана Activity уничтожается и создаётся заново. В MVP можно сохранить данные в onSaveInstanceState(Bundle) Presenter-а через Bundle (через интерфейс Activity → Presenter) и восстановить в onCreate нового View, передав сохранившийся Bundle. Либо хранить Presenter с данными в setRetainInstance(true) у Fragment.
Какие проблемы возникают при большом количестве NotificationCenter-подписок?
Большое количество подписок в NotificationCenter может привести к утечкам памяти и неожиданным вызовам обработчиков. Если подписки не удаляются вовремя, объекты продолжают получать события после деинициализации логики. Также растет связность кода и сложность отладки. В итоге приложение становится менее предсказуемым и устойчивым.
В каком виде Presenter получает данные от Interactor?
Presenter получает данные в виде Response-модели. Эта модель содержит результат бизнес-логики без привязки к UI. В ней нет форматирования для отображения. Presenter преобразует Response в ViewModel. Такой подход делает архитектуру более прозрачной и управляемой.
Как организовано взаимодействие View и Presenter в MVP?
В MVP View и Presenter взаимодействуют напрямую через интерфейсы. View передаёт пользовательские события Presenter, а Presenter обрабатывает логику и обновляет View. View обычно реализует протокол, который определяет методы обновления UI. Presenter не знает конкретной реализации View. Это делает код более тестируемым.
Как связаны View и Presenter в VIPER?
View и Presenter в VIPER связаны через протоколы. View хранит сильную ссылку на Presenter, а Presenter — слабую ссылку на View. View передаёт пользовательские события Presenter. Presenter обрабатывает их и обновляет View через интерфейс. Такая схема предотвращает retain cycle и делает код тестируемым.
Что делают методы enter и leave?
Рейтинг:
5
Сложность:
5
enter и leave используются для ручного управления DispatchGroup.enter увеличивает счётчик активных задач, leave уменьшает его.
Когда счётчик становится равен нулю, группа считается завершённой.
Это позволяет отследить завершение асинхронных операций.
Рейтинг:
2
Сложность:
6
Рейтинг:
4
Сложность:
6
Рейтинг:
4
Сложность:
6
Рейтинг:
5
Сложность:
5
Рейтинг:
5
Сложность:
6