MVVM + Data Driven UI на практике swift

  Рет қаралды 21,535

The Swift Developers

The Swift Developers

Күн бұрын

Пікірлер: 76
@ichelovek3923
@ichelovek3923 4 жыл бұрын
Отличный урок! Спасибо большое )) Было бы шикарно увидеть урок про связку MVVM+RxSwift. На объяснение MVVM уже можно будет не отвлекаться и сделать упор на RxSwift... было бы круто
@bakdauletm5080
@bakdauletm5080 4 жыл бұрын
Благодаря вам я нашёл работу, спасибо!!!!!!!!!!
@myga77
@myga77 2 жыл бұрын
Большое спасибо! Смотрю и пересматриваю. Адаптировался к таймингу. Большинство успеваю писать паралелльно с вами даже на 2х если смотрю. Если где то опечатываюсь быстро ставлю на паузу. Ребятам без мониторов - рекомендую присмотреть себе телики с Airplay. Очень помогает сидя на диване использовать телек как второй монитор для ютуба. Можно использовать и встроенное приложение в смарт тв, но именно если через эйр плей - оч легко быстро ставить на паузу, без громозкого интерфейса приложения тв.
@dmitrymarchenkov7686
@dmitrymarchenkov7686 4 жыл бұрын
Спасибо за урок, очень долго искал видео на тему MVVM - это сто процентов лучшее. Не думал что MVVM окажется так похожа на MVP.
@JoffreyB
@JoffreyB 3 жыл бұрын
Не совсем понятно почему TestView.swift знает про ViewData обходя лейер ViewModel, разве MVVM не для этого нужен, чтобы View напрямую не общались с Model, а общались через посредника ViewModel? Хоть вы и говорите что TestView ничего не знает про ViewData, но как не знает если вы в функции update(....) пишете "titleLabel.text = viewData?.title"? Вот этот момент не совсем понятный.
@wolfyteze4947
@wolfyteze4947 3 жыл бұрын
Хорошее объяснение mvvm, я правда только со второго просмотра понял что к чему)). Хорошо изложенный и доступный материал. Спасибо
@Victor-dj4td
@Victor-dj4td 4 жыл бұрын
Спасибо большое за урок. Видео топовое, давно такого не видел :) Если честно, мало кто пилит уроки по архитектуре, так что вдвойне круто. P.S. Объясняете на уровне Brain Voong 👍🏻 P.S. 2 Гист с вьюхой бы не помешал, как было сказано ранее
@alekseidanilov9279
@alekseidanilov9279 4 жыл бұрын
Спасибо за уроки! Вы хорошо объясняете!
@FlyerChannel
@FlyerChannel 4 жыл бұрын
Спасибо за понятное объяснение MVVM!
@vladimircreator
@vladimircreator Жыл бұрын
Стиль подачи - зачетный )
@eaduka2009
@eaduka2009 3 жыл бұрын
Мужик ты просто космос!!! Без шуток!
@N0VICHECK
@N0VICHECK 4 жыл бұрын
Как всегда, доступно, понятно, супер, спасибо! Ждем clean swift
@ВячеславЛарин-м6х
@ВячеславЛарин-м6х 4 жыл бұрын
Как всегда Великолепно, БРАВО!!!!
@stolenhen
@stolenhen 4 жыл бұрын
Евгений, будет ли урок по Clean Swift или Viper? Так же интересно про container controllers было бы послушать. Так же мне как новичку было бы архиинтересно услышать от вас больше практических примеров в Xcode с generics. Про джейнерики в ютюбе информации почти нет(
@boggromaful
@boggromaful 4 жыл бұрын
Очень классный урок! Спасибо! После этого урока, и единственного в своем роде в плане подачи и примеров, я начинаю понимать MVVM!
@dmitry3881
@dmitry3881 4 жыл бұрын
Что сказать... Как всегда урок пушка. Как всегда что-то новое. Мой план обучения по твоим видео это: 1. Посмотреть и выписать основные моменты, чтобы потом самому повторить. 2. Попробовать повторить то, что делал ты. 3. Изменить условие(в этом уроке, например, нужно будет с настоящим запросом попробовать сделать и отображать уже данные которые прийдут). и 4. Это посмотреть еще раз видео. Так как после одного просмотра не понятно, что ты при просмотре в первый раз упустил. Вроде все понятно, но когда уже после практики пересматриваешь восприятие другое
@AzarovTKD
@AzarovTKD 2 жыл бұрын
Круто-круто! Спасибо большое за урок!
@magzhanimangazy4382
@magzhanimangazy4382 4 жыл бұрын
RXSwift
@theswiftdevelopers1301
@theswiftdevelopers1301 4 жыл бұрын
Друзья оставляйте свое мнение и пожелания!
@lost_youth43
@lost_youth43 4 жыл бұрын
Сделайте пожалуйста курс по CoreData или Realm
@kehkjbuphrd
@kehkjbuphrd 4 жыл бұрын
Замечательный урок, но очень не хватает ссылки на gist с кодом из сниппета или на проект целиком. Совсем не хочется отвлекаться от урока на шаблонный код создания вьюх.
@theswiftdevelopers1301
@theswiftdevelopers1301 4 жыл бұрын
добавлю позже
@rauankoshkinbayev1506
@rauankoshkinbayev1506 4 жыл бұрын
Rxswift😅😅😅
@ValeriySoglaev
@ValeriySoglaev 4 жыл бұрын
Хотелось бы от Вас еще урок SwiftUI, MVVM + Combine
@alexeikorolev9790
@alexeikorolev9790 4 жыл бұрын
Спасибо! урок как и всегда на высоте! хотелось бы развернутые уроки по бд и работой с сетью
@alexeikorolev9790
@alexeikorolev9790 4 жыл бұрын
Или ещё что-нибудь из MVVM )
@IBSivay
@IBSivay 4 жыл бұрын
очень информативный урок. Пошел практиковаться. Спасибо
@sergeyborovkov7614
@sergeyborovkov7614 4 жыл бұрын
Евгений, очень круто! вчера вечером увидел новый урок - уже знал, что сегодня посмотреть! Я ваш патрон на Udemy!
@rauankoshkinbayev1506
@rauankoshkinbayev1506 4 жыл бұрын
лучший учитель 🤩
@07shama
@07shama 4 жыл бұрын
Когда просто повторяешь ручками, кое как поспеваешь за вашей скоростью набора, перескакивания по файлам и с кнопкой "
@mex5341
@mex5341 2 жыл бұрын
-Вы делаете инъекцию зависимостей , как я показывал раньше вам , и не делайте хардкод , а делайте правильно . Я же тут просто захардкожу -Whaaaat?)
@АлександрКуликов-о9ц
@АлександрКуликов-о9ц 2 жыл бұрын
Спасибо за урок!
@vadim_polovoi
@vadim_polovoi 2 жыл бұрын
Евгений, спасибо за урок! Но почему может быть такое, что у меня картинки не вписываю в заданный размер view?
@ЮрийМорозов-з5з
@ЮрийМорозов-з5з 4 жыл бұрын
Спасибо большое за урок! Все предельно теперь стало ясно. Пока нигде не встречал внятного и наглядного объяснения этого подхода без использования Rx. Очень ждём продолжения уроков. Есть ли в планах урок по Viper/VIP/Clean Swift?
@theswiftdevelopers1301
@theswiftdevelopers1301 4 жыл бұрын
Юрий Морозов , что нибудь еще интересного запишем)
@1ZaYaTs1
@1ZaYaTs1 3 жыл бұрын
Очень крутое видео! Спасибо!
@ТарланХакимзаде
@ТарланХакимзаде 4 жыл бұрын
Ты очень крут, спасибо за уроки.
@alekseychanov
@alekseychanov 4 жыл бұрын
Просьба выкладывать ссылку на финальный проект для полного шика!
@caspernew6697
@caspernew6697 4 жыл бұрын
Оч круто! ) Благодарю! )
@bardakan
@bardakan Жыл бұрын
был один такой, который описал состояния экрана через enum с ассоциированными переменными... Потом задолбались писать переходы между этими состояниями (переводить данные из одного набора ассоциированных переменных в другой), потому что с увеличением числа состояний количество переходов росло в геометрической прогрессии. Неужели так сложно например описать в одной структуре все данные, которые могут попадаться в каком-нибудь из состояний, и уже если очень хочется - написать на каждое состояние протоколы, отсеивающие лишнее?
@TyTy-oh2wq
@TyTy-oh2wq 4 жыл бұрын
«Сейчас их гораздо больше, наверное» Топ
@akhmedovbakhtovar7142
@akhmedovbakhtovar7142 Жыл бұрын
это я если стану сеньором помидором
@andrewwillson1203
@andrewwillson1203 2 жыл бұрын
Спасибо за объяснение, сейчас пишу проект с помощью ваших видео-уроков. Только можете объяснить, в чем суть вызова метода updateViewData, в конструкторе MainViewModel, ведь он никогда не будет вызван. Мб имеет суть добавить параметр updateViewData в конструктор?
@pitwarlord7278
@pitwarlord7278 4 жыл бұрын
просто топ для повышения скилла
@crazyfox1317
@crazyfox1317 3 жыл бұрын
Топ! Спасибо! Остался только 2 вопроса. 1) В чем смысл переноса логики по обновлению UI в метод layoutSubviews, когда его можно было написать прямо в didSet viewData? Как это влияет на производительность и какие преимущества дает? 2) Если написать обратную связь ViewModel и View не через boxing и RX а через делегат, будет ли это нарушать принципы MVVM? Ведь тогда ViewModel будет держать ссылку на View в качестве делегата а значит "знать" о ней.
@ilyanesterenko2796
@ilyanesterenko2796 2 жыл бұрын
если добавить во viewModel ссылку на вью, то это будет MVP )
@dubstepwawawa
@dubstepwawawa 3 жыл бұрын
Почему TestView знает о ViewData? Если они вообще должны пересекаться
@GoGaSish
@GoGaSish 3 жыл бұрын
Не совсем понятно зачем в данном случае у вью модели public надо было проставлять, ведь вся коммуникация проходит в рамках одного модуля Спасибо за старания, вы молодец:)
@Elecrlbloom
@Elecrlbloom 2 жыл бұрын
как правильно инжектить в сервисы Нетворк сервис а их уже во вью модель
@laisermed
@laisermed 4 жыл бұрын
спасибо большое!
@cmdBcmdR
@cmdBcmdR 3 жыл бұрын
Спасибо :)
@gummibarchen1372
@gummibarchen1372 4 жыл бұрын
Будут ли уроки Combine ?
@hakobjanyan
@hakobjanyan 3 жыл бұрын
bomba, спасибо
@СергейБабий-у7с
@СергейБабий-у7с 4 жыл бұрын
Лайк поставил.
@Interfacelol
@Interfacelol 4 жыл бұрын
Жду SwiftUI))
@МаксимАлексеев-з9р
@МаксимАлексеев-з9р 4 жыл бұрын
По VIP планируется урок?
@kama8213
@kama8213 4 жыл бұрын
Правильно я понял: получается кейсы энама, это основная логика, то есть основные действия, которые будут происходит в том или ином модуле?
@theswiftdevelopers1301
@theswiftdevelopers1301 4 жыл бұрын
vladmus , вьюха с мультистейтом ( много состояний в которые умеет)
@kama8213
@kama8213 4 жыл бұрын
​@@theswiftdevelopers1301 А, вот как. Уловил идею. Похоже в том и есть суть МВВМ, в модели описываются изначальные те или иные "Стейты", в которое View должна пребывать, а управляет всем этим ViewModel. В остальном спасибо, после трех частей с МВП, МВВМ показался легче и интересней. Спасибо за уроки!
@theswiftdevelopers1301
@theswiftdevelopers1301 4 жыл бұрын
они похоже, просто тут не стал роутеры и тести писать их тут тоже можно
@максиммартынов-я1ь
@максиммартынов-я1ь 2 жыл бұрын
лично мне проще сначала полностью урок посмотреть или половину его а потом рассмотрев все связи или почти все, по памяти (ну почти полностью) написать ваш код. Иначе я слишком сильно почему то зацикливаюсь на синтаксисе и теряю нить самой темы урока....
@PaulieS1987
@PaulieS1987 4 жыл бұрын
Неплохо, но есть нюансы. 1. В ините обращаться к свойству, значение которого еще не задано, бессмысленно . Никто не получит .initial. 2. Обновлять значение полей в layoutSubviews, это как раз и есть путь к просадке производительности. Этот метод может быть вызван несколько раз, при этом значения будут перезаписываться... 3. Public для методов в internal классе тоже бессмысленны. Internal методы в рамках модуля будут видны.
@stolenhen
@stolenhen 3 жыл бұрын
Павел, а где тогда лучше обновлять значения полей, чтобы не просаживалась производительность?
@ТанирбергенКалдыбай
@ТанирбергенКалдыбай 4 жыл бұрын
ссылка на TestView + Extension
@denok137
@denok137 4 жыл бұрын
Насколько верно во viewDidLoad создавать вью и проставлять констрейнты? Касательно жизненного цикла. Как вообще это делать правильно в реальных проектах?
@theswiftdevelopers1301
@theswiftdevelopers1301 4 жыл бұрын
Денис Шихалев , делаю в реальности как показываю в уроке
@bardakan
@bardakan Жыл бұрын
Очень поверхностный урок: - вы что в реальный проектах тоже перерисовываете весь экран в layoutSubviews, причем еще и по каждому чиху от изменения viewModel? А если например, действие нужно делать с анимацией? - почему вы храните ViewData в двух местах? Уже даже SwiftUI, базирующийся на MVVM предполагает, что данные хранятся в одном месте, а в другие места передаются не копией а по ссылке
@rtjh045h
@rtjh045h Жыл бұрын
Привет, сколько пытаюсь понять суть MVVM, ничего не получается - можешь подсказать какие-то видео - чего можно начать, как определить что с чем связать, где что должно находиться. Уже руки опускаются. Смотрю Стэнфорд курсы - но тоже ничего не понимаю, почему делают так как делают
@Stricken174
@Stricken174 9 ай бұрын
Все это прикольно, но как показывает практика никто ничего нигде не подменяет) Да и тесты пишут через раз. Возникает вопрос: а нафига все это нужно?) Великий уровень абстракции приводит к сложному поиску багов, а плюсов не дает.
@crazyfox1317
@crazyfox1317 2 жыл бұрын
Когда там Viper?
@theswiftdevelopers1301
@theswiftdevelopers1301 2 жыл бұрын
как то позже, хотя это так уже не модно)
@tarashrodzitskyi8364
@tarashrodzitskyi8364 3 жыл бұрын
Это не правильная реализация MVVM .View имеет свою логику а Мodel cвою .ViewModel просто прокси посредник для разграничения логических компонентов с возможностью хранить состояние (может использоваться несколькими View)
@theswiftdevelopers1301
@theswiftdevelopers1301 3 жыл бұрын
прикрипите проект с правильной реализацией гляну)
Улучшенная семантика didSet
13:29
SwiftSimple
Рет қаралды 151
КОГДА К БАТЕ ПРИШЕЛ ДРУГ😂#shorts
00:59
BATEK_OFFICIAL
Рет қаралды 8 МЛН
Trick-or-Treating in a Rush. Part 2
00:37
Daniel LaBelle
Рет қаралды 45 МЛН
Проект на VIPER в Swift
44:32
ИЗИ DEV
Рет қаралды 7 М.
MVP по SOLID c DI и Unit test на Swift 5 part 1
54:47
The Swift Developers
Рет қаралды 31 М.
Async/await. Что это такое и с чем его едят? iOS Такой
42:31
iOS Такой • IOS Разработка • IT Подкасты
Рет қаралды 5 М.
ModelViewViewModel (MVVM) на Swift, iOS простой пример
29:29
iOS на практике
Рет қаралды 15 М.
MVVM в Android на практике
41:32
Тимофей Коваленко
Рет қаралды 49 М.
Диспетчеризация в Swift.
34:56
Ildar Zalyalov
Рет қаралды 20 М.
Swift-уроки: Simple MVVM part1 - TableView
16:59
Сергей Горбачёв / cmd+B, cmd+R
Рет қаралды 3,4 М.
КОГДА К БАТЕ ПРИШЕЛ ДРУГ😂#shorts
00:59
BATEK_OFFICIAL
Рет қаралды 8 МЛН