Программирование : Dart & Flutter по-русски
admin
Но по ним уникальность палится
tdesc
господа хорошие, подскажите на стримах или rx решить задачку нужно посчитать сколько за 1 минуту проходит событий
Анатолий
в стримы ж можно внедряться
Анатолий
сделай один обработчик который будет считать, и добавь его пайпом
tdesc
debounce по идее на 1 минуту
tdesc
и слушать скок штук прилетело
Анатолий
debounce вроде ж минуту будет молчать а потом пришлет тока
tdesc
не 1 стрим просто в него летят события с разной периодичностью
tdesc
да, если отправит все, как раз будет их количество в минуту
Анатолий
даже нет, дебоунс дропнет которые выходят за временной промежуток
Анатолий
Тебе надо просто посчитать или что-то сделать с ними?
Анатолий
Если просто посчитать то пайп просто сделай
Анатолий
А какая разница как идут?
Анатолий
стримы в принципе не просто так ходят ??
tdesc
) а что pipe делает?
Анатолий
пайп - цепочка обработчиков на стрим
Анатолий
мож в дарте назвается по другому
Анатолий
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/51622257/how-do-you-use-stream-pipe-in-dart"
}
]
tdesc
да надо замеры сделать
Анатолий
там походу загрузка и надо показывать прогресс загрузки с процентами/количеством итд
Анатолий
первое что в голову приходит
Анатолий
хотя он про дебоунс говорил
tdesc
есть стрим, в него падают события с разной периодичностью могут 100 за минуту, может 15 вот нужно посчитать скока )
tdesc
там подписки и надо контролировать их число
tdesc
для оценки перформанса
Анатолий
ну вообще я бы контролировал их в моменте отправки
Анатолий
и лишнее просто не слал бы
Erik Spent
Всем привет! Можно ли на флатере получать на сколько пикселей проскролили SingleChildScrollView? Есть задача когда скролиш один скролл надо автоматом скролить второй
Анатолий
они находятся рядом вертикально?
Анатолий
просто теоретический вопрос, а почему их обоих не положить в один виджет который можно скролить?
Анатолий
любопытность не порок
Анатолий
меня именно одновременный скролл заинтересовал
Artyom Nesterenko
А что если нужно скроллить со сдвигом? Или один должен скролиться пальцем, а другой нет? Получить эффект параллакса.
Анатолий
ну вот мне и интересно какая у человека задача
Анатолий
гадать я не очень люблю
Анатолий
Не могу себе представить параллакс на скролл вью
Erik Spent
просто тестирую разные подходы) Но основная идея сделать календарь. Надо что б боковая часть с датами оставалась
Artyom Nesterenko
Это просто, причем тут рн. ??
Анатолий
типа скролл вниз-вверх двигает и даты, а скролл влево вправо тока календарь?
Artyom Nesterenko
В iOS 7 вроде первый раз показали, потом Android подхватил.
Artyom Nesterenko
Ну в iOS на обоях сто лет как.
Erik Spent
на котлине напишу: а на флатере только учу
Artyom Nesterenko
Сейчас вон даже в ВК на фоне, когда посты с надписью делают.
Artyom Nesterenko
Ага, там изи. ??
Artyom Nesterenko
Ну как, возможно, я не совсем понял. ??
Анатолий
Кстати, а если следать вертикальной скрол вью и в нем горизонтальный, они будут нормально работать? не будут забирать дург у друга евенты?
Erik Spent
вроди не должны
Анатолий
да, в вертикальный сунуть все, а в горизонтальный только календарь
Erik Spent
очень умно говоришь)
Erik Spent
да вот мне не понять
Erik Spent
Начал делать, вспомнил почему две таблицы не подходит. Я хотел потом добавить вверху тоже хидеры на далендарь, но что бы они оставались при скролле по вертикали
Erik Spent
что-то типа того
Erik Spent
это на вертикальний или на горизонтальный тоже можно
Erik Spent
а погоди, а как верхний тогда будет скролится по горизонтале,
Анатолий
я так понял что такое нужно
Анатолий
левая и верхняя полосы в половине случаев статичны
Анатолий
верхняя всегда есть, но статична при вертикальном скроле, левая всегда есть но не двигается при горизонтальном
Анатолий
это календарь стандартный, тут всегда видна
Анатолий
да, при скроле горизонтальном двигается
Анатолий
а при вертикальном левая двигается а верхняя статичная
Анатолий
походу изначальный план человека был оптимальным, программно скролить :)
Анатолий
тока запутали человека
Artyom Nesterenko
На самом деле там весь список двигается, не совсем то же самое. ??
Анатолий
на скрине просто верхнего списка не было и меня понесло на фантазии )
admin
Пока не работает один скрол
Анатолий
в аднроиде кстати как только начинаешь драг, он фиксируется и перпендикулярно уже не едит, только по той оси с которой начал
Erik Spent
в даный момент, я хочу програмно скролить боковой список когда скролю центральный
Анатолий
ох уж этот телеграмм
Анатолий
и сиди теперь думай, один ли это человек или нет
Erik Spent
просто разные аки
Erik Spent
с телефона и с ноута)
Erik Spent
всмысле откуда?)
Erik Spent
решил проблему так dayScrollController.jumpTo(scrollController.position.pixels);
Анатолий
а горизонтальный тоже?
Erik Spent
не для горизонтального один SingleChildScrollView в другом
Марк
Всем привет! Ребят, кто-то сталкивался с проблемой ввода текста в Galaxy?
Анатолий
Да я сталкивался, вместо пробела нажимается буква из нижнего ряда
Марк
У меня дублирование текста
Анатолий
Тут уже было такое
Анатолий
Обсуждали точно, если это был не ты то как минимум один человек уже сталкивался
Анатолий
я уж думал запишу себе очередное решение проблемы в копилку
Марк
Нам это уже все нервы вытрепало.. скоро релиз, а мы понятия не имеем как это лечить
Марк
Вижу спрашивал мой партер уже в сообществе)
Марк
Если бы он был только у меня)
Анатолий
[
{
"type": "mention",
"text": "@bpxmsg"
},
" вызываю тебя!"
]
Анатолий
Надеюсть вы не вместе работаете
Марк
Это мой партнер, уже увидел
Марк
Юрий, а можно подробнее, я не мобильный разработчик.. и flutter для меня новый... у нас разраб не справился с задачей.. и мы уже сами ищем
Марк
лечится стиранием кеша клавы — это надо юзеру делать
Марк
Или в коде как-то фиксить
Марк
Как это вообще делается)
Анатолий
а можно во флаттере отключить панельку с т9?
Анатолий
да, туда лезть надо и пыцкать
Анатолий
просто может быть это из-за него
Анатолий
ну так, я притворюсь вангой
Анатолий
ибо эта штука влияет на ввод
Марк
Просто на эмуляторе (устройство физ) может не сработать?
Марк
Не, у меня подключен телефон
Марк
Я на телефоне через шнур запускаю
Марк
Причем такая фигня начинается только после того как введешь хоть один русский символ
Марк
Если все на en то ок
Марк
Но если в поле попал хоть один русс.. то все
Марк
Вот такая фигня ругается
Марк
Как только печатаю в поле
Марк
Но появляется именно в момент появления этого бага
Марк
Эх... я в dart могу только элементарное править. Не родной язык)
Марк
Ну вот спан ошбку выдает только тогда когда русские символы начинаю вводить
Анатолий
я уже высказался )
Анатолий
а так, только для интереса, можешь на телефоне в клавиатуре вырубить т9 и всякие подсказки?
Анатолий
не программно а именно руками на железке
Dmitry Lvov
[
"Всем привет! Смотрю тут выпуск Flutter Boring Show №2-3, там речь про сериализацию джсона. И разрабы настоятельно рекомендуют юзать не только пакет :convert, но и библиотеку от гуглов built_value. \n\nЯ посмотрел этот подход - описываешь класс, потом запускаешь команду и генерится на его основе финальный класс с доп параметрами, и у меня появился следующий вопрос - а в чем профит подхода этого? Может кто-то может вкратце вразумить? Библиотека вот если что ",
{
"type": "link",
"text": "https://github.com/google/built_value.dart"
},
""
]
Dmitry Lvov
насколько эта библиотека популярна у вас в разработке?
Анатолий
есть 3 варианта: 1. мирроры - в рантайме проверяются все типы, все переменные, оезет внутрь мапов/классов/массивов, прям в кишки и достает инфу о них (удобство +10, скорость -10) 2. "рефлексия" - делает то же самое но один раз по описаниям и все кеширует, и затем вместо того чтоб лезть в кишки, лезет в кеш, это быстрей, но еще не так быстро как хотелось бы (удобство +5, скорость -0) 3. кодогенерация - эта штука генерит тебе в классах новые методы и в итоге сериализация происходит как буд-то ты описал каждое поле руками и прям как нативный вызов метода, работает супер быстро быстро (удобство -10, скорость + 10)
Анатолий
[
{
"type": "mention",
"text": "@lfkekpoint"
},
" кодогенерация используется часто ибо сильно ускоряет работу сериализации"
]
Анатолий
Тут уже дело вкуса
Анатолий
Кто-то такой подход не любит использовать, а кто-то не может другой, ибо использует флаттер
Анатолий
1 способ не работает во флаттере
Dmitry Lvov
[
{
"type": "mention",
"text": "@xff00ff"
},
" спасибо за оперативный ответ. Ты используешь библиотеку эту?"
]
Анатолий
нет, я не люблю кодогенерацию и не использую флаттер 2/2 ??
Анатолий
вообще не так страшен черт, ты один раз все описываешь, один раз запускаешь приблуду и она генерит тебе код с которым ты дальше все время работаешь
Анатолий
перегенерить надо будет тока если добавишь полей к классу, а это происходит не так часто
Анатолий
так что в целом вариант вполне жизнеспособный и не так часто мешает как кажется
Dmitry Lvov
я думаю, что это можно внедрять если требуется оптимизация
Dmitry Lvov
а преждевременна оптимизация зло )
Dmitry Lvov
но попробовать можно , чтобы просто делать быстрее
Анатолий
ну если используешь флаттер то у тебя выбор не большой, 2 пункт тоже требует описания
Анатолий
и тоже требудет запуска приблуды )
Анатолий
[
{
"type": "link",
"text": "https://lsreg.ru/serializaciya-i-deserializaciya-json-v-flutter-dlya-bolshix-proektov/"
}
]
Анатолий
такое себе экспресс введение для ленивых
Dmitry Lvov
почитаю, сохранил себе )
admin
Такие вещи как immutable value class и memoized getters выглядят прям красиво
admin
Но ради этого кодогенерация?
undecided young boy
Пацы, что такое gradle?
Pavel Kozlovskiy
[
{
"type": "link",
"text": "https://flutter.dev/docs/development/data-and-backend/json#generating-code-continuously"
},
" ещё можно автоматизировать"
]
(;?_?) Ivan Zhuravlev ???>?
это такой американский яндекс? =)
Anton Vasiljev
это который голландский рамблер?)
Tesseract
компания такая))))
NewBalanceM5
чем занимается?
Anton Vasiljev
на хлеб с маслом зарабатывает
NewBalanceM5
печально звучит
Pavel Kozlovskiy
А вот у меня другой вопрос, выпиливать нагенеренные файлы из гита или нет? Я решил выпилить, теперь вот думаю как травис заставить их генерить самому...
Олжас Сулеймен
ну например чтоб в ручную не писать оператор сравнения
Dmitry Lvov
[
{
"type": "mention",
"text": "@ykmnkmi"
},
" это интересно, но я другой вопрос задавал. Вы применяете библиотеку в разработке?"
]
Олжас Сулеймен
на вм и во флаттере
Dmitry Lvov
[
{
"type": "mention",
"text": "@ykmnkmi"
},
" спасибо. Не знаю что такое вм ( . Только в контексте “вьюмодель\""
]
Dmitry Lvov
понял. Спс за ответ
Dmitry Lvov
я решил для себя накидать пока без нее. Т.к. проект для себя пишу, если он приживется - внедрю библиотеку, типа сделаю рефакторинг в лучшую сторону )
Mike
здравствуйте у меня несколько странный вопрос я взял реализацию scypt, переписал (подправил) на dart. В целом работало довольно медленно, что на мобильном устройстве, что в эмуляторе. После чего я немного пошерстил в коде реализации scrypt и где можно заменил List на Uint32List, что очень существенно (до 2-3 раз) ускорило работу скрипта, однако лишь в эмуляторе, не на реальном устройстве Собственно, почему так? Куда копать?
Rinat Kurmashev
мне нужно нестандартное поведение в scaffold, которое касается приватных полей - что можно сделать, рефлексия?
Олжас Сулеймен
это что именно, наследование никак?
Олжас Сулеймен
ну или как обычно переписать самому
Rinat Kurmashev
походу переписать, приватные поля юзаются
Rinat Kurmashev
[
{
"type": "pre",
"text": "PersistentBottomSheetController showBottomSheet(WidgetBuilder builder) {\n _closeCurrentBottomSheet();\n final AnimationController controller = BottomSheet.createAnimationController(this)\n ..forward();\n setState(() {\n _currentBottomSheet = _buildBottomSheet(builder, controller, true);\n });\n return _currentBottomSheet;\n }",
"language": ""
}
]
Rinat Kurmashev
[
"а мне нужно такое:\n",
{
"type": "pre",
"text": "PersistentBottomSheetController showBottomSheet(WidgetBuilder builder, bool persistent) {\n _closeCurrentBottomSheet();\n final AnimationController controller = BottomSheet.createAnimationController(this)\n ..forward();\n setState(() {\n _currentBottomSheet = _buildBottomSheet(builder, controller, persistent);\n });\n return _currentBottomSheet;\n }",
"language": ""
},
""
]
Rinat Kurmashev
как думаете стоит пул реквест сделать? или пошлют лесом?)
Олжас Сулеймен
на врят ли примут, менять апи
Rinat Kurmashev
ну вот и я так думаю
Rinat Kurmashev
походу переписывать
Олжас Сулеймен
showBottomSheet (WidgetBuilder builder, [bool persistent = true])
Sergey Ivanov
Всем привет. Решил изучить флаттер. Но что то не пойму. Неужели весь интерфейс строится через кучу вложенных классов? и это все в большом приложении вообще как выглядит? а если решаем что то изменить во внешнем виде, как с этим работать? от этих мыслей у меня волосы шевелятся, или может все просто и есть какие то инструменты?
northelks
да, всё сложно, только через шелест волос, только череш шёпот кучи вложенных классов
Alexander Chudesnov
> решаем что-то изменить Что, например?
Sergey Ivanov
внешний вид, структуру интерфейса
???????
А что такое по твоему HTML DOM?
Alexander Chudesnov
Внешний вид — меняем его в базовом компоненте, применяется везде
Max??
Как для меня то вообще проще чем .xml
Alexander Chudesnov
Структуру — меняем иерархию и свойства инстансов компонент, получаем новую
???????
Как для меня - идентично
Rinat Kurmashev
разбить на классы?
Max??
Ну в xml есть необходимость закрывать теги)
Rinat Kurmashev
вы не туда спорите ??
Max??
Тут все в конструкторах
|