Программирование : Dart & Flutter по-русски
DennY.
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/material/Colors-class.html"
}
]
Vladislav Rudenua
Как можно это исправить?
Vladislav Rudenua
сингл чайлд скролл вью не подходит
Vladislav Rudenua
ну клава на кнопку заезжает
Vladislav Rudenua
а поставить проперти в сскафолде тоже не сильно подходит
Vladislav Rudenua
resizeToAvoidBottomInset: false
Урусай
CustomScrollView, либо можно использовать комбо из LayoutBuilder, ConstrainedBox и IntrinsicHeight
Vladislav Rudenua
щас чекну
Vladislav Rudenua
спасибо
Andrew Shalaev
[
"Имеете в виду только руками? \n\nХотелось бы какую-то утилиту ей на вход colors.xml, на выходе сниппет \n",
{
"type": "pre",
"text": "Theme.of(context).copyWith(accentColor: const Color(0xFF000aaa) .. ),",
"language": ""
},
""
]
admin
Всем привет, могу ли я использовать CupertinoPageRoute вместо MaterialPageRoute для андроида, мне просто нужно чтобы был переход как у ios или лучше самому сделать анимацию?
Mansur Mansur
здраствуйте
Mansur Mansur
пытаюсь сканировать блютуз устройства
Mansur Mansur
выходит исключение
Mansur Mansur
Exception: GenericFailure (code: ScanFailure.unknown, message: "Location Permission missing (code 3)")
MiT
Permission на геолокацию нужно дать похоже
horse horssyyy
[
"Можешь например этот пакет заюзать ",
{
"type": "link",
"text": "https://pub.dev/packages/swipeable_page_route"
},
""
]
horse horssyyy
Он поддерживает назад через свайп как в телеге
horse horssyyy
Я туда два пулреквеста кинул
admin
Спасибо большое сейчас буду смотреть.
horse horssyyy
Там баг связан с нативным свайп бек на андроиде
horse horssyyy
Срабатывает и нативный свайп и флатеровский
horse horssyyy
И приложуха закрывается
horse horssyyy
Поэтому надо добавить жля флатеровского расстояние от края экрана на котором он активируется
Denis
Всем привет, кто работал с WebRTC, можно ли там как-то использовать зум камеры?
horse horssyyy
[
{
"type": "link",
"text": "https://developer.android.com/training/gestures/gesturenav"
}
]
horse horssyyy
Я хз как во флатере понять поддерживает ли система нативный свайп навигацию или нет
horse horssyyy
Поэтому захардкодил просто отступ в 60px
horse horssyyy
У меня на нокии такие свайпы. Так бы и не узнал про это
horse horssyyy
Вот я пальцем потянул слева стрелка
horse horssyyy
Этот свайп работает как кнопка назад
horse horssyyy
У меня нет кнопки назад и домой вообще
horse horssyyy
Все свайпами
horse horssyyy
Потянул снизу приложуха свернулась
horse horssyyy
И бывает так что приложуха минимизируется и флатеровский лист в фоне прокручивается. Т.е. по ходу приложение должно учитывать это все и в той ссылке на андроид дев об этом есть. Только я не знаю как на флатере это хендлить
horse horssyyy
Должен быть в идеале виджет который например добавляет поля в которых можно безопасно хендлить жесты
horse horssyyy
А сами свайпы удобные. Я когда беру другой телефон без этой фишки туплю ужасно
Дмитрий Щербаков
ща еще 12й андроид подъедет ??
Ардак Мергалимова
Всем добрый день! Мы ищем преподавателя по Python в школу программирования. График - part-time (частичная занятость, 6-10 часов в неделю), в основном в вечернее время после 18:00, есть возможность совмещать с основной работой/учебой. Требования и ключевые навыки: постоянное проживание в городе Нур-Султан, ответственность, грамотная речь, умение и желание общаться с людьми, знание Python на уровне strong junior/middle, опыт в преподавании будет плюсом. Условия по оплате обсуждаются по результатам собеседования. Всем желающим и даже просто интересующимся обращаться в лс.
Otx
Можно ли человека который пишет Unit и Widget тесты назвать тестировщиком?
MiT
Вы явно не в тот чат попали...
MiT
А можно называть программиста который пишет unit и UI тесты, тестировщиком?
Andrew Shalaev
> знание Python на уровне strong junior/middle интересно, кем и где эти уровни определяются? Выдают сертификаты или что? :)
Дмитрий Щербаков
Типа Джун питон будет учить питону )) хмм
Ruslan Vafin
Им похоже пофигу кто и как будет учить, главное бабла с людей срубить ??
Ruslan Vafin
Псевдокурсы)))
Дмитрий Щербаков
стать senior ML python data scientist за 2 месяца за 100к рублей и получить 100500 в наносекунду)
Дмитрий Щербаков
все современные курсы такие аха
Ruslan Vafin
Поэтому лучше договориться со знающим разработчиком чтобы он тебя обучил)
d
В последнее время есть такая тенденция, что тот, кто код написал, тот его и покрывает тестами, так что по тенденции это скорее программист
Дмитрий Щербаков
вот у меня такой вопрос. Есть gridView из n элементов. Нужно вставлять в рандомные места рандомные данные. Что будет меньшим из зол: 1) Разбивать этот gridview на n и вставить между ними эти данные 2) Пихать это данные в массив на этапе сбора данных для gridview
MiT
Тут ты под лоадер можешь закинуть
MiT
А в первом варианте есть возможность не попасть в 16 мс
Дмитрий Щербаков
16мс можно решить прерыванием)
Дмитрий Щербаков
евентлупа
Nurassyl Nuridin
Ребята помогите сделать логику функции, где мне нужно получить рандомную цифру в пределах 100. Получил новую цифру, проверить есть ли он в листе, если нету то добавить и выйти из метода, а если эта цифра есть в листе, тогда сгенерить следущее число. Спасибо!
Дмитрий Щербаков
просто что то что то как то все костыльно
Дмитрий Щербаков
сижу вот окуеваю
MiT
Вообще странная задача. Но я уже не удивляюсь)
Anton
было у меня такое мы делали через массив
Дмитрий Щербаков
лан пойдем по 2 пути ??
Anton
[
{
"type": "link",
"text": "https://metanit.com/dart/tutorial/5.2.php"
}
]
horse horssyyy
Я вот никак не пойму, как так получается что мы можем играть в 3д игры с кучей графики, анимаций, мультиплеере, звуками и т.д. в 60 фпс, но не можем рокрутить скрол на 100 элементов без тормозов?
Дмитрий Щербаков
потому что говнокод ;)
Дмитрий Щербаков
флаттер и 120 может
Дмитрий Щербаков
справедливости ради в 60фпс ты поиграешь только на железе за 100к+ в современны игры (я как геймер тебе говорю)
Anton
от этого тоже зависит
Дмитрий Щербаков
doom не в счет)
Fearless Cry
потому что в обычном юае навешно куча абстракций
horse horssyyy
от этого может зависеть потому что в с++ нет сборщика мусора
Fearless Cry
в играх отрисовка на низком уровне
MiT
Способ рендера абсолютно другой
Fearless Cry
На низком уровне он везде одинаковый
horse horssyyy
ну игры напрямую юзают например opengl а флатер через скию
Fearless Cry
вопрос сколько у тебя до низкого уровня еще слоев
Дмитрий Щербаков
можно и на флаттере сделать игру в 60 фпс
horse horssyyy
ския чтоли такая тормозная?
Дмитрий Щербаков
но зачем
Дмитрий Щербаков
если есть unity
Vlad
тетрис))) Tetris 64 FPS FULL 4k graphics))
MiT
На низком уровне у нас везде машинный код)
Fearless Cry
я про отрисовку там везде так или иначе опенгл (на оайсе метал)
horse horssyyy
просот реально мне кажется количество анимаций в играх и вообще сложность ну несопоставима просто с каким-то туду приложением в котором выводится 100 эленетов в списке и анимации переходов страниц. Но и то я иногда замечаю какие-то фрей дропы на релиз билде
Vlad
Да))) Там везде 0 и 1))
horse horssyyy
то-ли GC запускается в какие-то неподходящие моменты то-ли что
Vlad
Я тебя правильно понял? У тебя в эмуляторе подлагивает список огромный, а на том же компе игра хорошая без лагов?
horse horssyyy
я эмулатор не юзаю
horse horssyyy
на телефоне иногда я вижу особенно если приложение перед этим было свернуто не совсем плавную анимацию
horse horssyyy
например у меня игра есть детская на юнити там анимация ну на порядок плавнее
Anton
а ты в дебаге смотрел?
horse horssyyy
да в релизе. что я дурачок какой-то что-ли
Anton
ну я видел таких кто говорил флатер хуйня а дальше дебага не заходили
Дмитрий Щербаков
ну от кода зависит
horse horssyyy
я не скажу что это проблема прям, но вот как-то заметно чт плавность не та
Дмитрий Щербаков
дарт - однопоточный
Дмитрий Щербаков
может списко который ты выводишь его генерация занимает более 16мс
Дмитрий Щербаков
всякие штуки типа там сетевых запросов, парсинга жисонов
horse horssyyy
надо смотреть через профайлем вообщем )
Дмитрий Щербаков
надо выносить в изолят отлельный
Дмитрий Щербаков
в основном потоке UI
horse horssyyy
с изолятом беда тоже есть
Дмитрий Щербаков
в изолятах все остальное говно
horse horssyyy
есть ишью на гитхаюе, если изолят возвращает большой json наприер, то мейн тред тоже блочится пока читает из канада данные
horse horssyyy
нету shared стейта к сожалению
Дмитрий Щербаков
не надо из изолята возращать Json потому что
horse horssyyy
ну а как ты прсинг джейсона сделаешь в изоляте
horse horssyyy
его же вернуть надо куда-то
Дмитрий Щербаков
между изолятами надо шарить тока примитивы
horse horssyyy
типо например изолят получает по апи данные, парсит, пишет в БД а в мейн тред только например оповещение что данные пришли?
horse horssyyy
как-то так?
Fearless Cry
так json это примитив
Дмитрий Щербаков
ну и циклы жоские которые миллиард фигни перебирают тоже можно оптимизировать
horse horssyyy
да наверное это неплохоая идея надо пересмотреть архитектуру )
Дмитрий Щербаков
но это уже оверинжиниринг
Дмитрий Щербаков
через StopWatch
Дмитрий Щербаков
короче можно все - вопрос только во времени на разработку и нужно ли это
Урусай
Это какого должен быть объёма жсон что бы основной поток его так долго принимал что доходило до тормозов?
Дмитрий Щербаков
если у тебя там циркулярпрогресс индикатор лагнул на полсекунды и чтоб он не лагал надо потратить например 10 часов на рефакторинг. вопрос оно того стоит?
Дмитрий Щербаков
от 500кб
Дмитрий Щербаков
там типа просадка до 20-30 фпс в зависимости от устройства (условный китайфон за 3к)
Урусай
Гугл нахуевертили наверное тогда в системе обмена сообщениями между изолятами
Дмитрий Щербаков
на норм девайсах норм все)
Дмитрий Щербаков
json же тоже разные бывают
Дмитрий Щербаков
где то тупо массив
Дмитрий Щербаков
а где то дерево 100500 детей
Дмитрий Щербаков
и когда ты шаришь между изолятами
Дмитрий Щербаков
оно все конверитится
Дмитрий Щербаков
и потом обратно
Урусай
Я думаю если там будет просто строка размером от 500кб то тоже будет тормозить
Дмитрий Щербаков
строку 500кб тупо стримом байтов можно передать
Урусай
А почему нельзя передать например сложный массив стримом байтов?
Дмитрий Щербаков
потому что объект в изоляте1 и в изоляте2 это 2 разных объекта
Урусай
Берёшь ячейки памяти, попируешь их в другие ячейки, вуаля
horse horssyyy
вообще мне идея передавать объемы данных большие кажется какой-то не очень
horse horssyyy
как-то сама идея потоков теряется
Дмитрий Щербаков
у тебя нет доступа к памяти в dart
Дмитрий Щербаков
есть костыль
Урусай
А мне и не надо, пускай система изоляторов с ней работает
horse horssyyy
лучше тогда как говорили делать все включая работу с БД в изоляте, а в мейн треде оставить только стейт и собития что типо что-то поменялост
Дмитрий Щербаков
ЭТО КОСТЫЛЬ
Дмитрий Щербаков
TransferedTypedData
Дмитрий Щербаков
не юзайте)
horse horssyyy
там есть другая фишка но она пока в internal
horse horssyyy
метод sendAndExit
Урусай
Причём тут вообще твой трансферед тайпед дата? Я интересуюсь в чём проблема дарта под капотом скопировать данные из одних ячеек памяти в другие и ничего никуда не передавать при этом сериализовывая и десериализовывая
horse horssyyy
я так понимаю идея в том что изолят возвращает данные и типо сразу гарантированно умирает
Дмитрий Щербаков
я считаю что если между изолятам и надо гонять что то "тяжелое" - это косяк архитектуры
horse horssyyy
это позволяет я так понимаю как-то смапить просто данные в главный поток и избежать шаред доступа
Урусай
У меня недавно был кейс где надо в изолятах очень часто что--то обрабатывать
Урусай
А т.к. свапн изолята занимал тучу времени, намного больше чем обработка, пришлось спавнить один изолят и туда сюда гонять данные
horse horssyyy
ну вот например в сях каких-то это решается через глобальную очередь с блокировкой
horse horssyyy
та возможно накосячить зато эффективно
horse horssyyy
не надо гонять байты туда сюда
horse horssyyy
Просто это вводит кучу сразу понятий в язяык и порого входа увеличивается
Урусай
Общая память осталась для системных языков
Дмитрий Щербаков
в сях ты себе ногу отсрелишь скорее чем оптимизируешь)
Дмитрий Щербаков
общая память - зло
horse horssyyy
та ну как сказать зло
Урусай
Но чаще не нужно чем нужно
horse horssyyy
Если это дело просто обернуть так что чтобы получить доступ к разделяемому объекту можно только через блокировку то не вижу каких-то прям проблем
Урусай
Где нужна серьёзная оптимизация она полезна, хотя сама по себе она опасна
horse horssyyy
аля final buff = SharedBuff(..... 100MB) buff.lock.then(... do something with buff).finally(...release lock)
Урусай
Общая память часто используется когда блокировку организовывать нельзя - нужно большому количеству потоков работать с ней одновременно
horse horssyyy
типо предлагаешь дать доступ множеству потокок в разделяемой памяти без блокировок?
Урусай
Когда кейс подразумевает что один поток может ждать, то она нахер не нужна, нужно просто нормально посыл сообщений из потока в поток реализовать на нижнем уровне )
horse horssyyy
удачное решение
horse horssyyy
есть лок-фри структуры данных не спорю, но там такая сложная реализации что ну его в баню
horse horssyyy
почему, поток же не просто ждет, он в это время может делать что-то другое
horse horssyyy
получил блокировку, обработал
horse horssyyy
короче обычный мать его мьютекс
Урусай
Получил блокировку - перестал делать то что только что делал?
Дмитрий Щербаков
А если в общей памяти
Дмитрий Щербаков
Один и тот же объект будут менять разные потоки
Дмитрий Щербаков
Чо тогда?
Урусай
Это как уже выше упомянули лок-фри системы
Дмитрий Щербаков
Но это же 3.14здец
horse horssyyy
ну как обычнцй await работает
Урусай
Но он работает так на низком уровне
|