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

Поділитися
Вставка
  • Опубліковано 14 січ 2025

КОМЕНТАРІ • 121

  • @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

  • @theswiftdevelopers1301
    @theswiftdevelopers1301  5 років тому +28

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

    • @Lammax2012
      @Lammax2012 5 років тому +3

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

    • @СергейШемет-л7г
      @СергейШемет-л7г 5 років тому +15

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

    • @grigorhovhannisyan2417
      @grigorhovhannisyan2417 5 років тому

      38:38 jdyom s neterpeniem)))

    • @eugene89225
      @eugene89225 5 років тому

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

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  5 років тому +2

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

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

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

  • @IBSivay
    @IBSivay 5 років тому +14

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

  • @surfspot8043
    @surfspot8043 5 років тому +52

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

    • @АртурКулик-ш3с
      @АртурКулик-ш3с 3 роки тому +2

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

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

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

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

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

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

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

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

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

  • @slavaslutsker7223
    @slavaslutsker7223 5 років тому +23

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

    • @eugene89225
      @eugene89225 5 років тому +3

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

    • @АлинаЩиголева-и6ц
      @АлинаЩиголева-и6ц 4 роки тому +2

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

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

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

  • @IhorFedii-n1i
    @IhorFedii-n1i 5 років тому +5

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

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  5 років тому +3

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

    • @IhorFedii-n1i
      @IhorFedii-n1i 5 років тому +1

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

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

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

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

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

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

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

  • @ПётрКозлов-э3э
    @ПётрКозлов-э3э 5 років тому

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

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

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

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

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

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

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

  • @СергейБабий-у7с
    @СергейБабий-у7с 4 роки тому

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

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

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

  • @1993skill
    @1993skill 5 років тому +8

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

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

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

  • @МаксимВоеводин-р4я

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

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

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

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

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

  • @vovamik
    @vovamik 5 років тому +5

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

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  5 років тому +1

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

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  5 років тому +1

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

    • @vovamik
      @vovamik 5 років тому

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

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

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

  • @anthonyhoang5882
    @anthonyhoang5882 5 років тому +2

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

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  5 років тому +1

      спасибо

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

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

  • @raulstudylab9041
    @raulstudylab9041 5 років тому +1

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

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

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

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

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

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

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

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

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

  • @МаксимАлексеев-з9р
    @МаксимАлексеев-з9р 5 років тому

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

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

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

  • @Dragonboh1
    @Dragonboh1 5 місяців тому

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

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

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

  • @ihorchernysh6180
    @ihorchernysh6180 5 років тому

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

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

    Спасибо!

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

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

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

    Spasibo za takie video !

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

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

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

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

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

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

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

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

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

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

  • @IhorFedii-n1i
    @IhorFedii-n1i 4 роки тому

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

  • @dmitrymarchenkov7686
    @dmitrymarchenkov7686 5 років тому +1

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

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  5 років тому

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

    • @dmitrymarchenkov7686
      @dmitrymarchenkov7686 5 років тому

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

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

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

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

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

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

    Класс

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

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

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

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

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

    Спасибо

  • @zakharbabkin3588
    @zakharbabkin3588 5 років тому

    Спасибо 🤖

  • @СергейБезденежных-щ8ю

    спасибо!

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

    Круто)

  • @witcom6368
    @witcom6368 5 років тому

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

  • @Cassin1797
    @Cassin1797 5 років тому +5

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

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  5 років тому +1

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

    • @leonif1
      @leonif1 5 років тому

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

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

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

  • @Денис-у1и4я
    @Денис-у1и4я 4 роки тому

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

  • @UserUser-vi2dn
    @UserUser-vi2dn 5 років тому +2

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

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  5 років тому +1

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

    • @UserUser-vi2dn
      @UserUser-vi2dn 5 років тому +8

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

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

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

  • @gummibarchen1372
    @gummibarchen1372 5 років тому

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

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

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

  • @slavikagarkov2747
    @slavikagarkov2747 5 років тому +3

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

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

    ждем теперь CleanArchitecture

  • @ВячеславЛарин-м6х
    @ВячеславЛарин-м6х 4 роки тому

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

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

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

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

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

  • @ОлесяУкраинская-т1д

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

    • @ОлесяУкраинская-т1д
      @ОлесяУкраинская-т1д 4 роки тому

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

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

      @@ОлесяУкраинская-т1д привет) если хочешь, напиши в телегу, покажу в чем ошибка @alexcontrol

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

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

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

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

  • @ОлегЕ-ы8в
    @ОлегЕ-ы8в 5 років тому +3

    retain cycle

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  5 років тому +1

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

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

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

    • @максиммартынов-я1ь
      @максиммартынов-я1ь 2 роки тому

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

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

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

  • @YouMeNow88
    @YouMeNow88 5 років тому

    Такое ощущение что нужно лет 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 уже устраиваются

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

    Спасибо!

  • @ДарьяКудашева-ж4э
    @ДарьяКудашева-ж4э 2 роки тому

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

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

    Спасибо