Программирование : Dart & Flutter по-русски
Alexandr Drobyshev
по этому видно паузы при подгурзке
Alexandr Drobyshev
но это они с сервера тащатся так шо все ок
Семён undefined
прочитал как ???????? ????? ?? ???? ????? ?????? ???
Alexandr Drobyshev
там написано Col:(Row(Exanded(Col), Expanded(Col))) :D
Sidredin Agashirinoff
Опять ВВП)
Nurassyl Nuridin
Вопрос! WidgetsBindingObserver можно добавлять в каждый класс? Или лучше добавить в один и все релизовать из одного класса? Как будет правильно? Или это не страшно если я буду добавлять WidgetsBindingObserver в каждый класс в которых я нуждаюсь?
Stan
Всем привет! У меня есть в программе есть очень много однотипных виджетов, которые получают стейт следующим образом: в конструкторе я получаю строку final String formData; const SimpleText({this.formData, Key key}) : super(key: key); А после в билде я через провайдер получаю доступ к функции хранилища и вставляю в эту функцию строку final List
Alexandr Drobyshev
ну а есл итипа class WIdget
final List
Alexandr Drobyshev
ну а тот шо выше
Alexandr Drobyshev
а IContentStorage содержит определение storageSortedByBase
Alexandr Drobyshev
или в дарте незя укзаать
Alexandr Drobyshev
или типа того)
ManBearPig
Вам бы только потролить))) ))))
Stan
разве провайдер заведется если будет инициализироваться не в билде?
Alexandr Drobyshev
провайдер инхерит который выше по контектсу должен быть, и его функия create будет при линивой загрузке вызвана при первом обращзении, какая разница бильд или не бильд?
Alexandr Drobyshev
а при не ленивой вообще в момнетпостроение провадера в дереве
Alexandr Drobyshev
вроде работает
Alexandr Drobyshev
ток естесвенно это демка на коленке)
Alexandr Drobyshev
тут будетп остоянно создаваться Store у вас же он в првоаедере в create
Alexandr Drobyshev
[
"хотя чет я запутался а чем плохо final store = ",
{
"type": "link",
"text": "context.watch"
},
" ();"
]
Alexandr Drobyshev
[
"final List
Alexandr Drobyshev
если с подпиской на изменения где то в бильде
Stan
пойду тестить, спасибо)
Alexandr Drobyshev
или read вметсо watch если в калбек функциях типа onPress или initState
Alexandr Drobyshev
вообщем суть в чем Если Provider(create или Provider.value где то есть, а ниже есть орбращение путь как вы написали по старинке через Profider.of или watch/read, оно ищет по дереву вверх просто провадер ваш и дергает, тут не вжано в каком месте виджета вызов, важно чтоб вызов был на контексте у которогу в где то в родителях есть нужный провадер)
Alexandr Drobyshev
ну вот тут еще вторйо парамтер по мима iStore добавить типа builder
Alexandr Drobyshev
первый парамтер даже убрать преедлать ан провайдер можно и сдлеать 1 парамтер
Alexandr Drobyshev
а в дартпаха хз как провайдер подклчюить) лан так попробую рассказать
Stan
я внимательно слушаю если че)
Alexandr Drobyshev
убираете с контруктора IStore а передаете туда функцию builder типа как в ListView().builder(itemBuilder: (BuildContext context, int index)) ток ваш виджет можете без функции build а прям в конструктор передать тогда вызов будет. такой StoreWidget ((context, item) => Text(item) ) // ну естесвенно item может быть не стринг это уже что там в вас, это жлемент из стора вашего
Alexandr Drobyshev
[
"а где тов. бильде будет типа final store ",
{
"type": "link",
"text": "context.watch"
},
" ();"
]
Alexandr Drobyshev
ну и вы уже в цикле прсто передаете в ваш калбек контекст + 1 элемент по очереди
Alexandr Drobyshev
чтоб оформить можно было каждый итем отдельно
Alexandr Drobyshev
ну то етсь не итем а каждый стор скорее) они ж могут по разному выовдиться
Alexandr Drobyshev
напрмиер статьи этодин вывод а новости другой вид имеют хз шо там у вас)
Flutter KZ
Всем привет. Где сделать лучше генерацию pdf документа из введенных данных пользователся: 1)на фронте, 2)на сервере
netspike
я на сервере делал
Stan
а можно ли получить доступ к провайдеру в статик методе?
Семён undefined
клиент это визуальная оболочка для бека так что делай на сервере
Alexandr Drobyshev
в статик не будет конеткста
Alexandr Drobyshev
если ток передать сверху)
Alexandr Drobyshev
но это думаю не врено
Flutter KZ
[
"Ок, спасибо. ",
{
"type": "mention",
"text": "@cirnok"
},
" ",
{
"type": "mention",
"text": "@netsp1ke"
},
""
]
d
Так Provider.of именно так и работает )
Alexandr Drobyshev
в провайдер вы передатее контекст
Alexandr Drobyshev
где искать
Alexandr Drobyshev
а вы про то что передать можно?
Alexandr Drobyshev
ну знаичт можно)
Alexandr Drobyshev
просто зачем статик метод там?
Alexandr Drobyshev
ну в задаче этой)
d
Я не смотрел, честно говоря)
Stan
статик метод возвращает тип инстанс нужного типа виджета в зависимости от String что я передал в этот статик метод
Alexandr Drobyshev
ну в теории да, преедают же контекст и в диалоги и в бильдеры и везде) знаичт и вам можно) чем вы хуже
ManBearPig
От объёма зависит. Если это что то вроде инвойса на 1-2 страницы , лучше на стороне клиента
Alexandr Drobyshev
по идее обращение к нему будет только тогда когда он существует))
ManBearPig
Имхо в противном случае, если не сервере то бы или отсылает туда дату или делаете выборку из бд после получения файла его нужно отправить обратно.... Мне кажется, это "дороже" в сравнении с конвертацией/генерацией на стороне клиента
Роман Аблаев
Что бы это могло быть { The library 'package:auto_size_text/auto_size_text.dart' is legacy, and should not be imported into a null safe library. }
ManBearPig
Версия Не поддерживает null safety
Dmitrij Kuznetsov
Для pdf я бы исходил не из объема файлов, а из контекста наполнения, если это инвойс или некий финансовый документ, то лучше его генерировать на сервере и регистрировать в БД факт генерации, если это некая прочая информация то можно и на стороне клиента
Alexandr Drobyshev
[
{
"type": "link",
"text": "https://gist.github.com/DrobyshevAlex/44fdcc6d9ed12d72106945504ebdc910"
}
]
Роман Аблаев
Если указываю игнор, приложение не запускается
Alexandr Drobyshev
вот о чем я
Stan
благодарю, пошел изучать
Daniil Razbitskiy
День добрый, подскажите, как можно вывести email пользователя который авторизован в firebase проекте?
Alexandr Drobyshev
я на почту шлю инвойсы, так шо на сервере если будет выбор)
Alexandr Drobyshev
плоюс можно тупо ссылку даватьп отом а на сервер он храниться)
Alexandr Drobyshev
стаитику нгинксом отдаю)
Evgeniy Troynov
[
{
"type": "bot_command",
"text": "/stat@combot"
}
]
Combot
Total messages: 382148
ManBearPig
Можно кэпочтовый клиент в клиентскую часть пароль в защищённом хранилище (по сети получать) и отправка сразу от клиента ?
Alexandr Drobyshev
как то мой друг который работал в gameloft plarium а ща в wix сказал очень умную фразу
Alexandr Drobyshev
а именно: это вы предоставляете какой то сервис юзеру, это ваши вычислительные мощности должны использоватся где вы можете это сдлеать, а клинское оборудование не должно вами грузится на то что вы можете сделать на сервере, чтобыы юзер был доволен
Nikolay Korolev
всем привет, скажите а есть ли возмможность во флатере построить список из позиционированных виджетов Stack-> Listview.builder-> Positioned
Alexandr Drobyshev
а зачем вам листвьюв тогда?
Evgeniy Troynov
Привет всем, что вы чаще всего используете для state managment: - bloc; - riverpod; - cubit; - mobx; - redux; - flutter_hooks; и если можно коротко, почему именно это. Заранее спасибо
Alexandr Drobyshev
[
"Stack[ children: ",
{
"type": "link",
"text": "list.map"
},
"((el) => Positioed).toList()])"
]
Nikolay Korolev
возможно не правильно сказал
Nikolay Korolev
спасибо, сейчас попробую
Семён undefined
шо тут умного, это же очевидно
Dmitrij Kuznetsov
[
{
"type": "link",
"text": "www.youtube.com/watch?v=o4bgDqO4pGk&"
}
]
Alexandr Drobyshev
bloc и cubit одна либа) кубит когда стримлю что то с вебсокетов или с бд где изменния происходят не зависимо от дейтсвию юзера, блок где зависимо, провайдер для передачи по контексту + freezed для упрощения генерации всего этого и моделек
Evgeniy Troynov
я понимаю что cubit это надстройка над bloc но кто то говорит что это оверхед и bloc достаточно.
Alexandr Drobyshev
ну там в Positioned естесвенно надо допистаь код)) это ж просто набросок в чатике прям)
Александр Котков
cubit это вместо евентов методы, вся разница
Nikolay Korolev
просто никогда внутри виджетов не юзал map )
Alexandr Drobyshev
на оборот)) кубит упрощенный блок) где нет очердеи, пары хуков, и однйо точки входа для получения евентов
Alexandr Drobyshev
а блок как раз расширяет кубит
Evgeniy Troynov
хм, спасибо :)
Evgeniy Troynov
полезная информация
Александр Котков
там либу чуть передалли недавно
Александр Котков
там теперь есть blocBase
Александр Котков
от него блок и кубит
Alexandr Drobyshev
не вся) cibit.action();cibit.action(); и bloc.add(action());bloc.add(action()); могут дтаь совершенно арзный результат)
Alexandr Drobyshev
очередность не гарантируется в первом случае
Александр Котков
ну да методы, не евенты потому что)
Alexandr Drobyshev
не смотрел) говрю по прошлой версии
Alexandr Drobyshev
ну почти) просто евенты сами по себе прсото класс) а вот то что они прозодят через хук в котормо по дефолту есть гарантия очредености это уже вот и выручает иногда) плюс вы можете менять повидение переопределив метод этот)
Alexandr Drobyshev
но я хз шо. там щас
Alexandr Drobyshev
я новую не сомтрел сорцы, я обнвоил заменил слово cubit на bloc и все работает дальше)
Александр Котков
+ и логирование сразу есть этого всего дела
Alexandr Drobyshev
кароче я юзаю кубит напрмиер в чатике) у меня есть MessageCubit который тупо стримит с репо мессаги, потмоу что там значек прочтено, доставлено допустим меняется
Alexandr Drobyshev
и есть отдельно MessageBloc который уже занимается отправкой влжений и текстов)) а так же валидацией
Alexandr Drobyshev
выходит наэал кнпоку кнпока активна/не активна от стайта блока, а вот сама прсотыня отрисовывается с кубита)
Alexandr Drobyshev
с блока в репо попала мессага, сразу кубит ее вывел, но помечена иконкой ... типа не улетела еще, пришло по сокетам подвреддение что улетела - меняем на галочку, пришло что прочтено меняет на две галочки)
Alexandr Drobyshev
кубит методов не содержит) фокс не разрешает)
Alexandr Drobyshev
ну и гарантия отправки месседжей в очереди отправки)
Alexandr Drobyshev
а получение уже в локалСтораж сортируется)
ManBearPig
Посмотрите от фокса видео, там очень подробно о различия Блока и кубита
Alexandr Drobyshev
ну фокс видео ка краз залил когда я либу иковырял ту, а гворят ща уже по другому)
Alexandr Drobyshev
надо опять поковырять) хотя внешне работа вообще не изменилась)) не чо не сломалось
Evgeniy Troynov
а есть ссылка7
Dima Kotlyarov
да было бы интересно
ManBearPig
[
{
"type": "link",
"text": "https://youtu.be/AV_4aVOKl-g"
}
]
Alexandr Drobyshev
[
{
"type": "link",
"text": "https://www.youtube.com/watch?v=AV_4aVOKl-g"
}
]
Sidredin Agashirinoff
Это и есть фокс?
Alexandr Drobyshev
он самый)
Alexandr Drobyshev
о у него там видосики добавились) надо посомтреть)) ато я пол года не кодил флаттер)) и не следил
Sidredin Agashirinoff
Спасибо)
Tyrael
Всем привет, как можно build(создать) ios app на windows ?
Sidredin Agashirinoff
компилить?
Alexandr Drobyshev
вроде говрили в виртуалке можно ставить макос
Tyrael
sry, буилдить ios app на windows
Alexandr Drobyshev
непростительная ошибка ?? я даже. не знаю чем комплиить слова от бильдить отличается))
ai
Кто знает как протеститьвать обновления до релиза гугл плей?
Tyrael
ну там с верху вроде возмутились на слово компилит )
Alexandr Drobyshev
это чат программистов, тут постоянно все чем то возмущаются ??прям как подружки)
Tyrael
я сделал webview сайта, на андроиде всё нормас а вот на ios хз как по тестить
Alexandr Drobyshev
ну я с 2013 года на маке сижу, когда надо было собрать первую прилу под мак тогда и купил, так привык шо не хочу уходить на виндовс)) бери в кредит)) потом продашь прилу выплатишь кредит))
Tyrael
на один проект как то не ах ти взять кредит )
Alexandr Drobyshev
так на нем кодь все остльное) я все ща на нем делаю)
ManBearPig
Можно параллель и на неё macos
ManBearPig
Но озу нужно много )
Alexandr Drobyshev
в маке конкретно мне оч нраивться еще дисплей, и тач с жестами)) ир аботает шустро достаточно, но блин все, умолкаю)) а то ща опять начнется холивар)) это чисто мое мнение) оченю удобное слистывание жестами разными)) особенно переключение экранов, цены нет)) то етсь я второй монитор даже не юзаю)) все на сток шустро и удобно
ManBearPig
Ну для русскоязычной публики , да, в РФ за все бэк+фронт+тесты иногда 3к usd хотят ))))
Alexandr Drobyshev
блин та почти любой более мнее норм рпоект даже в рф окупит мак за 1 раз
ManBearPig
Тисплей сенсорный?
Alexandr Drobyshev
3к? мне за прошлы проект бек нодажс + фронт флаттер + веб на вуе админка 2 к с горем пополам заплатили))
Stan
[
{
"type": "mention",
"text": "@terraideas"
},
" в общем я ничего не понял ?? \nесли я вызываю\n\n final List > contentData =\n ",
{
"type": "link",
"text": "context.watch"
},
"().storageSortedByBase(formData);\n\nне в билде то ругается на то что formData не инициализирована и context неопределен"
]
Stan
для context метода контекст же нужен + мне надо заиницализировать строку по которой я ищу нужные матчи в методе .storageSortedByBase
Alexandr Drobyshev
watch вообще не в бильде не вызывают
Alexandr Drobyshev
read тогда уж
Maxim ?? Tse
Привет, чат! Хочу услышать подтверждение/опровержение своим догадкам о том, что даа дня потраченных на обзорку Свифта были пустой тратой времени, и лучше для реализации моей задачи взять flutter. Я опытный фронтендер на ангуляре, как основной вид деятельности. Поступило задание склепать приложение под ios (конечно перспектива под андроид есть, но сперва именно ios). Планируется делаться приложение с основным функционалом: - вход/регистрация - работа с картой, скорее всего яндексовой (отметка точек, при клике открытие какой-то другой вьюхи с описанием точки) - загрузка документов - уведомления - оплата - фильтры (считай форма, наверное) Я начал на выходных освоение свифта, склепал приложеньку со слайдером, прочитал овервью самого языка, все было норм до момента выбора инструментов для дальнейшей реализации: SwiftUI или UiKit. В процессе выяснения мне предложили посмотреть на flutter, но я почему-то к нему чуть холоднее чем к нативщине отношусь, вполне вероятно безосновательно. Почитав чутка о нем мне стало ясно, что прототипчик на флаттере я смогу побыстрее накидать, чем на Свифте. Но остались опасения: Заказчик хочет чтобы приложение работало так же плавно и быстро, как и нативное, со всеми нативным штуками (я хз, видио Алерты не кастомные).... точнее лучше объяснить от обратного: он не хочет видеть хорошо адаптивный сайт, завёрнутый в приложение. При разработке на флаттере я не столкнусь с описанной проблемой? Для реализации описанных требований наверняка уже много всяких утилит в сообщество занесено? Заранее спасибо если что-то ответите))
Alexandr Drobyshev
'formData не инициализирована' ну так значит не инизиализированно) тут то я хз что у вас за код
Alexandr Drobyshev
ну так если надо именно нейтив то реакт берите, если не обязательно нейтив то я бы флаттер брал, ибо это по мне бытсрей и проще
Maxim ?? Tse
А в чем между ними кардинальное различие?
Alexandr Drobyshev
у флаттера на иос говрят ппри первом запуска из за копиляцииреалтайм анимаций подлагивание, при последующих запусках вроде все супер
Alexandr Drobyshev
между чем? флаттер и реакт нейтив? ну то что флаттер это свой UI он рисует на канвасе полнсотью сам элементы все а реакт юзает стандартные элементы иос/андроид из сдк платформ
d
наверое натив - имеется в виду нативные инструменты типа Siwft / Android
Alexandr Drobyshev
ну он упоминул именнов нешний вид - а реакт нейтив скомпилит в нативные как раз
d
но апка же лагучая будет )
Alexandr Drobyshev
а если надо не нативные то вы можеете даже ангуляр обернуть в кордову)) и собрать прилой))
Alexandr Drobyshev
на реакте/ да вроде не лагала я накидывал немного)
Alexandr Drobyshev
ну я не юзаю его) мне флаттер по душе, тут просто акцент что нужны нативные алерты и тд))
Maxim ?? Tse
Не смотрел ещё в сторону иоников и кордов
d
ну есть же cupertino / material
d
там есть обычные нативные компоненты
Alexandr Drobyshev
не обязательно ионик) можно любых страницы обернуть в корду)
Maxim ?? Tse
А флаттер нативные Алерты и нотификашки вызывать разве не может?
Семён undefined
да там вроде уже фиксят проблему
Alexandr Drobyshev
нет там нативных вроде) там же все отрисовка флаттером, просто на вид закос? или там прям нативные?
Семён undefined
вроде даже на io упоминалось
Alexandr Drobyshev
та год назад говрили что фиксят)) ждем))
Alexandr Drobyshev
не знал
Семён undefined
это же скиа
Alexandr Drobyshev
может) по ячаннелям
Семён undefined
или ты про внедрение
d
ну внешний вид у них как у нативных
Alexandr Drobyshev
но реьчь о скорости и простоте)
Alexandr Drobyshev
так я так и написал, внешне такие, не значит что прям они))
Семён undefined
ну тк не нативные же
Семён undefined
просто по гайдлайнам
d
ну а заказчику какая разница?
Семён undefined
+ есть отличия в том же риппл эффекте
Семён undefined
ну может и нет
Alexandr Drobyshev
ну так в первой мессаге написано вроде что хочет именно нейтив))
Maxim ?? Tse
Если ее использовать, то все виджеты эти будут и на андройде выглядеть как ios?)
d
[
{
"type": "link",
"text": "https://flutter.dev/docs/development/ui/widgets/cupertino"
}
]
Alexandr Drobyshev
есть люди принципиальные0 им кто то ляпнул флаттер гавно надо нейтив свифт)) и все, ты не переубедишь)
d
ну можно выбирать виджет в зависимости от платформы
Alexandr Drobyshev
флаттеру пофиг что это андриод или иос или веб) он просто рисует по канве! даже под дсктоп так же будут
Alexandr Drobyshev
можете внутри выводить разные
Максим
Кстати, а можно ли как-нибудь понять, на каком фреймворке сделано приложение? Я просто наблюдал одно настолько отвратительное на айоси, что мне аж стало интересно
Alexandr Drobyshev
типа Platform.IOS ? :IOSWidget() : AndoridWidget()
Семён undefined
[
"ну можешь использовать универсальные, найти в ",
{
"type": "link",
"text": "pub.dev"
},
" /сделать самому"
]
Maxim ?? Tse
Оке, спасибо
Maxim ?? Tse
Ща узнаю принципиальный момент про нативные Алерты и прочее
Alexandr Drobyshev
плюс как раз флаттера что на обоих платформах одинакого) хз зачем делать на иос закос под иос)) но это мое мнение)
Maxim ?? Tse
Откуда такое мнение?
Семён undefined
тогда ладно
Maxim ?? Tse
Ща проблема, что я макетов не видел ещё)
Maxim ?? Tse
Был опыт написания аналогичного по размеру приложения на RN?
Alexandr Drobyshev
скажите заказчику нейтив прошлый век ?? ща пиксель перфект и одинаковый дизайн) а этой точки зрения лучше флаттер ка краз))
Alexandr Drobyshev
да чем лагать в РН? там же нейтив элементы) но я хз я не делал крупного)) прсото сичтаю что не должно) но всякое бывает
|