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

Sdílet
Vložit
  • čas přidán 9. 05. 2020
  • В новом уроке расскажу что такое MVVM что такое Data Driven U на практике и чем отличается от MVP.
    MVVM + Data Driven UI на практике swift
    Куда присоединиться:
    Всем привет, теперь вы сможете меня поддержать и получить эксклюзивные и закрытые видео смотреть тут - boosty.to/theswiftdevelopers
    1.Наше сообщество в вк(более 6 + тыс) = theswiftdevelopers​
    2.В телеграмме мы помогаем новичкам и всем желающим (нас больше 3 000 + тыс) - ​t.me/joinchat/Qswat5FErtb3cPfV

Komentáře • 76

  • @ichelovek3923
    @ichelovek3923 Před 4 lety +23

    Отличный урок! Спасибо большое ))
    Было бы шикарно увидеть урок про связку MVVM+RxSwift. На объяснение MVVM уже можно будет не отвлекаться и сделать упор на RxSwift... было бы круто

  • @dmitrymarchenkov7686
    @dmitrymarchenkov7686 Před 4 lety +2

    Спасибо за урок, очень долго искал видео на тему MVVM - это сто процентов лучшее. Не думал что MVVM окажется так похожа на MVP.

  • @boggromaful
    @boggromaful Před 3 lety

    Очень классный урок! Спасибо! После этого урока, и единственного в своем роде в плане подачи и примеров, я начинаю понимать MVVM!

  • @N0VICHECK
    @N0VICHECK Před 4 lety

    Как всегда, доступно, понятно, супер, спасибо! Ждем clean swift

  • @JoffreyB
    @JoffreyB Před 3 lety +11

    Не совсем понятно почему TestView.swift знает про ViewData обходя лейер ViewModel, разве MVVM не для этого нужен, чтобы View напрямую не общались с Model, а общались через посредника ViewModel? Хоть вы и говорите что TestView ничего не знает про ViewData, но как не знает если вы в функции update(....) пишете "titleLabel.text = viewData?.title"? Вот этот момент не совсем понятный.

  • @alekseidanilov9279
    @alekseidanilov9279 Před 4 lety +2

    Спасибо за уроки! Вы хорошо объясняете!

  • @bakdauletm5080
    @bakdauletm5080 Před 4 lety +4

    Благодаря вам я нашёл работу, спасибо!!!!!!!!!!

  • @user-rl4gt3nc1o
    @user-rl4gt3nc1o Před 4 lety +1

    Как всегда Великолепно, БРАВО!!!!

  • @wolfyteze4947
    @wolfyteze4947 Před 3 lety

    Хорошее объяснение mvvm, я правда только со второго просмотра понял что к чему)). Хорошо изложенный и доступный материал. Спасибо

  • @sergeyborovkov7614
    @sergeyborovkov7614 Před 4 lety

    Евгений, очень круто! вчера вечером увидел новый урок - уже знал, что сегодня посмотреть! Я ваш патрон на Udemy!

  • @myga77
    @myga77 Před 2 lety +1

    Большое спасибо! Смотрю и пересматриваю. Адаптировался к таймингу. Большинство успеваю писать паралелльно с вами даже на 2х если смотрю. Если где то опечатываюсь быстро ставлю на паузу. Ребятам без мониторов - рекомендую присмотреть себе телики с Airplay. Очень помогает сидя на диване использовать телек как второй монитор для ютуба. Можно использовать и встроенное приложение в смарт тв, но именно если через эйр плей - оч легко быстро ставить на паузу, без громозкого интерфейса приложения тв.

  • @FlyerChannel
    @FlyerChannel Před 3 lety +1

    Спасибо за понятное объяснение MVVM!

  • @IBSivay
    @IBSivay Před 4 lety

    очень информативный урок. Пошел практиковаться. Спасибо

  • @dmitry3881
    @dmitry3881 Před 4 lety

    Что сказать... Как всегда урок пушка. Как всегда что-то новое. Мой план обучения по твоим видео это: 1. Посмотреть и выписать основные моменты, чтобы потом самому повторить. 2. Попробовать повторить то, что делал ты. 3. Изменить условие(в этом уроке, например, нужно будет с настоящим запросом попробовать сделать и отображать уже данные которые прийдут). и 4. Это посмотреть еще раз видео. Так как после одного просмотра не понятно, что ты при просмотре в первый раз упустил. Вроде все понятно, но когда уже после практики пересматриваешь восприятие другое

  • @Victor-dj4td
    @Victor-dj4td Před 4 lety +7

    Спасибо большое за урок. Видео топовое, давно такого не видел :) Если честно, мало кто пилит уроки по архитектуре, так что вдвойне круто.
    P.S. Объясняете на уровне Brain Voong 👍🏻
    P.S. 2 Гист с вьюхой бы не помешал, как было сказано ранее

  • @AzarovTKD
    @AzarovTKD Před rokem

    Круто-круто! Спасибо большое за урок!

  • @caspernew6697
    @caspernew6697 Před 4 lety

    Оч круто! ) Благодарю! )

  • @user-hz8pq9wn9m
    @user-hz8pq9wn9m Před 4 lety

    Ты очень крут, спасибо за уроки.

  • @eaduka2009
    @eaduka2009 Před 3 lety

    Мужик ты просто космос!!! Без шуток!

  • @1ZaYaTs1
    @1ZaYaTs1 Před 3 lety

    Очень крутое видео! Спасибо!

  • @alexeikorolev9790
    @alexeikorolev9790 Před 4 lety +1

    Спасибо! урок как и всегда на высоте!
    хотелось бы развернутые уроки по бд и работой с сетью

  • @user-bf7kr2qw6z
    @user-bf7kr2qw6z Před 2 lety

    Спасибо за урок!

  • @rauankoshkinbayev1506
    @rauankoshkinbayev1506 Před 4 lety +3

    лучший учитель 🤩

  • @theswiftdevelopers1301
    @theswiftdevelopers1301  Před 4 lety +12

    Друзья оставляйте свое мнение и пожелания!

    • @lost_youth43
      @lost_youth43 Před 4 lety +4

      Сделайте пожалуйста курс по CoreData или Realm

    • @kehkjbuphrd
      @kehkjbuphrd Před 4 lety +2

      Замечательный урок, но очень не хватает ссылки на gist с кодом из сниппета или на проект целиком. Совсем не хочется отвлекаться от урока на шаблонный код создания вьюх.

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  Před 4 lety

      добавлю позже

    • @rauankoshkinbayev1506
      @rauankoshkinbayev1506 Před 4 lety

      Rxswift😅😅😅

    • @ValeriySoglaev
      @ValeriySoglaev Před 4 lety +4

      Хотелось бы от Вас еще урок SwiftUI, MVVM + Combine

  • @vladimircreator
    @vladimircreator Před rokem

    Стиль подачи - зачетный )

  • @laisermed
    @laisermed Před 4 lety

    спасибо большое!

  • @magzhanimangazy4382
    @magzhanimangazy4382 Před 4 lety +7

    RXSwift

  • @mex5341
    @mex5341 Před 2 lety +1

    -Вы делаете инъекцию зависимостей , как я показывал раньше вам , и не делайте хардкод , а делайте правильно . Я же тут просто захардкожу
    -Whaaaat?)

  • @cmdBcmdR
    @cmdBcmdR Před 2 lety

    Спасибо :)

  • @stolenhen
    @stolenhen Před 4 lety +2

    Евгений, будет ли урок по Clean Swift или Viper? Так же интересно про container controllers было бы послушать. Так же мне как новичку было бы архиинтересно услышать от вас больше практических примеров в Xcode с generics. Про джейнерики в ютюбе информации почти нет(

  • @07shama
    @07shama Před 4 lety +2

    Когда просто повторяешь ручками, кое как поспеваешь за вашей скоростью набора, перескакивания по файлам и с кнопкой "

  • @pitwarlord7278
    @pitwarlord7278 Před 4 lety

    просто топ для повышения скилла

  • @user-cg2nk2yn1i
    @user-cg2nk2yn1i Před 4 lety

    Спасибо большое за урок! Все предельно теперь стало ясно. Пока нигде не встречал внятного и наглядного объяснения этого подхода без использования Rx. Очень ждём продолжения уроков. Есть ли в планах урок по Viper/VIP/Clean Swift?

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  Před 4 lety +1

      Юрий Морозов , что нибудь еще интересного запишем)

  • @TyTy-oh2wq
    @TyTy-oh2wq Před 3 lety

    «Сейчас их гораздо больше, наверное»
    Топ

  • @hakobjanyan
    @hakobjanyan Před 3 lety

    bomba, спасибо

  • @user-fg3gy8yl4d
    @user-fg3gy8yl4d Před 3 lety

    Лайк поставил.

  • @alekseychanov
    @alekseychanov Před 3 lety

    Просьба выкладывать ссылку на финальный проект для полного шика!

  • @Interfacelol
    @Interfacelol Před 4 lety +1

    Жду SwiftUI))

  • @GoGaSish
    @GoGaSish Před 3 lety

    Не совсем понятно зачем в данном случае у вью модели public надо было проставлять, ведь вся коммуникация проходит в рамках одного модуля
    Спасибо за старания, вы молодец:)

  • @vadim_polovoi
    @vadim_polovoi Před rokem

    Евгений, спасибо за урок! Но почему может быть такое, что у меня картинки не вписываю в заданный размер view?

  • @andrewwillson1203
    @andrewwillson1203 Před 2 lety

    Спасибо за объяснение, сейчас пишу проект с помощью ваших видео-уроков.
    Только можете объяснить, в чем суть вызова метода updateViewData, в конструкторе MainViewModel, ведь он никогда не будет вызван. Мб имеет суть добавить параметр updateViewData в конструктор?

  • @Elecrlbloom
    @Elecrlbloom Před 2 lety

    как правильно инжектить в сервисы Нетворк сервис а их уже во вью модель

  • @gummibarchen1372
    @gummibarchen1372 Před 4 lety

    Будут ли уроки Combine ?

  • @dubstepwawawa
    @dubstepwawawa Před 3 lety +1

    Почему TestView знает о ViewData? Если они вообще должны пересекаться

  • @user-mz7bt2do8z
    @user-mz7bt2do8z Před 4 lety

    По VIP планируется урок?

  • @crazyfox1317
    @crazyfox1317 Před 2 lety

    Топ! Спасибо!
    Остался только 2 вопроса.
    1) В чем смысл переноса логики по обновлению UI в метод layoutSubviews, когда его можно было написать прямо в didSet viewData? Как это влияет на производительность и какие преимущества дает?
    2) Если написать обратную связь ViewModel и View не через boxing и RX а через делегат, будет ли это нарушать принципы MVVM? Ведь тогда ViewModel будет держать ссылку на View в качестве делегата а значит "знать" о ней.

    • @ilyanesterenko2796
      @ilyanesterenko2796 Před 2 lety

      если добавить во viewModel ссылку на вью, то это будет MVP )

  • @bardakan
    @bardakan Před rokem

    был один такой, который описал состояния экрана через enum с ассоциированными переменными... Потом задолбались писать переходы между этими состояниями (переводить данные из одного набора ассоциированных переменных в другой), потому что с увеличением числа состояний количество переходов росло в геометрической прогрессии.
    Неужели так сложно например описать в одной структуре все данные, которые могут попадаться в каком-нибудь из состояний, и уже если очень хочется - написать на каждое состояние протоколы, отсеивающие лишнее?

  • @user-mv3kx5si7t
    @user-mv3kx5si7t Před 3 lety +1

    ссылка на TestView + Extension

  • @denok137
    @denok137 Před 4 lety

    Насколько верно во viewDidLoad создавать вью и проставлять констрейнты? Касательно жизненного цикла. Как вообще это делать правильно в реальных проектах?

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  Před 4 lety

      Денис Шихалев , делаю в реальности как показываю в уроке

  • @kama8213
    @kama8213 Před 4 lety +1

    Правильно я понял: получается кейсы энама, это основная логика, то есть основные действия, которые будут происходит в том или ином модуле?

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  Před 4 lety +1

      vladmus , вьюха с мультистейтом ( много состояний в которые умеет)

    • @kama8213
      @kama8213 Před 4 lety +2

      ​@@theswiftdevelopers1301 А, вот как. Уловил идею. Похоже в том и есть суть МВВМ, в модели описываются изначальные те или иные "Стейты", в которое View должна пребывать, а управляет всем этим ViewModel.
      В остальном спасибо, после трех частей с МВП, МВВМ показался легче и интересней.
      Спасибо за уроки!

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  Před 4 lety +1

      они похоже, просто тут не стал роутеры и тести писать их тут тоже можно

  • @user-io8gm6gh8f
    @user-io8gm6gh8f Před 2 lety

    лично мне проще сначала полностью урок посмотреть или половину его а потом рассмотрев все связи или почти все, по памяти (ну почти полностью) написать ваш код. Иначе я слишком сильно почему то зацикливаюсь на синтаксисе и теряю нить самой темы урока....

  • @PaulieS1987
    @PaulieS1987 Před 3 lety +5

    Неплохо, но есть нюансы.
    1. В ините обращаться к свойству, значение которого еще не задано, бессмысленно . Никто не получит .initial.
    2. Обновлять значение полей в layoutSubviews, это как раз и есть путь к просадке производительности. Этот метод может быть вызван несколько раз, при этом значения будут перезаписываться...
    3. Public для методов в internal классе тоже бессмысленны. Internal методы в рамках модуля будут видны.

    • @stolenhen
      @stolenhen Před 3 lety +1

      Павел, а где тогда лучше обновлять значения полей, чтобы не просаживалась производительность?

  • @Stricken174
    @Stricken174 Před 5 měsíci

    Все это прикольно, но как показывает практика никто ничего нигде не подменяет) Да и тесты пишут через раз. Возникает вопрос: а нафига все это нужно?) Великий уровень абстракции приводит к сложному поиску багов, а плюсов не дает.

  • @tarashrodzitskyi8364
    @tarashrodzitskyi8364 Před 3 lety

    Это не правильная реализация MVVM .View имеет свою логику а Мodel cвою .ViewModel просто прокси посредник для разграничения логических компонентов с возможностью хранить состояние (может использоваться несколькими View)

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  Před 3 lety +1

      прикрипите проект с правильной реализацией гляну)

  • @crazyfox1317
    @crazyfox1317 Před 2 lety

    Когда там Viper?

  • @bardakan
    @bardakan Před rokem +1

    Очень поверхностный урок:
    - вы что в реальный проектах тоже перерисовываете весь экран в layoutSubviews, причем еще и по каждому чиху от изменения viewModel? А если например, действие нужно делать с анимацией?
    - почему вы храните ViewData в двух местах? Уже даже SwiftUI, базирующийся на MVVM предполагает, что данные хранятся в одном месте, а в другие места передаются не копией а по ссылке

    • @rtjh045h
      @rtjh045h Před rokem +1

      Привет, сколько пытаюсь понять суть MVVM, ничего не получается - можешь подсказать какие-то видео - чего можно начать, как определить что с чем связать, где что должно находиться. Уже руки опускаются. Смотрю Стэнфорд курсы - но тоже ничего не понимаю, почему делают так как делают