Size: a a a

Flutter Developers — русскоговорящее сообщество

2020 September 29

PV

Pavel Varchenko in Flutter Developers — русскоговорящее сообщество
Alex
на старте приложения - имеется в виду прям в main.dart? т.е. это не просто "точка входа"?
не обязательно в мэйне. просто есть точка, где инициализируются нужные компоненты. в моем случае да, это в main.
у меня есть prod, dev, staging окружения и я тупо сделал main.dart, main_dev.dart и main_int.dart чтобы инициализировать приложение к примеру с разными урлами к серверу. это не самое красивое решение, но вполне понятно работает.
источник

P

Pa_blooo in Flutter Developers — русскоговорящее сообщество
Pavel Varchenko
не обязательно в мэйне. просто есть точка, где инициализируются нужные компоненты. в моем случае да, это в main.
у меня есть prod, dev, staging окружения и я тупо сделал main.dart, main_dev.dart и main_int.dart чтобы инициализировать приложение к примеру с разными урлами к серверу. это не самое красивое решение, но вполне понятно работает.
а ещё есть desktop и тп😀
источник

P

Pa_blooo in Flutter Developers — русскоговорящее сообщество
широко получается
источник

PV

Pavel Varchenko in Flutter Developers — русскоговорящее сообщество
Pa_blooo
а ещё есть desktop и тп😀
там правда несколько dart файлов правильно для этого заводить нужно или есть более верный способ?
источник

P

Pa_blooo in Flutter Developers — русскоговорящее сообщество
сам в поисках
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Alex
Господа-эксперты, подскажите - есть желающие минут 20-30 пообщаться в чате по архитектурным штукам flutter? Нужно объяснить передачу jwt с помощью inherited widget внутри приложения. Если кто-то очень хорош и свободен - можно за денежку, пишите в сообщения, если есть желание
Все правильно решили делать
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Не слушайте никого
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Только сам JWT токен заверните в сущность юзера
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
InheritedWidget + didChangeDependencies вам и нужны
источник

A

Alex in Flutter Developers — русскоговорящее сообщество
у меня изначально результатом запроса был User.fromJson, честно говоря, токен привязывался к сущности
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Alex
у меня изначально результатом запроса был User.fromJson, честно говоря, токен привязывался к сущности
JWT токен это и есть "Юзер"
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
В UI не надо стримить саму строку токена, а вот юзвера уже вполне себе.
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Причем jwt токен как раз и должен определять уникальность юзвера и переопределять онному == и хэшкод
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Собственно вам это сравнение пригодится как в shouldUpdate внутри ИнхеритедВиджета, так и в дидЧенджДепенденсис в стейте виджетов.
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Понятно немножко о чем толкую?
источник

A

Alex in Flutter Developers — русскоговорящее сообщество
в теории-то понятно, вопрос в том что нужно побольше почитать про стейт-менеджмент, судя по всему
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Если InheritedWidget сложно пока для понимания, замените пока на:
Provider<User>.value(
 value: user,
 updateShouldNotify: (oldValue, newValue) => oldValue.uid != newValue.uid,
 child: widget.child,
),

или типа того
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
И сможете получить своего пользователя с JWT хоть в initState, хоть в didChangeDependencies, хоть в build'е
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Сущность юзвера можете частично слизать с моей заготовки
https://dartpad.dev/e0373dabedc69b6621c23662316f172d
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Pavel Varchenko
не обязательно в мэйне. просто есть точка, где инициализируются нужные компоненты. в моем случае да, это в main.
у меня есть prod, dev, staging окружения и я тупо сделал main.dart, main_dev.dart и main_int.dart чтобы инициализировать приложение к примеру с разными урлами к серверу. это не самое красивое решение, но вполне понятно работает.
Могу научить покрасивше)
источник