MVP + Network Service + Второй модуль part 2
Вставка
- Опубліковано 30 лис 2019
- Для новеньких куда еще присоединиться:
Куда присоединиться:
Всем привет, теперь вы сможете меня поддержать и получить эксклюзивные и закрытые видео смотреть тут - boosty.to/theswiftdevelopers
1.Наше сообщество в вк(более 6 + тыс) = theswiftdevelopers
2.В телеграмме мы помогаем новичкам и всем желающим (нас больше 3 000 + тыс) - t.me/joinchat/Qswat5FErtb3cPfV
Куда присоединиться:
1.Наше сообщество в вк(добаляемся к более 3,5 тыс) = vk.com/theswiftdevelopers
2.В телеграмме мы помогаем новичкам и всем желающим (нас больше 1,500 тыс) - t.me/joinchat/BAn0BkLMGrfpDYy2cnysNg
p.s
Домашние задание: смотрите в группах!
Если все понравилось ты знаешь что делать;)
Ставь лайк и пиши комент! :)
а если NetworkService должен хранить состояние, а вы его каждый раз создаете заново? Например, в чуть более сложных приложениях используется кастомная вариация URLSession, общая для всех запросов
Эти два последних видео просто огонь
разве успел досмотреть?)
у меня лично,уверен и у многих ваших подписчиков,уже привычка паявилса,сначало лайкнуть потом только пасматреть)))
@@grigorhovhannisyan2417 я кстати тоже лайк ставлю сначала)) это что-то да значит в этом мире))
спасибо за видео
все четко даже спустя 4 года все работает😂
буду использовать эту архитектуру с своим пет-проектом
ждем от вас еще больше таких информативных видео
35-50
- А он говорит "А давай мне 'comment' и я тебе соберу что ты хочешь!"=))
И позновательно и весело=)
Блин уже столько всяких видео и статей посмотрел по архитектуре, а как выставлять зависимости при инициализации только тут понял! Огромная Вам благодарность Евгений! ) Нереально крутые уроки! )
Пушка, на таких уроках можно вырасти из мамкиного программиста) Жду третью часть!
Огромное человеческое спасибо!) Ощущение, что вырос в несколько раз за это видео! Рекомендую обязательно повторять за видео и писать код. Плюс у вас останется код, который в дальнейшем не раз поможет. Спасибо еще раз!)
Очень надеюсь, что ты не забросишь и покажешь остальные Архитектуры. Видео крутые
Это самые понятные уроки по MVP! Большое спасибо!
огромное спасибо за бесценные и актуальные уроки
Шикарные видео, спасибо Евгений, низкий Вам поклон
А есть какая нибудь возможность реализовать MVP с таблицей не нарушая данный паттерн? По идее вью должна быть пассивной, но мы из вью идем в презентор что бы получить количество комментариев и модель.
Спасибо огромное! Жду третью часть)
На середине урока почему-то все сломалось. Говорит, что не видит точки входа на Main.storyboard. Хотя в предыдущем уроке все запускалось.
Пару часов танцев с бубнами возле компьютера, итоге сделал так - не. стал удалять viewController в сториборде. Он лежит там у меня, привязан к классу "MainViewController", и все работает как нужно. Но повторюсь, сначала работала без него. Магия... 🧙
Хочу поблагодарить вас за уроки, сложно для меня, но очень доходчиво объясняете 🤝
самый простой вариант - не используйте Storyboard. Сейчас все переходят на SwiftUI, а для старого UIKit есть xib файлы
Евгений, ООООЧЕНЬ интересно послушать про Viper или CleanSwift!
Спасибо за урок
Видео оч полезное, было бы интересно более глубокий разбор NetworkService посмотреть
Евгений, спасибо) Может не самый конструктивный коммент, но просто поблагодарить, начинал недавно у Скутаренко, затем UI и остальное с вами, очень понятно и нужные темы осветили, спасибо большое. Отдельное спасибо за сообщество в тг)
vladmus спасибо, друг
Спасибо Огромное!!! Очень ждал вторую часть! Возможно ли еще заснять отдельное видео о сетевом слое? По глубже рассмотреть его))
Alex Tsv если нужно будет и 3я)
сетевой нужно как то совсем отдельно от архитектуры разобрать мне кажется
@@theswiftdevelopers1301 было бы классно!
@@theswiftdevelopers1301 да, разберите
Спасибо большое
Круто, спасибо!
спасибо огромное!
Спасибо
спасибо!
Очень полезное видео. Спасибо) Есть вопрос: а как совместить TabBar c MVP? тоже создавать ему презентер?
просто лучший!
как всегда серия огонь) не знаю паравильно или нет, но хотел сказать насчет протоколов может в конце имени добавлять DetailViewInput, DetailViewPresenterOutput чтобы не путаться в нейминге. А так все круто, ждем след часть)
это вроде вайперовская тема.
Евгений Сычёв та не, в мввм так же
@@anthonyhoang5882 есть ссылки где так в ммв называют?) мне кажется эти имена обычно как в командах порешают, так и обзывают, у нас IDirectoryPresenter и IDirectoryViewController, типо интерфейсные протоколы)
Евгений Сычёв trinhngocthuyen.github.io/tech/mvvm-best-practice-inputs-outputs/
Или Можешь прост загуглить mvvm input output protocol
В конце было сказано, что с MVC не получится такое, но ведь можно делать вложенные MVC
Спасибо за урок:)
ComeClose , можно что угодно)
блин охрененный курс про мвт и di, намного больше понравилось чем mvvm
класс!
Клёво, давайте 3 часть!!!
Буду писать мобильное приложение для кинотеатра, подскажите какую лучше использовать модель. MVC. MVP или MVVM
тут уже сами выбирайте
А если у меня вложенные вью, а потом инициализированы в контроллер, как мне из контроллера в них передавать презентер и навигацию?
Привет, а можно подробнее про кодогенерацию?
вот мне интересно... лет пять назад когда вся ios-разработка была на уровне приложений для пиццерий, тогда тоже использовались все эти архитектуры и паттерны? или большая часть девелоперов довольствовались MVC? Я уже тогда начал изучать по видеоуроками и книжкам которые только появились по свифту, но все материалы были по MVC и только по нему
07shama , вы правильно сказали ui и бизнес логика уже не на уровне пиццерий и это сложно поддерживать без хорошей архитектуры
А куда делось видио по передачи данных между контроллерами? (6 способов)
срок годности закончился мы его удалили)
подскажите как грамотно организовать в одну структуру из 2-х разных json запросов.
Задача такая из одного json получить имя картинки и id, а из другого по id из первого запроса саму картинку. Так организован API не моя прихоть.
fileprivate func scheduleToday() {
SheduleNetworkService.getShedule { response in
response.films.forEach { [weak self] id in
guard let self = self else { return }
self.detailInfoFilm(id)
}
}
}
fileprivate func detailInfoFilm(_ id: Films) {
ReleaseNetworkService.getRelease(id: id.kinoId) { [weak self] response in
guard let self = self else { return }
self.menu.id = response.id
self.menu.image = response.cover
self.menu.name = id.name
self.menuSchedule.append(self.menu)
DispatchQueue.main.async {
self.collectionView.reloadData()
}
}
}
Вячеслав Ларин пишите лучше в чат в телеграмм
На телеграмм ссылка не работает@@zakharbabkin3588
плохо что протоколы не подписаны input, output не могу запомнить чтобы разобраться в принципе работы
Ну подпиши))
@@theswiftdevelopers1301 а если я изначально не понимаю что из них вход что выход. Узнаю об этом в середине серии...
@@theswiftdevelopers1301 Я разобрался позже. Спасибо
мне вот интересно почему на рунете(да и в интернете ) столько мало толкового пошагового видео про MVP .неужели все знают и это очевидные вещи ?
да вроде не мало, просто не такая популярная как MVVM
А исходников нет?
могу в 3 й серии выложить
@@theswiftdevelopers1301 было бы здорово
Исходники для ленивых)
Зачем в протоколе определять конструктор? Нет такого кейса когда конструктор используется полиморфно, слой которому нужен конструктор всегда работает с конкретной реализацией. Клиентам протокола знание о конструкторе не нужно.
Олег Черных , спасибо за замечание
@@theswiftdevelopers1301 я могу ошибаться, там же в начале вопрос стоит) есть опыт работы на 2х языках с ООП парадигмой и ни в одном из них нет кейса да и возможности объявлять конструктор в интерфейсе
Плохо так учить новичков. У тебя вить на схеме было показано что вю не знает про модель и нету у них связи, а ты передал целую модель для отображения одного поля. И потом они все так делают.
Дмитро Вікторович , скиньте пример эталона
@@theswiftdevelopers1301 зачем с агрессией? Просто скажите что это было не верно или наоборот верно и где я ошибаюсь. Майо мнение что вю и контролёры не работают из моделью и не знают о её существовании.
Дмитро Вікторович , ну где же агрессия , сначало пример, я разберусь, потом признание)