Provider (Flutter) -очень простой пример работы с провайдером

  Рет қаралды 9,001

СТОЛЕЦ

СТОЛЕЦ

Жыл бұрын

Рассмотрим несколько простых примеров проброски информации внутрь дерева виджетов. Это самая крутая тема для разработчиков на Flutter.
Открытый чатик, где тебе обязательно помогут, добавляйся и общайся t.me/dart_flutter_prostymi_sl...
Лично обучу Флаттеру за 2 месяца 😲
напиши мне t.me/stolets
Программа и стоимость
Dart - от А до Я простыми словами
Flutter - фундамент простыми словами: верстка и виджеты, state, context, навигация, провайдер, базы данных, локализация, Firebase, реклама в приложении (+ бонус - функционал подписок)
Как проходит обучение:
а) Попадаешь в группу обучающихся
б) Еженедельно в субботу созвон на 2 часа
в) Получаешь ДЗ, которое нужно выполнить
Стоимость обучения в разы меньше по сравнению с остальными курсами Flutter (стоимость уточнить можно в ЛС)
PS: Выпускников своего обучения приглашаю в свой Практикум, где общий интерес - создать приложение с доходом. Если тебя такое интересует, приходи учиться и давай вместе развиваться =)
Любые вопросы, пиши в ЛС:
t.me/stolets
t.me/stolets
t.me/stolets

Пікірлер: 54
@stolets
@stolets 7 ай бұрын
*Знаешь почему стоит пойти ко мне учиться?* *Не сложно!* 👇 Я лично обучаю и делаю это «простым и доступным языком», тебе будет понятно всё что необходимо *Не долго!* 👇 Ты легко освоишь навык разработки приложений всего за 2 месяца *Не дорого!* 👇 Стоимость обучения в разы меньше по сравнению с остальными курсами Flutter (стоимость уточнить можно в ЛС) *Нужно немного твоего времени!* 👇 Каждую субботу будет наш созвон в Zoom и всего на 2 часа (созвон всего лишь раз в неделю) *С домашним заданием!* 👇 Ты будешь получать домашнее задание которое надо выполнить в течении недели и я лично буду проверять ДЗ и давать комментарий *С практикой!* 👇 Ты сделаешь учебный проект и получишь задание делать свое собственное приложение *Не скучно!* 👇 На созвоне я всегда всех призываю активничать и перебивать меня, я всегда хочу получать вопросы и тут же отвечать на них *Перспективно!* 👇 Выпускников я зову на свой практикум, где мы вместе будем делать бизнес на приложениях (зарабатывать на продаже премиум подписках в приложениях) *Остались вопросы?* Ниже контакты, просто напиши мне!
 Telegram: t.me/stolets
 WhatsApp, Viber, SMS: +7 (908) 505-49-41
 +7 (908) 505-49-41
 +7 (908) 505-49-41
 (на обычный звонок не отвечаю, по причине частого спама) Vk: vk.com/stolets Instagram: instagram.com/sto_lets Email: ip.stolets@yandex ru
@ai-bloggers
@ai-bloggers Жыл бұрын
Это пожалуй лучший урок по провайдеру. Спасибо, Дмитрий
@ai-bloggers
@ai-bloggers Жыл бұрын
Что-то серьёзное начинается 🙂 Мощный урок. Спасибо, Дим. Пожалуй, я ещё раз пересмотрю
@merutation
@merutation Жыл бұрын
Спасибо! Очень понятный и качественный видео урок. Читала несколько артиклей, особо не вникала в суть. А теперь стало все понятно. Продолжайте в том же духе🤩😊
@victordeynega6746
@victordeynega6746 8 ай бұрын
Спасибо большое за урок, все очень понятно!!
@itpeople1573
@itpeople1573 Жыл бұрын
шикарно доступно изложено
@stolets
@stolets Жыл бұрын
Благодарю!
@Kiryushaboy
@Kiryushaboy 10 ай бұрын
Классное понятное объяснение, спасибо, а то везде видео на час, в лучшем случае) ♥️
@cordroy1846
@cordroy1846 Жыл бұрын
от души за видео, продолжай в том же духе
@peekors8829
@peekors8829 Жыл бұрын
Спасибо Дмитрий,ролик получился понятным. Можно вас попросить разобрать Riverpod. Я думаю многим это будет полезно т.к это Provider 2.0 на максималках
@bekzatzamirbekov3330
@bekzatzamirbekov3330 Жыл бұрын
ochen ponyatno bylo, stavlyu like i podpisku!!!
@stolets
@stolets Жыл бұрын
Спасибо
@aldiyarualiyev
@aldiyarualiyev Жыл бұрын
thanks man! god bless you!
@mvlikhachev
@mvlikhachev Жыл бұрын
Лайк и коммент в поддержку канала) Сейчас появилась необходимость побыстрому разобраться в основах флаттера и видосы нормально зашли) Конечно сильно все упрощенно, но как я понял на этом и был акцент чтобы даже совсем начинающие разобрались что да как.
@stolets
@stolets Жыл бұрын
Да, все именно так
@stolets
@stolets Жыл бұрын
Спасибо!!
@richardrgb6086
@richardrgb6086 Жыл бұрын
thank you✌
@alexandrmakovkin7364
@alexandrmakovkin7364 Жыл бұрын
как получить конкретную переменную с одинаковым типом? List a = 1; List b = 2;
@stolets
@stolets Жыл бұрын
Отличный вопрос. Насколько я понял, для провайдера необходимо иметь разные типы для каждого конкретного провайдера. Если есть одинаковые типы, он будет возвращать первый. Решить эту проблему можно легко, просто создать класс для отдельного вида данных. Но по логике, в провайдере лучше поставлять модели данных, отдельные классы.
@martindoriel6585
@martindoriel6585 Ай бұрын
​@@stolets Provider( create: (context) =>[a,b], ... На другой странице: child: Text(${'Provider.of(context)[1]}'), ... Выведет значение b. Примет любой типизированный массив. На dynamic захлебнётся.
@JustADevGuy
@JustADevGuy Ай бұрын
В данном примере при нажатии на кнопку изменения температуры перерисовывается весь виджет страницы. Было бы правильней поместить context.watch() и Text в Builder, чтобы перерисовывался только сам Text со значением температуры: Builder( builder: (context) { final temp = context.watch(); return Text( temp.temperature.toString(), style: Theme.of(context).textTheme.headlineMedium, ); }, ),
@Unrealchik
@Unrealchik Жыл бұрын
Спасибо за ясный пример :) Если мы хотим вернуться к предыдущим экранам по навигации, восстанавливая отображаемые данные (в полях ввода, например), нужно использовать только провайдер?
@Dustystec
@Dustystec Жыл бұрын
Продолжайте пожалуйста
@stolets
@stolets Жыл бұрын
Буду продолжать) спасибо
@elkaigolka7349
@elkaigolka7349 Жыл бұрын
Привет! Сделай пожалуйста выпуск про cubit. И если будет время, то с api было бы супер
@stolets
@stolets Жыл бұрын
Хорошо. Запишу в задачи)
@elkaigolka7349
@elkaigolka7349 Жыл бұрын
@@stolets имел ввиду не отдельно тему с api, а cubit+api. Очень жду выпуска!!!
@stolets
@stolets Жыл бұрын
@@elkaigolka7349 я так и понял)
@crazy-man
@crazy-man Жыл бұрын
Да, круто все разжовано , для меня конечно как постоянно юсера. Getx выглядит как getx. только длиннее синиакс
@eleimt
@eleimt Жыл бұрын
Подскажите пожалуйста, планируется ли видео о скролле?
@stolets
@stolets Жыл бұрын
Отдельно нет. А что за вопрос у вас?
@eleimt
@eleimt Жыл бұрын
@@stolets Пока не пойму как правильно организовывать стр. с несколькими горизонтальными скролами, при этом что бы скролился весь экран.
@stolets
@stolets Жыл бұрын
@@eleimt почитай про SingleChildScrollView виджет и его параметры
@ffonlfoff5005
@ffonlfoff5005 Жыл бұрын
Привет, а если я хочу два инта пробросить, то как получать именно тот инт, который мне нужен?
@stolets
@stolets Жыл бұрын
Провайдить не инт, а класс
@compas013
@compas013 6 ай бұрын
@@stolets но получается, что если мы в класс запихнем 50 переменных int и будем провайдить класс, то при изменении любой переменной внутри класса будут срабатывать все ребилды, связанные со всеми этими переменными... А это не выглядит оптимально... Я правильно понимаю?
@user-xd6mk4fp2l
@user-xd6mk4fp2l Жыл бұрын
Получается что нотифайлистенер обновляет виджет хомескрин, а не виджет текст непосредственно?
@stolets
@stolets Жыл бұрын
Если правильно понял ваш вопрос, то да. Именно весь виджет homescreen
@user-xd6mk4fp2l
@user-xd6mk4fp2l Жыл бұрын
@@stolets по хорошему для изменяемых элементов нужно создавать отдельный виджет, как пример виджет сердечка like, что бы при изменении не перерисовывать всю странцу(либо виджет айтема( товара)), а только виджет не посредственно с сердечком
@stolets
@stolets Жыл бұрын
@@user-xd6mk4fp2l похоже я был не прав. Провайдер обновляет именно там где передается данная
@user-xd6mk4fp2l
@user-xd6mk4fp2l Жыл бұрын
@@stolets ну судя по видео скорее всего хомескрин обновляется, а не виджет текст, так как сначала ты напрямую прописал вызов в чилд текста, а потом вынес в переменную, результат не изменился, исходя из этого делаем вывод что все таки обновляется тот виджет где мы обращаемся к провайдеру
@Polite_person_
@Polite_person_ Жыл бұрын
А для чего тогда блок нужен, раз тут так все прекрасно?
@ai-bloggers
@ai-bloggers Жыл бұрын
Получается, что мы на одной странице что-то нажимаем, а на другой это появляется
@stolets
@stolets Жыл бұрын
Ага)
@Anatoly555
@Anatoly555 2 ай бұрын
Если провайдер - это только поставщик, то есть, класс, посредством которого "прокидываются" данные, то что мешает объявить глобальную переменную, в которую внести все нужные для передачи данные и получить их в любом другом модуле, в любом другом классе, не заморачиваясь с многострочными вызовами чтения тех же глобальных данных?
@stolets
@stolets 2 ай бұрын
Попробуйте так сделать как предлагаете и сразу увидите ограничения
@Anatoly555
@Anatoly555 2 ай бұрын
@@stolets , всегда так и делаю, провайдер и прочие инхериты нужны только для оптимизации рендеринга, разве не так?
@bulsond
@bulsond Жыл бұрын
Provider не нужен. Есть встроенные во флаттер InheritedWidget и InheritedNotifier. Почему народ не желает изучить как следует сам флаттер и его возможности, а сразу спрыгивает на сторонние пакеты? Удивительно!
@DartMitai
@DartMitai Жыл бұрын
хороший вопрос
@dan.gorbunov
@dan.gorbunov Жыл бұрын
@@DartMitai Те кто берет на работу просят именно пакеты, уж не знаю почему))
@heorhiizaichenko3333
@heorhiizaichenko3333 Жыл бұрын
Сложную, масштабируемую бизнес логику очень сложно сделать на provider-е, не говоря уже даже о InheritedWidget. Знать как это работает безусловно стоит, но поверьте, знать хотя бы парочку популярных пекеджей вроде BLoC-а - обязательно.
@aleksandrsviridenko5079
@aleksandrsviridenko5079 Жыл бұрын
Поправьте меня если я не прав, но ведь Инхеритед требуют писать больше кода, а готовый пакет Провайдер позволяет уменьшить количество символов, что повышает уровень читаемости , разве нет? Я так понял провайдер сам внутри работает на Инхеритед виджетах, так что не особо понятно зачем лишний раз писать много строк. Как работать знать надо конечно же
@bulsond
@bulsond Жыл бұрын
@@aleksandrsviridenko5079 Я вам объясню почему я написал такой комментарий. Этот цикл уроков расчитан на начинающих. Провокационное заявление сделано для привлечения пытливых умом разработчиков, чтобы они не торопились, и как следует изучили доступный инструментарий самого флаттера. Понятное дело, что готовый пакет ускоряет разработку, только вот большинство поторопившихся даже не догадывается, что же там "под капотом" у провайдера и на чем основана его работа. По поводу уменьшения символов в коде: разберитесь с ООП и организуйте свой код так, чтобы он работал через взаимодействие компактых легко тестируемых объектов.
@denischikita
@denischikita 5 ай бұрын
Абсолютно не читаемо Provider.of(context)[1]. Просто жесть
I Can't Believe We Did This...
00:38
Stokes Twins
Рет қаралды 94 МЛН
Was ist im Eis versteckt? 🧊 Coole Winter-Gadgets von Amazon
00:37
SMOL German
Рет қаралды 37 МЛН
100❤️
00:19
MY💝No War🤝
Рет қаралды 15 МЛН
I CAN’T BELIEVE I LOST 😱
00:46
Topper Guild
Рет қаралды 108 МЛН
35 Flutter Tips That Will Change Your Life
10:53
Flutter Mapp
Рет қаралды 295 М.
Isolates в боевых условиях - Сергей Лавинов
23:47
Wrike & Wrikers Community
Рет қаралды 2,6 М.
I Can't Believe We Did This...
00:38
Stokes Twins
Рет қаралды 94 МЛН