Программирование : Dart & Flutter по-русски
Daniil Kolyasnikov
Граци.
Evgeny Kot
Не надо переходить на личности
Sergey Hottabych
Вживую я бы в пятак дал за такое, без разговоров. Пусть он хоть сто раз прав.
Evgeny Kot
Рекомендую всем не переходить на личности.
Vladimir Cores
В телеграмме все еще нельзя треды/комментарии к сообщениями создавать?
Андрей Козак
нет, и врядли сделают
Андрей Козак
это только в корпоративных мессенджерах нужно имхо
Андрей Козак
слак когда нибудь на флаттер перепишут? как думаете?)
Nikita Domnitskii
ну так он сам это сказал???>?
Nikita Domnitskii
Потому что я знаю, что я прав, и что я умнее многих.
Oleg Pchelkin
А чем отличается мввм от блоков принципиально?
Андрей Козак
блок - стейт машина, близкая к подходу flux. MVVM это когда ты верстку отделяешь от кода, а общение между этими слоями строишь на каких-либо биндингах, причем так, чтобы твоя вьюха не была связана сильно с вьюмоделью. (Но эт в других языках, хз как на флаттере mvvm пилят. )
Андрей Козак
в одном случае ты кидаешь событие и получаешь независмо результат, во втором ты при старте вьюмодели например, запрашиваешь данные, получаешь данные, и связываешь их с вьюхой
Андрей Козак
вообще разные подходы в общем
Oleg Pchelkin
ну блин, теперь что, идти смотреть что такое flux?)))
Андрей Козак
ну это реактовский редакс, ты типа кидаешь события, события меняют иммутабельно гигансткую переменную в которой все данные лежат. При изменении все подписчики получают новое значение
Oleg Pchelkin
эмм, во вьюмодели ты также кидаешь события из вью, которые могут вообще никак не изменить вью, или изменить ее с задержкой, также как и вью меняться по внутренним методам, независимо от загрузки или нажатия (например что то в бд поменялось)
Oleg Pchelkin
теперь идти редакс изучать))) В блоке получается только одна модель может лежать и она будет пушить всех, кто на нее подписан? частями никак?
Андрей Козак
это ты наверное уже про какие то конкретные реализации на флаттере говоришь. В классике, MVVM (весь .net стек, какой нить ангуляр), ты используешь механизм биндинга, типа твоя вьюха через сахар подписывается на какое то изменение свойства вьюмодели. при изменении - перерисовывается интерфейс
Андрей Козак
в классике при изменении свойства, вызывается NotifyPropertyChanged (.NET), через сахар вьюшка видит что изменилось данные и реагирует на них
Андрей Козак
в ангуляре не помню как, там вроде скрыто все было
Oleg Pchelkin
Я говорю про реализацию гугла в нативе мобилок, я про веб вообще не заикался)
Андрей Козак
да гугл MVVM не реализовывал, умельцы наверное на стримах сделали реагирование
Sergey Hottabych
Ну да, в Android то же самое, только там это называется LiveData
Oleg Pchelkin
MVVM все таки в основном на мобилках юзается
Андрей Козак
в NET весь интерфейс юзает MVVM, ну и там особо нет выбора
Андрей Козак
на android вроде MVVM уже не моден
Андрей Козак
на ios вообще никогда не был
Андрей Козак
там Viper какой-то
Oleg Pchelkin
Ну да, .NET еще, согласен. Но точно не веб)
Андрей Козак
в вебе оч удобно, ангуляры все MVVM юзают
Sergey Hottabych
Не может быть. Осенью, когда я в нем копался, это была самая модная тема.
Андрей Козак
хз, на моем долгоиграющем проекте по работе с MVVM съехали года два назад
Sergey Hottabych
На что съехали?
Андрей Козак
а хз, на какое то очередное гавно. Не разбираюсь
Oleg Pchelkin
Ну AndroidViewModel в джетпаке очень активно толкается сейчас)
Oleg Pchelkin
Компетентно??
Андрей Козак
скоро съедут на аналог flux, вроде сейчас в бетке он. Грят модно будет
Андрей Козак
да андроид это вообще весело, собери 3х андроидеров вместе - они наклепают новую архитектуру
Андрей Козак
наверное на ведре все очень плохо, раз все не могут best practices выработать
Fearless Cry
на провайдер ??????
Oleg Pchelkin
ПОкажи хоть одну платформу с выработанной структурой архитектуры)
Андрей Козак
как не порадоксально - веб. Но там просто споры постоянно идут, но имхо у челиков нет постоянно желания перекатываться с redux на mobx. И обратно
Oleg Pchelkin
Так а чем блок принципоиально отличается от ливдаты то?
Sergey Hottabych
Блок отдает стрим. Ливдата на нотификациях.
Oleg Pchelkin
воувоу, ливдата на стримах
Sergey Hottabych
Под Андроид разве есть стримы?
Sergey Hottabych
В Джаве?
Nikita Domnitskii
лучшая архитектура
Oleg Pchelkin
эм, ну там уже из коробки даже есть, 8 жаву завезли лет 5 уже как
Oleg Pchelkin
не говоря уж об rxjava/rxandroid
Андрей Козак
в жабе вроде стримы другие, которые анонимные функции
Андрей Козак
ну типа коллекции перебирать linq или аналог map в js и дарте
Fearless Cry
это стрим апи, да
Андрей Козак
в яве их стримами называли зачем-то
Fearless Cry
для асинхронности там java.util.concurrency
Sergey Hottabych
Пытался хоть какую-нибудь инфу нагуглить, как устроена LiveData, но ничего не нашел.
Андрей Козак
такого как в dart я в яве не видел (но оч давно не писал)
Fearless Cry
java.util.concurrency
Sergey Hottabych
Если действительно на стримах, тогда ничем от Блока не отличается.
Fearless Cry
ну и рхДжава есесн
Fearless Cry
ну и корутины в коклине
Oleg Pchelkin
ого, тогда получается можно на флаттере написать mvvm???
Fearless Cry
так есть уже
Oleg Pchelkin
вот там не уверен насчет стримов - там простт отдельный поток, насколько я знаю
Oleg Pchelkin
это сарказм)
Fearless Cry
какая разница? можно представить в виде конвеера
Sergey Hottabych
Ага, только он блок называется.
Fearless Cry
боже, шо ты несёшь)
Sergey Hottabych
Под "MVVM во Флаттере" можно все что угодно понимать
Oleg Pchelkin
Ну можно сказать что под всем что угодно можно вообще все что угодно называть
Fearless Cry
и то и то работает на стримах, но это не делает их одинаковым
Fearless Cry
редакс тоже на стримах
Fearless Cry
становится ли он от этого чем-то похожим на блок или мввм?
Nikita Domnitskii
Провайдер не на стримах
Fearless Cry
ну провайдер лучшая архитектура
Fearless Cry
так сказать вершина человеческой мысли
Fearless Cry
а когда запросы через провайдер пускаешь - аж обои отклеиваются
Fearless Cry
настолько круто
Fearless Cry
запах непередаваемый
Nikita Domnitskii
аминь ??
Vladimir Avramov
[
"К реактивности отношения никакого не имеет. ",
{
"type": "code",
"text": "Future"
},
" из этого пакета это совсем не то, что dart ",
{
"type": "code",
"text": "Future"
},
"."
]
Sergey Hottabych
Тут выше заходил чувак, в 14:30, тоже сказал, что провайдер пользует. Почему бы тебе до него не дое... пристать?
Fearless Cry
я вроде и не говорил про реактивность)
Sergey Hottabych
Чего ты именно меня выбрал объектом своего сексуального пристрастия?
Fearless Cry
а с чего ты решил что это тебе вообще
Fearless Cry
эгоцентрик ты мой
Vladimir Avramov
Ну может я кривоглазый. Там просто ниже речь была о rx java.
Fearless Cry
я говорил про асинхронность
Fearless Cry
там вроде бы есть всякие асинк таски и комплитеры
Vladimir Avramov
Да, с 7й явы появились, чтобы отдельные треды не создавать ручками.
Fearless Cry
ну так весь juc про это вроде
Maks Andrienko
всем привет у меня вопрос есть список из чек боксов но при нажатии на один чекбокс, убираються и остальные как это исправить ? по виджетам это ListView.builder-Checkbox
vasilich
Вижу баг в твоем коде, но не могу сказать где
Maks Andrienko
я понимаю что у каждого чекбокса должно быть свое значение на тру или фолс, но как этого достичь
vasilich
Каждый чербокс должен иметь свой стейт?
vasilich
И в чем проблема?
Maks Andrienko
отделить стейт для каждого елемента. мне не известно сколько их может быть
vasilich
Написать виджет чекбокса со стейтом внутри?
Maks Andrienko
Ага, наверное понял о чем вы
Maks Andrienko
Спасибо за замечание) Я не правильно виджет написал) Теперь работает корректно
Дмитро
[
"Здравствуйте, не вытягивает градиентный компонент на svg-изображении через ",
{
"type": "link",
"text": "SvgPicture.network"
},
". Подскажите, пожалуйста, как быть?"
]
Alexey Z
[
"Может SVG кривая, попробуй прогнать через\n",
{
"type": "link",
"text": "https://jakearchibald.github.io/svgomg/"
},
""
]
Дмитро
Всё отлично отображает???>?
Nikita Domnitskii
[
"из туду ",
{
"type": "code",
"text": "Support Radial gradients that use percentages in the offsets."
},
""
]
IB Akhrorov
Добрый день Как узнать index number TabView?
Anton ?? ? ??
в билдере же есть индекс
IB Akhrorov
Там children:
Anton ?? ? ??
покажи код как делаешь
Anton ?? ? ??
если чилдрен, то это массив, а в массиве несложно найти индекс
IB Akhrorov
Использую List.generate ( ) и оттуда беру индекс, однако он мне выдаёт все индексы по порядку
Anton ?? ? ??
а как должен
IB Akhrorov
Если на экране видна одна карта то индекс этой карты
IB Akhrorov
[
{
"type": "link",
"text": "https://github.com/X-Wei/flutter_catalog/blob/master/lib/routes/nav_pageselector_ex.dart"
},
" типа того"
]
Rinat Kurmashev
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/50123354/how-to-get-current-tab-index-in-flutter"
}
]
Rinat Kurmashev
тут можно посмотреть)
IB Akhrorov
Я это смотрел, у меня колво таббарвю зависит от данных с api
IB Akhrorov
А там в контроллере нужно в инит методе нужно сделвть инициализацию
Rinat Kurmashev
ну у меня так же, я просто попозже инициализирую его
Andrei
всем привет, кто работал с flutter camera? есть проблема, что когда начинается запись, то звук при воспроизведении видео во время записи переключается на телефон, а если запись не включается, то звук в гарнитуре.
Rinat Kurmashev
[
{
"type": "pre",
"text": "TabBar _getTabBar(List students) {\n var tabs = _getTabs(students);\n if (_tabController == null)\n _tabController = TabController(vsync: this, length: students.length);\n _tabBar = TabBar(\n labelColor: Colors.white,\n tabs: tabs,\n controller: _tabController,\n );\n if (students.length == 1) _tabBar = null;\n return _tabBar;\n}\n\n@override\nvoid dispose() {\n if (_tabController != null) _tabController.dispose();\n super.dispose();\n}",
"language": ""
}
]
Rinat Kurmashev
вот типа такого
Rinat Kurmashev
не знаю насколько правильно, но всё работает замечательно
Pavel Vasilenko
[
"Вот интересный пакет. Может чем-то поможет ",
{
"type": "link",
"text": "https://pub.dev/packages/inview_notifier_list"
},
""
]
Vladimir Cores
[
{
"type": "link",
"text": "https://medium.com/flutter/flutter-and-desktop-3a0dd0f8353e"
}
]
IB Akhrorov
Спасибо, попробую
IB Akhrorov
Как вы передаете students?)
Rinat Kurmashev
в блоке гружу данные, в блокбилдере передаю из стэйта данные)
Rinat Kurmashev
ничего экстраординарного
Rinat Kurmashev
кто обновлялся в студии до 4 версии? всё ок?
Rinat Kurmashev
а то пишет plugins incompatible : Dart Flutter
Roman Vasiliev
Еще до обновления пишет
IB Akhrorov
Я использую streambuilder +rxdart,Можете покаать свой example?)
Rinat Kurmashev
Я уже с ребенком сижу
Rinat Kurmashev
Завтра если)
Vladimir Cores
Странно но у меня авто импорт Alt+Enter не работает для Flutter библиотек приходится в ручную импортировать
Дмитрий Андриянов
В опубликованном пакете такая штука. Кто-нибудь знает как решается?
Anton ?? ? ??
как делать такие всплывающие на время окна?
Anton ?? ? ??
а как в FontAwesomeIcons менять стили Regular <-> Solid?
Stanislav Sagan
[
"Здравствуйте, а можно с ссылки ",
{
"type": "code",
"text": "play.google.com"
},
" как-то попасть в ",
{
"type": "code",
"text": "play.google.com/apps/publish"
},
" посредством мышки? А то я задолбался каждый раз искать куда я сохранил вторую ссылку"
]
Daniil Kolyasnikov
[
{
"type": "code",
"text": "play.google.com/"
},
"console проще запомнить"
]
Danila Leontyev
Всем привет.
Danila Leontyev
Есть вопрос. купертино и материал виджеты. Как правильно - разруливать межплатформенные элменты?
Danila Leontyev
именно ui. - куперитино, не купертино.
Danila Leontyev
Вот - это начиная от аппа - обязательно? или можно отделаться только “критичными” местами.?
Danila Leontyev
Или апп влияет на какие то глобальные настройки?
Деда
Чего у всех виджетов не сделали входящий параметр usePlatform: true
Daniil Kolyasnikov
На самом деле проще всего оставить material
Danila Leontyev
До тех пора пока нытье “это не нативное иос поведение” не достанет ??
Daniil Kolyasnikov
А в чем поведение не нативное ?
Daniil Kolyasnikov
Переход между экранами работает нормально
Деда
По анимации все равно чувствуется что что то не родное
Деда
Когда с 2009 года пишешь по ios это ощущается
Daniil Kolyasnikov
Согласен, это скорость анимации ?
Daniil Kolyasnikov
Чувство есть, а описать не получается
Деда
Для тех кто не знаком разницы не заметят
Daniil Kolyasnikov
Ребят, кто dartdoc юзал ?
Деда
Или физика. Инерция у скролло и все по мелочам
ilx13
такие как я ничего не заметят (новички имеется в виду) и флаттер отлично подходит для не больших проектов. а глубоко я пока не зашел.
Anton ?? ? ??
ещё лучше, когда поведение зависит от версии платформы, не то что просто от платформы
Anton ?? ? ??
например при segmented control ios 13 и ios 12
Igor Kusoff
[
{
"type": "link",
"text": "https://vas3k.ru/inside/39/"
}
]
roman G ??
Вон Яндекс ищет ребят, мб за ним уже и другие подтянутся
neikist
Ну так яндекс и нативщиков набирает. На порядки больше. на hh flutter 117 по россии, android 2114. И то во многих вакансиях флаттер только дополнительный плюс, но основные требования натив. Потому для новичка выбор неудачный.
DK
можно делать мобильные приложения бизнесу,которому пофиг,что под капотом
neikist
Такого нет. Бизнесу потом это поддерживать еще. И нужно учитывать предложение на рынке.
Andreu
Я вот с Беларуси и у нас вообще интересная ситуация с флаттерлм. Я за все время видел лишь пару предложений из страны в линкеде, в основном все писали на ремоут и европа
DK
у меня 1 приложение на обе платформы в проде на кордове(вуе)
DK
и никто ничего не говорит
neikist
Так на нее нужно веб знать. А веба даже больше мобильщиков.
Serhii
[
"всем привет, подскажите плиз. имею вот такой джсончик - ",
{
"type": "link",
"text": "https://i.imgur.com/ccRFxCy.png"
},
". делаю функцию для вытягивания картинок, мне тайперрор кидает ",
{
"type": "link",
"text": "https://i.imgur.com/MOd0yrH.png"
},
" _TypeError (type 'List ' is not a subtype of type 'FutureOr
neikist
Пока флаттер больше для пет проектов и компаний побольше что могут себе либо тот же surf нанять, либо в крупных городах живут и шансы найти разраба на нем повыше. Либо могут позволить себе дать время своим разрабам переучиться на него.
Деда
А чего там учится, в любой непонятной ситуации делай child in child
Evgenii Elchev
Такой бизнес как правило мало платит. Потому что он простой. Если вдруг полезло найти крупный бизнес которому все равно то тоже есть риски. Сегодня ты пишешь на флаттере, завтра к тебе приходят и говорят, а чё там лаг? А чё наши юзеры жалуются что не как в нативе на ios? Почини. А ты такой, сорян ребята, там флаттер, надо все с 0 писать)
Serhii
ты не прав, уже в аутсорс компаниях Украины начали появляться вакансии. В рф я видел студии разработки переходят на него некоторые.
neikist
Еще раз, дело не в том что я не верю что флаттер расти не будет. Шансы на это неплохи. Дело в том что в ближайший год полному стажеру работу на нем не найти. А то и ближайшие года 2. Либо фрилансить на совсем простых приложениях.
Serhii
ну я полный стажер) ща вот тестовое делаю, (пользуясь случаем бампаю вопрос выше)
MiT
А сериализировать кто будет?
neikist
Как человек менявший стек - первые месяцы будет выходить код такого себе качества. Я ближе к году фулл тайм работы после смены стека на натив андроид начал выдавать что то более менее адекватное.
Andreu
Правильные вещи говоришь, тоже сталкивался с таким и готов подтвердить
neikist
Если есть коллеги поопытнее - будет заметно проще, но на флаттере они вряд ли из воздуха появятся
Evgenii Elchev
Я реально за свою фриланс жизнь понял, что бизнесу никогда не все равно, просто он не может выбрать сам и тут ты должен сделать это за него. И это очень сложно. Ты можешь задать миллион вопросов, уточнить что вот лаг, вот не будет как на нативе, показать пример, получить железобетонное согласие что их это устраивает, а потом окажется что они не так тебя поняли )
MiT
[
{
"type": "link",
"text": "https://flutter.dev/docs/development/data-and-backend/json"
}
]
neikist
Жиза. Сначала 1с магниту продала 3к лицензий на мобилки на 1с, а только потом они нас подрядили им приложуху разрабатывать которая ну совсем на 1с не ложилась и объективно им нужен был натив.
DK
а как балансировать то?)
Serhii
в доке нашел пример либо с jsonDecode (который у меня юзается), либо через создание модели заранее (этот варик мне не нужен сейчас)
DK
то есть, платят тебе копейки как за лендинг, но хотят обе платформы и не знают,что нужен ещё бэкэнд
Evgenii Elchev
Ну либо делаешь приложеньки за 10к и плевать что там после того как деньги отдали. Или идёшь в компанию где решают за тебя. Или используешь всю доступную мудрость что бы найти топового клиента и сделать как ему будет нужно)
Evgenii Elchev
Ну я работаю у компани где мне платят не копейки, но и на чем угодно я писать не могу)
|