Архитектура. MVI [RU] / Мобильный разработчик

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 พ.ย. 2024

ความคิดเห็น • 75

  • @РусланСамарбаев
    @РусланСамарбаев 5 ปีที่แล้ว +8

    Алексей спасибо большое! Благодаря тебе и твоему трубу могу развиваться, как начинающий разработчик!

    • @MobileDeveloper
      @MobileDeveloper  5 ปีที่แล้ว +1

      Всегда пожалуйста )

  • @mayx8844
    @mayx8844 ปีที่แล้ว +1

    Я не начинающий разработчик, но на практике никогда не использовал MVI. Сейчас занимаюсь личным проектом, пишу на kmm (курс по kmm =)) и встала делема с нужной архитектурой (слышал, что для kmm - mvi the best of the best, но окончательного понимания этого слуха не было). А данный видос - это исчерпывающий ответ на то, что будет удобно юзать (нашёл orbit mvi, осваиваю). Спасибо вам огромное за данный материал!!

  • @УлугбекИбрагимов-г1я
    @УлугбекИбрагимов-г1я 3 ปีที่แล้ว +3

    Офигенный канал и видео интересные, главное не забрасывать!!!!

  • @denisperfomer5826
    @denisperfomer5826 5 ปีที่แล้ว +4

    В своих проектах всегда использую MVI, нравится гораздо больше других подходов - защита от неконсистентного состояния, можно хранить историю стейтов, можно сделать time-travel debug и даже потестить удобно, в общем всё строго и чётко. Но есть минус, что подход довольно сложен для джунов.
    И насчёт тех проблем с "неизящностью" использования: конечно. пример из видео написан на коленке, поэтому и неизящно)
    Желательно для MVI написать стейт-машину, например на RxJava, или взять уже существующий фреймворк. Тогда как раз-таки всё будет кратко и красиво.
    Спасибо за видео!

    • @MobileDeveloper
      @MobileDeveloper  5 ปีที่แล้ว +3

      Был бы очень признателен если бы вы расшарили пример сложного флоу на MVI. Я мог бы это как-то показать на стриме и прокомментировать

  • @elviraminnullina2807
    @elviraminnullina2807 2 หลายเดือนก่อน

    четко объяснил, спасибо
    Не нашла в github код которые был показан в видео, на какой бранч смотреть?

    • @MobileDeveloper
      @MobileDeveloper  2 หลายเดือนก่อน

      С тех пор я все переписал много раз уже. Последняя актуальная версия лежит в GitHub JetHabit

  • @4mmixa974
    @4mmixa974 ปีที่แล้ว

    Кратко и четко объяснил. Однозначно лайк

  • @Иван-н1р2ю
    @Иван-н1р2ю 4 ปีที่แล้ว +1

    Парадигма - описание в науке и философии паради́гма означает определённый набор концепций или шаблонов мышления, включая теории, методы исследования, постулаты и стандарты, в соответствии с которыми осуществляются последующие построения, обобщения и эксперименты в области. Первоначально слово использовалось в лингвистике и риторике. Википедия.
    По мне как MVI это тот же шаблон проектирования, использующий композицию, объекты никуда не делись, передаются в качестве параметров, проверяются на тип, MVP же, как архетиктурное решение над MVI для порядка в коде.

    • @MobileDeveloper
      @MobileDeveloper  4 ปีที่แล้ว

      Композиция это несколько другое. Так можно любую функцию композицией назвать. Насчёт слова парадигма, то в разрезе программирования она имеет вполне конкретные приложения, а именно новой парадигмой стали функциональное программирование, ООП и там не помню ещё третье что-то было. Я это слово использовал, чтоб как-то отделить просто архитектурный паттерн от действительно в каком-то смысле нового подхода

  • @VolodymyrBabenko-w7j
    @VolodymyrBabenko-w7j 5 ปีที่แล้ว

    Щас сделаю кофеёк и буду ознакамливаться с новым интересным видосом)

  • @KnijnenburgMexx
    @KnijnenburgMexx 4 ปีที่แล้ว +8

    th-cam.com/video/IRCv3mkc6jY/w-d-xo.html "Его идея в том, чтобы у вас было некое состояние вашего экрана, которое конфигурируется одной единственной моделью с кодовым названием state. Те, кто смотрел мои видео, возможно помнят, что я говорил, что некоторые под моделью подразумевают иное, вот этот как раз оно"
    Вот зачем вводить людей в заблуждение, пользуясь понятиями, у которых совершенно иной смысл? Состоение View описывает ViewState, вот как можно сюда приплести слово "модель"? Если в MVI Model - это черный ящик с бизнес логикой, у которого на входе интенты, а на выходе ViewState.
    th-cam.com/video/IRCv3mkc6jY/w-d-xo.html "View отправляет иммутабельную модель в качестве интента в обработчик. Дальше происходит обработка сигнала и в ответ прилетает такая же иммутабельная модель со стейтом".
    Дальше из-за этого непонимания разницы между Model и ViewState начинается какая то дичь. В MVI View ничего не знает про Model, а делает ровно две вещи: 1) Отправляет Intent'ы, подписывается на поток ViewState. View не занимается хранением текущего ViewState, он должен быть Stateless, соотственно он никак не может "отправлять модели". Текущее состояние ViewState хранится в Stateful Model.
    th-cam.com/video/IRCv3mkc6jY/w-d-xo.html "И вот люди раскопали, что изначально, когда появились эти паттерны, моделью называлась вот эта та самая штука, которая отображает состоение вашего View"
    Таже ошибка. Штука, которая отображает состояние UI (корректнее было бы сказать "UI", а не "View"), внезапно называется View. View получает свое состояние (ViewState) и ОТОБРАЖАЕТ его - это его прямая отвественность. И уж говорить, что Model (в любом архитектурном шаблоне) что-то отображает, это насколько надо быть безграмотным. Model в MVI еще раз - это бизнес логика, которая занимается ФОРМИРОВАНИЕМ ViewState.
    Досматривать это видео сил не хватило. Думал, что почерпну что-то новое из ролика или хотя бы услышу, что уже знаю. Но оказалось что автор не шарит в теме MVI.

    • @MobileDeveloper
      @MobileDeveloper  4 ปีที่แล้ว

      Ну и слава богу )) предлагаю вам больше ничего не смотреть, все рано ничего интересного не узнаете )

  • @alexandernifanin7366
    @alexandernifanin7366 5 ปีที่แล้ว +9

    5:28 "Ваще похоже на вредоносный код". Алексей, ваш коллега смотрит код в прямом эфире? :)))

    • @MobileDeveloper
      @MobileDeveloper  5 ปีที่แล้ว +1

      Хахах) нее) это там другого касалось )

    • @vasilymaestrovs9546
      @vasilymaestrovs9546 4 ปีที่แล้ว +6

      Да это он об яндекс браузере говорит

  • @lunamarsword
    @lunamarsword 5 ปีที่แล้ว

    Супер, с нетерпением ждем Ваши видео!

  • @LE5F0RE5T
    @LE5F0RE5T 5 ปีที่แล้ว

    Очень зашло. В связке с rx решаются проблемы больше 4 cостояний

    • @MobileDeveloper
      @MobileDeveloper  5 ปีที่แล้ว +1

      Ну да здесь пример очень простенький )

  • @ВладСапожников-ю3ц
    @ВладСапожников-ю3ц ปีที่แล้ว

    Хотел бы увидеть, как при данном подходе работать с показом диалога

  • @elpirato5428
    @elpirato5428 5 ปีที่แล้ว

    Здравствуйте, будет ли урок по созданию выпадающего списка в Navigation Drawer Activity, чтобы при нажатии на текст выпадал список, на джаве был onNavigationItemSelected, но на котлине он, не вызывается, а если создать такую функцию, то другие команды не работаю и вообще путаница происходит.

    • @MobileDeveloper
      @MobileDeveloper  5 ปีที่แล้ว

      Возможно будет. Вообще Navigation Drawer уже морально устарел, поэтому не факт, но вы можете задать тему следующего видео в группе в ВК
      vk.com/mdeveloper

  • @mrrobot8923
    @mrrobot8923 5 ปีที่แล้ว +1

    можно ссылку на код? Немного не пойму одну вещь, а Вы про нее не рассказали. Заодно гляну как корутины организовывать в проекте.
    А, вот что еще хотел спросить. Если будет время, сделайте видео по flow / cold stream, channels в корутинах. Дока у Котлина не ахти по этим темам, а вещи вроде интересные, тем более что они повторяют функционал RxJava, но реализуются значительно приятнее.

    • @MobileDeveloper
      @MobileDeveloper  5 ปีที่แล้ว

      Спасибо за наводку, изучу. Ссылку на код вечером добавлю

    • @elenamonakhova7420
      @elenamonakhova7420 4 ปีที่แล้ว +1

      @@MobileDeveloper жаль, так и не добавили))

    • @MobileDeveloper
      @MobileDeveloper  4 ปีที่แล้ว

      Elena Monakhova добавил, но на другой репозиторий, однако, там тоже самое )

    • @elenamonakhova7420
      @elenamonakhova7420 4 ปีที่แล้ว

      @@MobileDeveloper спасибо!!!

  • @User-hx1sb
    @User-hx1sb 5 ปีที่แล้ว

    а вы смотрели исходники duckduckgo? если не ошибаюсь, то он использует эту архитектуру

    • @MobileDeveloper
      @MobileDeveloper  5 ปีที่แล้ว

      Нет, а ссылочку дадите?)

    • @User-hx1sb
      @User-hx1sb 5 ปีที่แล้ว

      @@MobileDeveloper на гитхабе

    • @User-hx1sb
      @User-hx1sb 5 ปีที่แล้ว

      @@MobileDeveloper скинул. Если отобразится ссылка

  • @ghostjkeee6641
    @ghostjkeee6641 4 ปีที่แล้ว

    о архитектуре VIPER можете сделать видео

    • @MobileDeveloper
      @MobileDeveloper  4 ปีที่แล้ว

      Она не очень отличается от Clean Swift, но запрос понял хорошо :)

  • @yuriyalbu4501
    @yuriyalbu4501 5 ปีที่แล้ว +1

    Сделайте, пожалуйста видео по Proguard

    • @MobileDeveloper
      @MobileDeveloper  5 ปีที่แล้ว

      Записал) вы можете влиять на очерёдность видео в группе ВКонтакте

    • @yuriyalbu4501
      @yuriyalbu4501 5 ปีที่แล้ว

      @@MobileDeveloper Супер, спасибо за ответ)

  • @Neroreflex
    @Neroreflex 3 ปีที่แล้ว +2

    Было бы неплохо как-то графически разнообразить теорию. А то на слух очень сложно даётся.

    • @MobileDeveloper
      @MobileDeveloper  3 ปีที่แล้ว

      Со временем будет, но пока это слишком удлиняет цикл релиза видео, поэтому в этом видео так

  • @asp424
    @asp424 3 ปีที่แล้ว

    Бля собственно это оно и есть

    • @MobileDeveloper
      @MobileDeveloper  3 ปีที่แล้ว

      Не очень понял )

    • @asp424
      @asp424 3 ปีที่แล้ว

      @@MobileDeveloper сообщение вылезло, в тему) В видео.

  • @ИльяИванов-л1ъ6н
    @ИльяИванов-л1ъ6н 5 ปีที่แล้ว

    Спасибо! А где ссылочки на статьи?))

    • @MobileDeveloper
      @MobileDeveloper  5 ปีที่แล้ว

      Блин.. всегда забываю что-нибудь)

    • @user-xl2tf4gq1g
      @user-xl2tf4gq1g 4 ปีที่แล้ว +2

      @@MobileDeveloper снова забыли)

  • @ilyamurashko4590
    @ilyamurashko4590 5 ปีที่แล้ว

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

    • @MobileDeveloper
      @MobileDeveloper  5 ปีที่แล้ว +1

      Конечно. Видно же что я особо не думал над обработкой )) здесь я показываю и рассказываю про другое
      P.S. Можно этот кусок как блок-схему воспринимать

    • @ilyamurashko4590
      @ilyamurashko4590 5 ปีที่แล้ว

      @@MobileDeveloper Мне кажется, что стоит написать дисклеймер какой-нибудь )

    • @MobileDeveloper
      @MobileDeveloper  5 ปีที่แล้ว

      Чет не вижу как это сделать силами ютуба )

  • @KnYaZuK
    @KnYaZuK 5 ปีที่แล้ว

    Где ссылка на статьи?

    • @MobileDeveloper
      @MobileDeveloper  5 ปีที่แล้ว

      Забыл ;(

    • @FoRGeish
      @FoRGeish 5 ปีที่แล้ว

      @@MobileDeveloper так можно отдельным комментарием и закрепить его.

  • @mamyna_bysinka
    @mamyna_bysinka 4 ปีที่แล้ว

    Для маленьких проектов норм, но все становится ужасно когда интерактор разрастается к 1к+ строчек.

    • @MobileDeveloper
      @MobileDeveloper  4 ปีที่แล้ว

      Хм ну у нас порядка 60 -80 экранов (не считал) и редко когда файл выходит за 600 строк. Если честно то есть линтер который не даст это скомпилировать. Это при том что у нас есть все соответствующие большому проекту аналитики и так далее

  • @СергейПанов-з3ц
    @СергейПанов-з3ц 5 ปีที่แล้ว

    Что по ММРу у автора видео в Доте?

  • @vasilymaestrovs9546
    @vasilymaestrovs9546 4 ปีที่แล้ว

    Лайк за классное объяснение, но хотелось поставить минус использование такой паршивой дряни, как яндекс и контактик. Автор, забудь об отечественной этой нечисти, пользуйся хромом и фейсбуком, как вариант, не позорься.

    • @MobileDeveloper
      @MobileDeveloper  4 ปีที่แล้ว

      Может я как-то без вас разберусь как мне жить? Без сопливых скользко как говорится

    • @vasilymaestrovs9546
      @vasilymaestrovs9546 4 ปีที่แล้ว

      @@MobileDeveloper Ну почитайте ж ниже даже, просто в голове не укладывается, какой же ВК уже в 20 году? Это же даже не моветон, а хуже. Еще бы одноклассников не хватало. Я подписался на Ваш канал, потому что вы круто объясняете. Не сердитесь на меня, но правда... контакт и яндекс это бред..

    • @MobileDeveloper
      @MobileDeveloper  4 ปีที่แล้ว +3

      Отписывайтесь обратно. Я могу за 5 минут буквально разложить что ваш Фейсбук это хуита позорная, написанная ебаными даунами. И любой, кто хоть раз с их сдк или апи работал меня поддержит

    • @vasilymaestrovs9546
      @vasilymaestrovs9546 4 ปีที่แล้ว

      @@MobileDeveloper с точки зрения апи и серверной я согласен - фб накосячили с пхп и реакт их тоже непонятка... Но речь о контенте и аудитории

    • @MobileDeveloper
      @MobileDeveloper  4 ปีที่แล้ว

      Меня контент и аудитория очень даже устраивает, а тем более не понятно как связан Яндекс браузер и контент. Это тут причём вообще? Он тупо удобнее. Причём в разы. А ваш хром это чёрная дыра в памяти, которая бесконтрольно отжирает все что ему скормят. Вам показать скриншот где хром откушал 1.24 терабайта блядь оперативки? Вы же объективно понимаете, что спорите с программистом. Я буквально знаю как это все устроено внутри.