Передача данных в MVP


#1

Привет! Использую в приложении архитектуру MVP. Появилась необходимость передать данные с одного экрана на другой. Какие есть способы реализации, не нарушающие архитектуру?

Правильно ли я понимаю, что слой View не должен хранить данные? Как в таком случае передать их сразу в Presenter?


#2

Скажите, а на основе чего вы поняли что у вас именно MVP?


#3

Я изучаю разные архитектуры и решил попробовать написать приложение с использованием MVP, следуя этой логике:


#4

так, а вы смотрели примеры MVP кода?


#5

Да, конечно. Здесь, например используется дополнительный компонент – Router. В других примерах переход осуществляется во View, но мне кажется, что это не совсем правильный подход.

Router, в свою очередь, немного усложняет архитектуру. Хочется попробовать найти какой-то компромисс, если это возможно.


#6

Вот честно, новички, объясните мне - новичку, зачем вы в первом/втором приложении делаете упор на архитектуру? Одна, другая… у вас забот мало? А потом не знаете как передать данные между контроллерами )) Да, понятно: потом будет проще разобраться, оптимизация и тп
По моему мнению, всё должно быть постепенно, и первому/второму приложению какая-то прямо определённая архитектура точно не важна. Оптимизация приложению из 2-10 экранов обычных - ну хз. Тут не знаешь как один файл забэкапить ))), и тратишь неделю на изучение английских ресурсов :rofl:
Для первого раза пишите по примерам - главное, чтобы работало. Вы потом сами через 2 недели - 2 месяца уже другими глазами свой на код посмотрите. Постепенно и придёте к необходимости архитектуры, когда код достигнет, наверное 10-100 тысяч строк. А так, ну я не знаю - мне жалко времени на архитектуру, пока у меня бонально данные из firestore не грузятся нормально ))


#7

Дело в том, что это не первое мое приложение :slight_smile: Я знаю как передать данные между контроллерами, но в условиях этой архитектуры такая задача немного не очевидна.

Тут дело не в оптимизации, а в том, чтобы разобраться как может (и должно, я думаю) работать приложение. Если вы посмотрите вакансии на место iOS-разработчика, даже на джуна, практически везде требуют знание не очень сложных архитектур – MVP, MVC, MVVM.

Лучше ведь изначально научиться писать код и строить приложения грамотно, чем потом переучиваться, разве не так?

Кстати, многие приложения которые я писал без использования какой-либо архитектуры (или ее подобия), как минимум затрудняют понимание своего же кода через какую-то неделю – не понятно что и где искать. Архитектура хотя бы структурирует код :slight_smile: Ну или просто я пишу очень плохо.


#8

Ответ принят, всё ясно ))


#9

Золотые слова. Тоже начинающий. Выкладывал первое приложение пообещал что следуюещее будет строго MVP, делал второе, на пол пути забил, потому что 50% всего не работало :rofl:, на третьем приложении ржал с построение первого, и только сейчас на 5ом, начинаю понимать что и как должно быть, но через пару месяцов посмеюсь и с этого. Всему свое время :crazy_face:


#10

так а в чем проблема передачи данных по segue?


#11

Когда устроитесь на работу, внезапно выясниться, что никто на 100% не следует классическому описанию архитектур и подмешивают туда и перемешивают всякое. Так что теорию почитайте, чтобы примерно понимать что где находится.

Я в MVP ни разу не специалист, но если хотите передавать данные, то через презентер это и делайте. Когда он разрастеться, выделите там какой-нидь interactor, который будет за бизнесс-логику отвечать итп.


#13


#14

Надо было зарегаться и ответить на вопрос, показать «дну» как надо. Критиковать каждый может, реально что то сделать единицы.


#15

Я был о вас лучшего мнения. Дизлайк, отписка…

Спойлер

Срказм


#18

что за бред и 20 символов ))))