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

Sdílet
Vložit
  • čas přidán 7. 09. 2024

Komentáře • 120

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

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

    • @bardakan
      @bardakan Před rokem

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

  • @surfspot8043
    @surfspot8043 Před 4 lety +52

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

    • @user-in6bh9nd8k
      @user-in6bh9nd8k Před 2 lety +2

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

  • @kirilllosickov7275
    @kirilllosickov7275 Před 2 lety +11

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

  • @IBSivay
    @IBSivay Před 4 lety +14

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

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

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

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

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

    • @user-xv3lr6mb6g
      @user-xv3lr6mb6g Před 3 lety +2

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

    • @VadimBashurov-uj6sh
      @VadimBashurov-uj6sh Před 2 lety

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

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

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

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

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

    • @user-es8sh8jy3r
      @user-es8sh8jy3r Před 4 lety +15

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

    • @grigorhovhannisyan2417
      @grigorhovhannisyan2417 Před 4 lety

      38:38 jdyom s neterpeniem)))

    • @eugene89225
      @eugene89225 Před 4 lety

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

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

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

  • @dmitrys4496
    @dmitrys4496 Před 3 lety +7

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

  • @Equallive-qv5ys
    @Equallive-qv5ys Před 2 lety +1

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

  • @Dragonboh1
    @Dragonboh1 Před měsícem

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

  • @user-mt1mz9og6t
    @user-mt1mz9og6t Před 4 lety +5

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

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

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

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

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

  • @1993skill
    @1993skill Před 4 lety +8

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

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

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

  • @vovamik
    @vovamik Před 4 lety +5

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

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

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

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

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

    • @vovamik
      @vovamik Před 4 lety

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

  • @4522248
    @4522248 Před rokem

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

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

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

  • @Lolita_ch
    @Lolita_ch Před rokem

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

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

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

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

      спасибо

    • @ivanmaeplan
      @ivanmaeplan Před 3 lety

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

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

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

  • @StubbsJefferson
    @StubbsJefferson Před 2 lety

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

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

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

  • @akhmedovbakhtovar7142
    @akhmedovbakhtovar7142 Před rokem +1

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

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

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

  • @ivanlyaskovets6804
    @ivanlyaskovets6804 Před rokem

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

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

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

  • @Cassin1797
    @Cassin1797 Před 4 lety +5

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

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

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

    • @leonif1
      @leonif1 Před 4 lety

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

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

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

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

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

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

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

  • @loikovalerij2143
    @loikovalerij2143 Před rokem

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

  • @caspernew6697
    @caspernew6697 Před 4 lety

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

  • @literallyIvan
    @literallyIvan Před 4 lety

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

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

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

  • @mak_whisk
    @mak_whisk Před 3 lety

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

  • @MikeZvukovski
    @MikeZvukovski Před 6 měsíci

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

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

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

  • @aleksandrzinovev429
    @aleksandrzinovev429 Před rokem

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

  • @ihorchernysh6180
    @ihorchernysh6180 Před 4 lety

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

  • @tekilla79
    @tekilla79 Před 4 lety

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

  • @demetrius1103
    @demetrius1103 Před rokem

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

  • @user-from-kz479
    @user-from-kz479 Před 2 lety

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

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

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

    • @r00t67
      @r00t67 Před 4 lety

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

  • @eaduka2009
    @eaduka2009 Před 3 lety

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

  • @deluxe092
    @deluxe092 Před 9 měsíci

    Спасибо!

  • @alexfedorenko9383
    @alexfedorenko9383 Před 10 měsíci

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

  • @problem.solver
    @problem.solver Před 2 lety

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

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

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

  • @UserUser-vi2dn
    @UserUser-vi2dn Před 4 lety +2

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

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

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

    • @UserUser-vi2dn
      @UserUser-vi2dn Před 4 lety +8

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

  • @vanyahozeyev
    @vanyahozeyev Před 2 lety

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

  • @mak_whisk
    @mak_whisk Před rokem

    Спасибо

  • @todzifushigur0
    @todzifushigur0 Před 3 lety

    Spasibo za takie video !

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

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

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

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

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  Před 4 lety

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

    • @dmitrymarchenkov7686
      @dmitrymarchenkov7686 Před 4 lety

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

  • @gtoo9499
    @gtoo9499 Před 3 lety

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

  • @sergeylobanov4245
    @sergeylobanov4245 Před 3 lety

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

  • @ua244
    @ua244 Před 4 lety

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

  • @zakharbabkin3588
    @zakharbabkin3588 Před 4 lety

    Спасибо 🤖

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

    спасибо!

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

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

  • @hi-joe90
    @hi-joe90 Před 2 lety

    Круто)

  • @witcom6368
    @witcom6368 Před 4 lety

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

  • @TheScrinn
    @TheScrinn Před 2 lety

    Класс

  • @lllpau6ep
    @lllpau6ep Před 3 lety

    ждем теперь CleanArchitecture

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

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

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

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

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

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

    • @exey.artwork
      @exey.artwork Před 3 lety

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

    • @bejan6622
      @bejan6622 Před 2 lety

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

    • @scrienmc
      @scrienmc Před 2 lety

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

  • @user-fs4us4no6z
    @user-fs4us4no6z Před 4 lety +3

    retain cycle

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

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

  • @gummibarchen1372
    @gummibarchen1372 Před 4 lety

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

  • @aleksandrm240
    @aleksandrm240 Před 4 lety

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

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

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

  • @scrienmc
    @scrienmc Před 2 lety

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

    • @silbenking
      @silbenking Před 9 měsíci

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

  • @motivation5987
    @motivation5987 Před 3 lety

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

  • @nopassportUA
    @nopassportUA Před 2 lety

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

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

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

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

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

  • @YouMeNow88
    @YouMeNow88 Před 4 lety

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

  • @gummibarchen1372
    @gummibarchen1372 Před 4 lety

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

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  Před 4 lety

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

    • @gummibarchen1372
      @gummibarchen1372 Před 4 lety

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

    • @gummibarchen1372
      @gummibarchen1372 Před 4 lety

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

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  Před 4 lety

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

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  Před 4 lety

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

  • @zoomle_iOS
    @zoomle_iOS Před rokem

    Спасибо!

  • @magomedn2057
    @magomedn2057 Před 3 lety

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

  • @FominValera
    @FominValera Před 2 lety

    Спасибо