Flutter с нуля до профи | #9 - Bloc стейт менеджмент №1 | Курс для начинающих 2023

Sdílet
Vložit
  • čas přidán 27. 07. 2024
  • Flutter - это идеальный инструмент, чтобы начать путь в айти или перейти на него в 2023. А я как раз тот самый коуч, которого ты искал.
    Ура! Наконец-то BLoC 😅.
    В этом уроке мы познакомимся с самым популярным и самым продуманным стейт-менеджментом для Flutter приложений - BLoC'ом. Узнаем как работает BLoC, как построен его жизненный цикл. Как работает BlocBuilder. Как обрабатывать ошибки в ваших блоках логики. И прикрутим это все к нашему крипто-приложению.
    В ходе курса, мы вместе разберемся с тем, что такое Flutter и как на нем сделать первое приложение. Научимся программировать на dart, узнаем про основные виджеты в Flutter, как работать с сетью http dio, узнаем про основной стейт менеджемнт в Flutter - BLoC.
    😎 Репозиторий с кодом из уроков: github.com/Frezyx/flutter_tut...
    Ссылки из видео:
    ⬇️ Библиотека BLoC pub.dev/packages/bloc
    ⬇️ Библиотека Flutter BLoC pub.dev/packages/flutter_bloc
    ⬇️ Extension BLoC для VScode marketplace.visualstudio.com/...
    ✅ Полезные ссылки:
    👨‍💻 Мой GitHub github.com/Frezyx (Куча кода на dart / Flutter)
    💬 Telegram с анонсами t.me/frezycode
    🚀 Boosty boosty.to/frezycode
    📸 Instagram / frezycode
    00:00 - 00:13 Вступление
    00:13 - 00:43 Что такое стейт - менеджмент
    00:43 - 01:00 Какие есть библиотеки (provider, riverpod, mobx, getx)
    01:00 - 01:10 Почему мы изучаем именно BLoC ?
    01:10 - 03:55 Как работает BLoC (Event, State)
    03:55 - 04:49 Детали BLoC: onEvent, EventHandler, EventTransformer, emit
    04:49 - 05:18 Как работает Cubit отличие от BLoC
    05:18 - 05:52 Про надстройки для BLoC
    05:52 - 06:27 Устанавливаем flutter_bloc
    06:27 - 7:58 Создаем наш первый BLoC в приложении
    07:58 - 08:52 Что такое part и part of
    08:52 - 09:28 Как создавать BLoC в 2 раза быстрее, mason
    09:28 - 12:27 Разбираемся с базой BLoC, про ивенты и стейты
    12:27 - 12:58 EventHandler, метод onEvent
    12:58 - 15:09 Пишем свой обработчик евента на загрузку данных
    15:09 - 15:25 Как вызвать Event у BLoC’а, метод add()
    15:25 - 15:59 Проверяем работу нашего EventHandler
    15:59 - 17:32 Выносим логику загрузки криптовалют в BLoC
    17:32 - 18:29 Создаем стейты для нашего BLoC’а
    18:29 - 19:05 Возвращаем загруженные криптовалюты из блока
    19:05 - 21:33 Как работает BlocBuilder, показываем загруженные данные
    21:33 - 22:04 Про абстрагированность данных в State
    22:04 - 23:03 Проверяем как работает загрузка через BLoC
    23:03 - 25:31 Обработка ошибок в BLoC
    25:31 - 25:58 Почему ошибки в стойте лучше делать Object
    25:58 - 26:47 Делаем обработку ошибок нашего блока
    26:47 - 28:27 Добавляем экран ошибки в BlocBuilder
    28:27 - 29:02 Послание из будущего
    #войтивайти #программирование #flutter

Komentáře • 50

  • @abdazimabdumalikov5194
    @abdazimabdumalikov5194 Před rokem +11

    Не бросай мы начинающие держимся на Вас. Настолько четко понятно грамотно объяснили

  • @rus_dos
    @rus_dos Před rokem +14

    До такой степени четко и грамотно объясняет, что пол часа прошел как пять минут. Большое Вам спасибо за Вашу работу.

  • @armen_kocharyan
    @armen_kocharyan Před rokem +7

    Спасибо большое за вашу работу, Я в замешательстве, это не должно быть бесплатным

  • @serious_psychologist
    @serious_psychologist Před rokem +7

    наконец то кто-то в ютубах начал объяснять что такое Bloc !! спасибо.

  • @Rio-sb5gp
    @Rio-sb5gp Před rokem +8

    Класс !
    Только не забрасывай этот курс
    Как только этот курс вольется в массы, донаты обеспечены )

  • @user-im5bz4mn4d
    @user-im5bz4mn4d Před rokem +6

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

  • @romanbutler156
    @romanbutler156 Před rokem +3

    Самое понятное объяснение , лаконичное и понятное. Спасибо огромное !

    • @frezycode
      @frezycode  Před rokem

      Вам спасибо, что смотрите 🙏

  • @alina1256
    @alina1256 Před rokem +2

    очень понятное объяснение, спасибо большое !

  • @vitek12321
    @vitek12321 Před rokem +1

    Спасибо! Все очень доступно, детально и понятно👍

  • @erbolattalasbekov7791
    @erbolattalasbekov7791 Před rokem +1

    Спасибо! Все очень четко и ясно🤝👍👍👍

  • @user-dx8kd9kk8q
    @user-dx8kd9kk8q Před 9 měsíci

    Как любит говорить мой кореш, Ты просто ЛУЧШИЙ XD

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

    Пока пишу в след за вами, все думаю - как хорошо я в это время затарился битком)

  • @elkub
    @elkub Před rokem

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

  • @zangarakezhanov7160
    @zangarakezhanov7160 Před rokem

    Спасибо)

  • @user-ng7gq9fz3l
    @user-ng7gq9fz3l Před rokem +1

    Спасибо

  • @crazy-man
    @crazy-man Před rokem +3

    Прикольно get_it все хотел понять зачем нужен, тут на примере увидел пользу )

    • @frezycode
      @frezycode  Před rokem +1

      Да, все эти вложенности зависимостей очень хорошо им решаются)

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

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

  • @shakirkadirov
    @shakirkadirov Před rokem +4

    Great job bro

  • @yakut54
    @yakut54 Před 6 měsíci +1

    Стас:
    Для начала хотелось бы узнать, что такое State management.
    Google переводчик:
    "Государственное управление" 😆

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

      Управление состоянием это) В нашем случае управление состоянием приложения.

  • @user-yk2yt2vh5z
    @user-yk2yt2vh5z Před 6 měsíci

    👍👍👍

  • @user-rf4it2sq5c
    @user-rf4it2sq5c Před 7 měsíci

    that's good mate, you're talented at speaking and understanding 😉😉

    • @frezycode
      @frezycode  Před 7 měsíci

      Thanks a lot! Is Russian one of the languages you speak?

    • @user-rf4it2sq5c
      @user-rf4it2sq5c Před 7 měsíci

      @@frezycode yeah I know Russian language

  • @primefootball621
    @primefootball621 Před rokem +4

    давай писать небольшой проект
    Сәлем от Казахстан🇰🇿

  • @volga_code
    @volga_code Před 7 měsíci +1

    такой вопрос, почему конструктор всегда переносишь в самы верх?

  • @arthurlokhov6856
    @arthurlokhov6856 Před rokem +3

    Возник такой вопрос. Насколько сильно отличается мобильная и десктопная разработка на Flutter? Насколько хорошая интеграция с той же Windows? Планирую написать твикер для Windows

    • @frezycode
      @frezycode  Před rokem +1

      Окей, если найду время - сделаем видео про особенности десктопа на flutter. А вообще flutter очень качественно спроектирован. В 90% все одинаково пишется.

  • @user-cv1ih8yk8n
    @user-cv1ih8yk8n Před rokem +2

    Благодарю за ценный материал и понятное объяснение😊Можно не передавать класс репозитория в конструктор блока, а сразу получить его внутри класса блока с помощью GetIt? Или это как то по логике не верно?

    • @frezycode
      @frezycode  Před rokem +3

      Вам спасибо большое за обратную связь! Лучше всегда передавать репозитории через конструктор, для того, чтобы вы понимали что в коде происходит.
      Код всегда должен быть предсказуемым и понятным. Чтобы другие разработчики не лезли внутрь и не искали что же там за репозиторий используется и где он инициализируются.

  • @user-zz4uj1mr5f
    @user-zz4uj1mr5f Před 8 měsíci

    Я пока не совсем уловил смысл данных блоков, так выглядит буд то мы ничего не изменили а просто сделали отдельную комнату для работ с отображением элементов. Может это так оно и есть или я что то не понял?

  • @user-fk6kg3qt7g
    @user-fk6kg3qt7g Před 5 měsíci

    А чем тогда отличается part от import?

  • @yakut54
    @yakut54 Před 11 měsíci +1

    на stackoverflow пишут, что команда Dart, якобы разочарована в использовании part / part of и вроде как в следующей версии Dart от этой конструкции хотят отказаться. 🤷‍♂

    • @frezycode
      @frezycode  Před 11 měsíci +1

      Не знаю чем они там разочаровались. Я от part балдею очень знатно)

  • @RamzanK
    @RamzanK Před 3 měsíci

    Лев

  • @dnnd1206
    @dnnd1206 Před rokem

    15:10 А зачем добавляется LoadCryptoList ?

  • @DartMitai
    @DartMitai Před rokem

    есть еще такой блок stream_bloc от крутого разраба

  • @tdctdc1774
    @tdctdc1774 Před 10 měsíci +1

    Спасибо за видео! Все доступно и очень понятно.. но столкнулся с такой проблемой может кто-то подскажет как реализовать.. Если все в одном виджете то все работает (BlocA.add(eventName()) отправляется и стейт отрисовывается), а если мне надо в одном виджете по нажатию кнопки отправить этот же ивент BlocA.add(eventName()), а в другом виджете перерисовать стейт то стейт не перерисовывается хотя в дебаге вижу что в event заходит🤷‍♂ Может быть есть какая-то особенность при работе с bloc из разных виджетов?

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

      Привет! возможно ты используешь два разных инстанса блока. То есть отправляешь в один, а слушаешь другой.

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

      @@frezycode Действительно так и было, спасибо👍

  • @Hande_hoch
    @Hande_hoch Před rokem +1

    напомнило czcams.com/video/qLqWg3m2z1Y/video.html )))

    • @frezycode
      @frezycode  Před rokem

      Ахххщпозхзшп, спасибо)

  • @OleksandrBardashevskyi

    MVVM - model viewModel View.... *Facepalm*

  • @kaktyzzz89
    @kaktyzzz89 Před rokem +1

    Кринж

  • @vlog-bastard
    @vlog-bastard Před 4 měsíci

    Омг. Зачем так сложно..🫣
    Куча файлов, классов, кода..что бы дернуть одну ручку и организовать стейт. Здоровья вам флатеристы)

    • @-itleader9473
      @-itleader9473 Před 15 dny +1

      Merge Conflict, bro. Когда много людей пилят одно приложение, то лучше, чтобы их изменения были в разных файлах и не пересекались. Когда пишешь один - пиши как удобнее. Но а Flutter после Vue3 и MAUI/C# кажется чем-то WinApi из 90 ))