MVP по SOLID c DI и Unit test на Swift 5 part 1

Поділитися
Вставка
  • Опубліковано 22 сер 2024
  • Для новеньких куда еще присоединиться:
    Куда присоединиться:
    Всем привет, теперь вы сможете меня поддержать и получить эксклюзивные и закрытые видео смотреть тут - boosty.to/thes...
    1.Наше сообщество в вк(более 6 + тыс) = theswif...
    2.В телеграмме мы помогаем новичкам и всем желающим (нас больше 3 000 + тыс) - ​t.me/joinchat/...

КОМЕНТАРІ • 120

  • @theswiftdevelopers1301
    @theswiftdevelopers1301  4 роки тому +5

    Куда присоединиться:
    1.Наше сообщество в вк(добаляемся к более 3,5 тыс) = vk.com/theswiftdevelopers
    2.В телеграмме мы помогаем новичкам и всем желающим (нас больше 1,500 тыс) - t.me/joinchat/BAn0BkLMGrfpDYy2cnysNg
    p.s
    Домашние задание: смотрите в группах!
    Если все понравилось ты знаешь что делать;)
    Ставь лайк и пиши комент! :)

    • @bardakan
      @bardakan Рік тому

      мдаа, тесты - это видимо не ваше:
      1)testModuleIsNotNil - тест по сути вместо приложения проверяет сам себя
      2)testPersonModel - вы называете видео SOLID, но при этом в тестах для presenter затесались тесты Person

  • @surfspot8043
    @surfspot8043 4 роки тому +52

    Женя зачем делать видео короче ?
    Коротких и поверхностных видео куча на ютубе.
    Лучше дольше и доходчивее!
    Очень полезны твои уроки, очень тебе благодарен !

    • @user-in6bh9nd8k
      @user-in6bh9nd8k 2 роки тому +2

      Полностью согласен, особенно нравится слушать "междустрочные советы", например :" Если вы наследуетесь от NSOBject, значит с вами не все в порядке ".

  • @kirilllosickov7275
    @kirilllosickov7275 2 роки тому +11

    Редко отписываю кому-либо комментарии, но урок просто бомба!
    Очень много материалов перечитал и пересмотрел, но чтобы стало понятно после просмотра одного видео - говорит лишь о том, что снимает и объясняет настоящий профессионал!
    С удовольствием сажусь за просмотр второй части!)
    Спасибо за труд, ты крут!

  • @theswiftdevelopers1301
    @theswiftdevelopers1301  4 роки тому +28

    В коментах пишите нужно еще MVP c сервисами и роутингом или следующую архитектуру?

    • @Lammax2012
      @Lammax2012 4 роки тому +3

      А можно Clean Swift + Combine + Services?

    • @user-es8sh8jy3r
      @user-es8sh8jy3r 4 роки тому +15

      Сначала хотелось бы увидеть MVP с сервисами и роутингом. А потом MVVM + RxSwift + Coordinator

    • @grigorhovhannisyan2417
      @grigorhovhannisyan2417 4 роки тому

      38:38 jdyom s neterpeniem)))

    • @eugene89225
      @eugene89225 4 роки тому

      Здравствуйте. Классно доносите материал. Спасибо Вам большое за труд и потраченное время! Хотелось бы увидеть MVP с сервисами и роутингом..

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  4 роки тому +2

      Evgenii Butkevich , смотрите сл урок там все есть

  • @IBSivay
    @IBSivay 4 роки тому +14

    Спасибо. Урок супер, обязательно нужна вторая часть с роутингом и сервисами. Два экрана + сохранение в БД или Кеш, будет мощно. Жду

  • @slavaslutsker7223
    @slavaslutsker7223 4 роки тому +23

    Рекомендую записывать ролики с более крупным шрифтом, так их смогут чаще смотреть в пути с телефона

    • @eugene89225
      @eugene89225 4 роки тому +3

      Не соглашусь. Уверен, большинство смотрит не с телефона

    • @user-xv3lr6mb6g
      @user-xv3lr6mb6g 3 роки тому +2

      Поддерживаю. Я смотрю в пути домой и на работу с телефона. И видно не очень.
      Сам материал отличный

    • @VadimBashurov-uj6sh
      @VadimBashurov-uj6sh 2 роки тому

      И черными буквами на белом фоне. Пжлст.

  • @Equallive-qv5ys
    @Equallive-qv5ys 2 роки тому +1

    Спасибо! Эти уроки по архитектуре реально полезные, в них все описано именно так как происходит в "промышленной" разработке. Благодаря этим видео у меня получилось построить правильную архитектуру тестового задания и устроиться на первую работу!!! Пожалуйста, сделайте аналогичную серию по VIPER.

  • @dmitrys4496
    @dmitrys4496 3 роки тому +7

    Все супер) только в presenter должна быть слабая ссылка на view! То есть weak var view: MainViewProtocol!

  • @Lolita_ch
    @Lolita_ch Рік тому

    СПАСИБО огромное! лучший урок. За 50 минут объяснить SOLID, DI и MVP. Лайк, подписка)

  • @Dragonboh1
    @Dragonboh1 16 днів тому

    keep doing what you doing. Для тех хто смотрит в 2024 первий ра тест упал через фатал ерор, в функции setUP через опшинал

  • @raulstudylab9041
    @raulstudylab9041 4 роки тому +1

    Действительно нужна следующая часть с роутингом и сервисами. Несколько экранов с navigationController, сервисы для сети и БД -- было бы круто!

  • @StubbsJefferson
    @StubbsJefferson 2 роки тому

    Спасибо! Очень понятно объяснено. Нигде не мог найти вразумительную информацию по мвп, а у вас нашел

  • @user-mt1mz9og6t
    @user-mt1mz9og6t 4 роки тому +5

    люблю длинные ролики!спасибо

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  4 роки тому +3

      егор егоров , столько инфы вместить нужно)

    • @user-mt1mz9og6t
      @user-mt1mz9og6t 4 роки тому +1

      @@theswiftdevelopers1301 зато подробно.люблю подробно.

  • @1993skill
    @1993skill 4 роки тому +8

    Интересны видеоролики с объяснением и реализацией MVVM и VIPER

    • @Cassin1797
      @Cassin1797 4 роки тому +4

      Если хочешь посмотреть реализацию Viper, смотри доклады от сотрудников rambler . Это их любимая архитектура,они дорабатывали ее сами, и юзают ее в каждом своём приложении. Они даже книгу по ней написали

  • @4522248
    @4522248 Рік тому

    Урок бомба, ни когда не сталкивался с тестами и думал, что это, что то тяжелое и сложное

  • @user-xi3nk9zv3l
    @user-xi3nk9zv3l 4 роки тому

    Спасибо. Формат оставляй как есть. Все очень понятно. Все комментарии не лишние. В конце концов, для бывалых "повторенье - мать ученья"! А для новичков очень важны нюансы. Еще раз спасибо.

  • @vovamik
    @vovamik 4 роки тому +5

    Спасибо за урок! Как всегда понятно и доступно. Можно второй ролик (в продолжение к этому) сделать, расширив функционал. Хотелось бы и про другие архитектуры в Вашем исполнении. Ещё бы про CoreData не помешало и про все буковки SOLID вместе по-больше и по-чаще. А то, читаешь книжку, про каждую в отдельности вроде всё понятно, а вот как применить, да все вместе - проблема. Может быть вообще про подход к проектированию расскажете. Понятно что все команды по-своему договариваются, но как всегда, есть нюансы, про которые новички "ни сном, ни духом", также есть и типовые "грабли" (принципиальные ошибки), про которые хорошо бы знать заранее и обходить их стороной для красоты лба. У Вас есть и опыт, и знания. Делитесь Вы всем этим щедро и мастерски. Можно сказать у Вас талант, рассказывать о сложном, просто и понятно. Я смотрел все Ваши ролики (многие и пересматривал не по разу), "тяжело шла" только многопоточность, может потому что смотрел скопом или вообще до этой темы по-хорошему "дозреть" надо. На самом деле все видео по-делу и с откровенным желанием максимально понятно и подробно донести материал. Ждём новых роликов. Огромное Вам спасибо!

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  4 роки тому +1

      Vladimir Mikishchenko , спасибо за столь подробный отзыв, это важно для меня

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  4 роки тому +1

      вышел второй урок по мвп как ты и просил)

    • @vovamik
      @vovamik 4 роки тому

      The Swift Developers спасибо! Буду смотреть обязательно.

  • @Nafis553
    @Nafis553 4 роки тому +1

    Отличное видео - интересно, познавательно! Продолжай в том же духе. Женя, ты один из лучших!

  • @anthonyhoang5882
    @anthonyhoang5882 4 роки тому +2

    про юнит тесты было очень интересно, я думаю МВП с сервисами, роуминг или работа с кордатой(мб тоже мок чтобы потом протестировать). Спасибо большое, уроки просто вышка!

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  4 роки тому +1

      спасибо

    • @ivanmaeplan
      @ivanmaeplan 3 роки тому

      О, где-то я тебя видел. Это случайно не ты стоматолог с Харькова?

  • @ivanlyaskovets6804
    @ivanlyaskovets6804 Рік тому

    Очень хорошее объяснение! Спасибо за Ваш труд!

  • @ridbrain
    @ridbrain 3 роки тому +1

    Это топ! Сложное становится простым всего за 55 минут.

  • @Keevich
    @Keevich 4 роки тому +1

    Благодарю за уроки! Вы супер!

  • @akhmedovbakhtovar7142
    @akhmedovbakhtovar7142 Рік тому +1

    Наконец досмотрел

  • @MikeZvukovski
    @MikeZvukovski 6 місяців тому

    Огонь, спасибо

  • @user-fg3gy8yl4d
    @user-fg3gy8yl4d 4 роки тому

    Спасибо за труд. Как всегда подробно, четко, лаконично!

  • @user-mz7bt2do8z
    @user-mz7bt2do8z 4 роки тому

    Как всегда на высоте. Спасибо вам за все уроки. Хотелось бы видеть схожее по формату видео по другим архитектурам

  • @caspernew6697
    @caspernew6697 4 роки тому

    Очень очень нравится ! ) Крутое видео! Благодарю! )

  • @demetrius1103
    @demetrius1103 Рік тому

    Отличная работа

  • @user-mq3xd5kn9m
    @user-mq3xd5kn9m 3 роки тому

    Красиво. слова сложно подобрать однозначно еще раз пересмотрю. Рекомендую

  • @literallyIvan
    @literallyIvan 3 роки тому

    Спасибо, очень хороший формат разбора МВП!

  • @loikovalerij2143
    @loikovalerij2143 Рік тому

    Шикарное видео!! Спасибо огромное за Вашу работу.
    Можете как-нибудь сделать видео по тестам для новичков )))

  • @mak_whisk
    @mak_whisk 3 роки тому

    Спасибо большое! Все очень понятно и доходчиво!

  • @deluxe092
    @deluxe092 8 місяців тому

    Спасибо!

  • @tekilla79
    @tekilla79 4 роки тому

    Спасибо за проделанную работу!

  • @eaduka2009
    @eaduka2009 3 роки тому

    Огонь!! Спасибо от души брат!

  • @ihorchernysh6180
    @ihorchernysh6180 4 роки тому

    урок супер, огромное спасибо за Ваш труд

  • @torburgmax
    @torburgmax 4 роки тому +4

    Кстати, сейчас работает через сцену только, а через фрейм, как на видео, не работает.
    guard let windowScene = (scene as? UIWindowScene) else { return }
    window = UIWindow(windowScene: windowScene)

  • @user-from-kz479
    @user-from-kz479 2 роки тому

    Все класс🔥, спасибо за урок!!!

  • @Cassin1797
    @Cassin1797 4 роки тому +5

    Да, нужно еще материала по MVP. Я учу swift около 6 месяцев, написал множество простеньких приложений для себя (на MVC). Бывало так, что код контроллера выходил под 500+ строк. Конечно, это не устраивает. Хочется развиваться и идти дальше, писать более сложные приложения, причем писать их грамотно. Четко переиспользовать код, итд. Вообще, мало материала по MVP, касающегося iOS разработки. Есть пару хороших статей на Хабре. Сейчас собираюсь писать более сложное приложение. Встал вопрос об архитектуре. Не хочется брать MVVM, так как не особо знаком с реактивщиной. Есть тот же Viper и много материалов в инете, куча докладов от сотрудников Рамблера, которые активно развивают свой Viper. Я считаю, что этот вариант мне не катит, получиться слишком много маленьких классов, сплошной гемор. Вообще у меня неоднозначное мнение о Viper. Получается, что MVP - золотая серединка. Вообщем да, пили новый видос по MVP.

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  4 роки тому +1

      спасибо за подробный отзыв, это полезно!)

    • @leonif1
      @leonif1 4 роки тому

      а кто тебе мешает использовать гибридную систему. Где сложно - разложи на Viper, где проще разложи на MVC или MVC разложи на еще более мелкие MVC и так это можно делать до бесконечности

  • @mak_whisk
    @mak_whisk Рік тому

    Спасибо

  • @eugenekapustynskyi6979
    @eugenekapustynskyi6979 3 роки тому +1

    Спасибо за урок!
    Хотел сказать, что тест на 48:06 не упал - он не запустился из-за nil в презентере setUp

  • @aleksandrzinovev429
    @aleksandrzinovev429 Рік тому

    очень нравится и понятно) хотя и поздновато уже писать

  • @symazi
    @symazi 4 роки тому +2

    Привет, глянул в комменты, вроде никто не писал. У меня парочка вопросов:
    1. Я чего-то не понимаю или тут утечка памяти? Сильная ссылка с View на Presenter, как и в обратную сторону. Где должна быть слабая, со View на Presenter ведь?
    2. Можно ли свойство presenter для View указать в самом протоколе или это некрасиво?
    3. Если 2-й пункт положительный, то почему бы в ините самого презентера во View не передать данный презентер же, что-бы в билдере лишнее не собирать. Или не очень хорошо так делать?
    Пожелания:
    Прикрепляй где-то исходники, на том-же гугл драйве, мб полезно будет быстро скачать что-то и посмотреть. Типа один раз я посмотрел видео на 1 час, а вдруг забуду и надо будет подсмотреть быстро.

    • @r00t67
      @r00t67 4 роки тому

      По моему утечку поправит в следующем виде, но да, она там есть

  • @problem.solver
    @problem.solver 2 роки тому

    Я безумно тебе благодарен за этот видео! Спасибо О Г Р М Н О Е.

  • @user-te5xq5st3m
    @user-te5xq5st3m 2 роки тому

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

  • @alexfedorenko9383
    @alexfedorenko9383 10 місяців тому

    Viper-ом стрелять = лайк и подписка)

  • @gtoo9499
    @gtoo9499 3 роки тому

    Просто лучший

  • @user-uk6uz3vk2f
    @user-uk6uz3vk2f 2 роки тому

    Классно, спасибо!

  • @todzifushigur0
    @todzifushigur0 3 роки тому

    Spasibo za takie video !

  • @user-mt1mz9og6t
    @user-mt1mz9og6t 3 роки тому

    очень нравится!

  • @sergeylobanov4245
    @sergeylobanov4245 3 роки тому

    спасибо огромное)

  • @dmitrymarchenkov7686
    @dmitrymarchenkov7686 4 роки тому +1

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

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  4 роки тому

      как вам сам урок?

    • @dmitrymarchenkov7686
      @dmitrymarchenkov7686 4 роки тому

      @@theswiftdevelopers1301 Отлично, до этого писал только на MVC, в следующем проекте попробую MVP

  • @ua244
    @ua244 4 роки тому

    Круто, подписка!

  • @witcom6368
    @witcom6368 4 роки тому

    Лайк не глядя!)

  • @UserUser-vi2dn
    @UserUser-vi2dn 4 роки тому +2

    Все видео ждал исправления preson -> person)

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  4 роки тому +1

      торопился ну сори)

    • @UserUser-vi2dn
      @UserUser-vi2dn 4 роки тому +8

      ​@@theswiftdevelopers1301 бывает)
      Видео отличное, очень детально и понятно все рассказано
      Хорошо когда есть такие видео, где людей обучают архитектуре и чистому коду, а не бессмысленному видео на 2 минуты о том как добавить кнопку на контроллер
      Спасибо за видео, ждем продолжение

  • @zakharbabkin3588
    @zakharbabkin3588 4 роки тому

    Спасибо 🤖

  • @user-qt5ul9qx4m
    @user-qt5ul9qx4m 4 роки тому

    спасибо!

  • @hi-joe90
    @hi-joe90 2 роки тому

    Круто)

  • @slavikagarkov2747
    @slavikagarkov2747 4 роки тому +3

    Было бы круто и по остальным посмотреть (MVVM, VIPER)

  • @TheScrinn
    @TheScrinn 2 роки тому

    Класс

  • @user-by5yi5gx3r
    @user-by5yi5gx3r 3 роки тому

    Спасибо за урок. А для чего обращаться к проверти через село , если компилятор этого не требует?

  • @lllpau6ep
    @lllpau6ep 3 роки тому

    ждем теперь CleanArchitecture

  • @aleksandrm240
    @aleksandrm240 4 роки тому

    Где-то можно увидеть репозиторий с этим проектом?

  • @user-xk6eg7dh2x
    @user-xk6eg7dh2x 4 роки тому

    для начала хочу сказать ОГГРРОООМНОЕ спасибо за видео!!!!...всё делала так же, но у меня черный экран с навбаром ((

    • @user-xk6eg7dh2x
      @user-xk6eg7dh2x 4 роки тому

      и ошибка такая же(как в видео на 37-ой минуте) ...типа нет точки входа

    • @exey.artwork
      @exey.artwork 3 роки тому

      @@user-xk6eg7dh2x привет) если хочешь, напиши в телегу, покажу в чем ошибка @alexcontrol

    • @bejan6622
      @bejan6622 2 роки тому

      Такая же проблема, расскажите как решили, пожалуйста

    • @scrienmc
      @scrienmc Рік тому

      @@bejan6622 удалось разобраться? не могу понять что не так(

  • @user-rl4gt3nc1o
    @user-rl4gt3nc1o 4 роки тому

    Подскажите как передать данные из сети в ModulBuilder. В структура Person(firstName: "", lastName: ""). Плизз!

  • @scrienmc
    @scrienmc Рік тому

    Подскажите, пожалуйста, почему после 37 минуты возникает ошибка - [WindowScene] Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set? + черный экран

    • @silbenking
      @silbenking 8 місяців тому

      такая же проблема, разобрался?

  • @gummibarchen1372
    @gummibarchen1372 4 роки тому

    Отлично все. Git интересует если можно.

  • @motivation5987
    @motivation5987 3 роки тому

    Ссылки на проект нет( телеграмм ссылка не рабочая, грустно...

  • @user-fs4us4no6z
    @user-fs4us4no6z 4 роки тому +3

    retain cycle

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  4 роки тому +1

      Олег Е , да , торопился забыл сделать слабой вью

  • @nopassportUA
    @nopassportUA 2 роки тому

    не пойму зачем Builder protocol

    • @user-io8gm6gh8f
      @user-io8gm6gh8f 2 роки тому

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

  • @07shama
    @07shama 4 роки тому

    Очень быстро набираете, просите повторять и шуршите так быстро что даже с навыками трудно успевать, приходится паузить

  • @YouMeNow88
    @YouMeNow88 4 роки тому

    Такое ощущение что нужно лет 5-7 чтоб научиться это понимать

  • @gummibarchen1372
    @gummibarchen1372 4 роки тому

    Для новичков это нужно было бы уже на SwiftUI показывать так как к тому времени пока изучат уже перейдут на UI

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  4 роки тому

      ENUM на продакшине еще через пару лет только

    • @gummibarchen1372
      @gummibarchen1372 4 роки тому

      @@theswiftdevelopers1301 Не знаю про пару лет но знаю что уже достаточно приложений выпущено на SwiftUI и многие просят именно на нем ! Что касаемо ПАРА ЛЕТ так что бы освоить тот Stack что пишу в обьявлениях о найме Джунов =) как ра такое время и уйдет - это если с 0 и без какого либо опыта в программировании !

    • @gummibarchen1372
      @gummibarchen1372 4 роки тому

      @@theswiftdevelopers1301 Если можно спросить, скажите какой опыт у Вас и за какое время освоили Swift до уровня Джун . Просто интересна статистика , понятно что многое индивидуально но все же .

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  4 роки тому

      ENUM , с нуля до джуна не более 3-4 мес надо

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  4 роки тому

      ENUM , я давно уже в этой сфере и на этих курсах за 3-4 уже устраиваются

  • @zoomle_iOS
    @zoomle_iOS Рік тому

    Спасибо!

  • @magomedn2057
    @magomedn2057 3 роки тому

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

  • @FominValera
    @FominValera 2 роки тому

    Спасибо