Программирование : Dart & Flutter по-русски
Maxim Goncharov
Спидкоды тема ))
Cat-Wizard Ashere
Ну особо негде смотреть уже готовый код. Так что *вздох*
Sergey Hottabych
Я всех перетягиваю на тёмную сторону силы??
Sergey Hottabych
Вообще не похоже, вот Go действительно похож на C++
Sergey Hottabych
Dart лучше во всем. Он статически типизируемый. А недавно ещё и null-safety добавили, вообще кайф
Dima Kotlyarov
ну ты же умный тип) что занчит лучше во всем) ну нет языков лучше и хожу
Sergey Hottabych
В Js легко наделать пропасть ошибок из-за отсутствия типов. Нет единого стандарта
Sergey Hottabych
А когда добавили ещё классы, то вообще жопа
Hellomik
ХАй народ кто подключал PayPal ?
Sergey Hottabych
Хотя, в нем есть деструктуризация, а в Дарт ещё не завезли
Hellomik
вы там брали просто данные и в сервак кидали ?
Maxim Goncharov
Js это боль )))))
Jamshed Rakhmonov
Как в sqfite могу получить список данных даблицы по id?
Jamshed Rakhmonov
[
{
"type": "pre",
"text": "clientcount(int id) async {\n final db = await database;\n var count = Sqflite.firstIntValue(\n await db.rawQuery('SELECT COUNT(*) FROM Client WHERE id = id'));\n return count;\n }",
"language": ""
},
" примерно так или я ошибаюсь"
]
Crystal
[
{
"type": "link",
"text": "https://cloud.mail.ru/public/K1rF/ojkZfoAGU/%5Bpirat.biz%5D%2017.%20%D0%9E%D0%B1%D0%B7%D0%BE%D1%80%20Bloc/"
}
]
Crystal
[
{
"type": "link",
"text": "https://cloud.mail.ru/public/KUi9/2uLVZ63kN/"
},
"\n1 часть"
]
Mitai
[
{
"type": "link",
"text": "https://www.youtube.com/channel/UCRva5jH_39U-rLt6S9JJyUw"
}
]
Maxim Goncharov
Спасибо, плюс тебе в карму!)
Andrew Shalaev
Вы определяете состояние через класс, если вам необходимо во вью передать комплексное состояние. Простой пример - состояние авторизован+объект авторизованного пользователя. Кроме как через объект класса такое состояние не реализовать.
Crystal
[
{
"type": "link",
"text": "https://cloud.mail.ru/public/K1rF/ojkZfoAGU/"
},
"\nЭто вторая часть. OTUS"
]
Andrew Shalaev
Скорее на C
Andrew Shalaev
На счёт евентов -- ну это зависит как приложение строите, я в рамках домена обзываю евенты. Нажал на кнопку Sign in , значит евент называем auth ,и тут enum'а хватит для реализации
Estey
не подскажите как вызвать это окно? на windows
Иван Болдырев
всем привет
Иван Болдырев
зачем использовать WidgetsFlutterBinding
Иван Болдырев
а именно WidgetsFlutterBinding.ensureInitialized();
Kirill Nepomiluev
alt+Enter
Estey
не получилось) или в VScode нет этого?
Alex Wow
Это же другой ide у тебя iiijjej
Estey
на скрине андроид студио
Sergey Hottabych
Ну да, без классов и ООП
Sergey Hottabych
Если VsCode
Estey
да, но в нем почему то не все функции(
zzz
Как правильно подтянуть canvas в анимацию, сама анимация уже прописана, не могу понять каким образом сделать линии анимированными?
?? ??????????????????????????
Баян, было уже
?? ??????????????????????????
Может на дарпад выложить?
Andrew Shalaev
? Данное сообщение доступно только пользователям Telegram ??????????????.
Пашка
ну херней не страдай
Andrew Shalaev
Ну 1апреля же :)
Артур
Андрей что за приколы
Артур
ты не достоин гофера на аве
Andrew Shalaev
Уф) насмешили
Viacheslav Boiko
тебе нравится свинка, которую я скинул выше?
Andrew Shalaev
Ладно, работаем дальше
Артур
у меня этот стикерпак уже полгода
Viacheslav Boiko
я бы хотел себе такую, она вроде домашняя, завести)
Артур
они растут довольно таки большими
Артур
не слишком то мини, но макро пиг
Rizz
Есть примеры нейросети на dart ?
admin
Добрый вечер. Парни, покидайте свои проекты в демке, написанные на Flutter? Интересно было бы глянуть.
Ivan
Добрый вечер, подскажите, можно ли использовать positioned внутри listview.builder?
Adam-Nurbol Nurbayev
Всем привет. Вопрос как от новичка. Если я к примеру соберу маленькое приложение на flutter с целью запуска на Android. А в дальнейшем захочу ещё и вывести апп под iOS, много ли придется дописывать/переписывать в процентном соотношении
Anton Zheltov
нисколько не придется
Anton Zheltov
еще и веб и винда и мак и линух теперь
Adam-Nurbol Nurbayev
А как же...
Adam-Nurbol Nurbayev
Вопросов больше нет, перехожу на флаттер
Ivan
Всем привет, нужна помощь в комбинировании stack positioned и listview.builder
Ivan
[
"Container(\n width: 200.0,\n height: 32.0,\n child: Stack(\n clipBehavior: Clip.antiAlias,\n children: [\n ListView.builder(\n scrollDirection: Axis.horizontal,\n shrinkWrap: true,\n physics: NeverScrollableScrollPhysics(),\n itemCount: 6,\n itemBuilder: (BuildContext context, int index){\n return Positioned(\n left: 24.0,\n child: Container(\n height: 32.0,\n width: 32.0,\n decoration: BoxDecoration(\n color: Colors.yellow,\n borderRadius: BorderRadius.circular(22.0),\n border: Border.all(color: ",
{
"type": "link",
"text": "Colors.black"
},
")\n ),\n ),\n );\n },\n )\n ],\n )\n),"
]
Ivan
Пытаюсь сделать вот так
Andrey Raih
А в чем вопрос у вас?
Джамиль Хаметов
Какую демку?
Mykola Shevchenko
А зачем там ListView?
Ivan
[
{
"type": "link",
"text": "https://pastebin.com/26qinZju"
}
]
Ivan
Вопрос, как сделать такое же, как на картинке. То есть. У меня есть список картинок, и мне их нужно расположить в строку, что бы следующая наезжала на предыдущую
Mykola Shevchenko
Просто стек, без листвью
Andrey Raih
Вы можете обойтись без listview
Ivan
Окей, попробую. Спасибо
Mykola Shevchenko
И можно не генерировать список, а вручную сделать, там же два элемента
Mykola Shevchenko
При чем передается туда одно и то же значение
Andrey Raih
Просто спозиционируейте position элементы со сдвигом, этого должно быть достаточно
Ivan
В моём случае там динамическое количество
Andrey Raih
Последний будет перекрывать предыдущий
Mykola Shevchenko
В таком случае нужно использовать индекс для вычисления смещения лево/верх
Ivan
Сейчас попробую, спасибо
Константин Бобров
можно ли как-то внутри изолята получить данные геолокации, и вообще это возможно?
Alex Wow
Коллбэк прокинь Первое что приходит на ум
Andrey Unger
Кто не спит в чатике, подскажите почему не получается задать опциональный аргумент для функции:
Andrey Unger
[
{
"type": "code",
"text": "void test(Future Function(String test, [String? test2]) fnc) {}\ntest((test) async {});"
}
]
Andrey Unger
[
"ругается на вторую строчку что должно быть ",
{
"type": "code",
"text": "test((test, [test2]) async {});"
},
""
]
Adel Gilyazeev
Опцтональный аргумент он тоже один из аргументов
Adel Gilyazeev
У тебя тут функция не того типа передаётся
Adel Gilyazeev
Я бы тоже ругался
Adel Gilyazeev
Указана что будет передана с опциональным аргументом, а в итоге приходит без него
?? ??????????????????????????
& за отсутствие формата
Adel Gilyazeev
Из другого изолята или чего?
Adel Gilyazeev
У тебя потому что и так исполнение всегда внутри изолята
Adel Gilyazeev
Изолят и есть исполнитель
Константин Бобров
запросил доступ к использованию жпс из основного и если все норм, то создается изолят и внутри него как отдельная программа полностью выполняется цикл: получил координаты -> отправил на сервер без обращения к основному изоляту. но я так понял, что это сделать невозможно
Константин Бобров
только начинается использование каких-либо библиотек, вылезает ошибка
Adel Gilyazeev
Так изолят создаёшь и туда ты пробрасывешь что? Нессириализуемый объект?
Константин Бобров
по идее хотел, чтобы изолят создавался только при условии выполнения всех условий. и внутри изолята создавались свои объекты, которые можно было бы использовать для получения координат пользователя
Константин Бобров
просто в данный момент моя работа с изолятами ограничена только запуском и проведением простых вычислений
Константин Бобров
знаний, в общем, не хватает
DennY.
а можно сделать в bottom navigation bar при нажатии что бы волна анимации расплывалась дальше чем просто вокруг иконки?
Константин Бобров
просто и так в главном изоляте сотни тысячи миллионы миллиардов запросов идет на сервер и вносить туда еще и геолокацию по таймеру плохая идея
Adel Gilyazeev
Смотри, изолят это как робот, он работает как ты ему указал, у него есть своё окружение, свой дом... И и свои инструкции и вот он заспавнился весь такой в серой коробке, он там чёт работает, у него инструкции подойти к одному окошку, взять то, в другое положить, у третьего ждать чего нибудь... И вот однажды, ему приходит задача получить джпс данные, он соответственно по инету заказывает себе модуль джипиэс, и как ему его доставляют, он обращается к всевышнему, чтобы рядом появился новый такой же робот, но всевышней не может их в одной коробке поместить и поэтому создаёт рядом новую коробку, а между ними щель чтобы они могли общаться посредством письма или звуков... И вот робот натыкается на инструкцию что этот модуль надо отдать тому второму, чтобы он с ним работал и данные в окошко передавал... Но вот не задача, через щель он не может передать этот джипиэс приёмник.. он давай описывать его, второму, передает схемы, пометки, кароч всё что нужно... А второй робот всё это получает и потом собирает стопку бумаг и кучу звукозаписей и потом ему приходит копия инструкций с пометкой что тебе надо начать выполнять вот с этого места инструкции... И вот он видит, над включить полученный джипиэс приёмник и его данные передавать в окошко номер три... Ну он подумал, подумал и понял что вот эта стопка бумаг и куча звукозаписей и есть джипиэс приёмник. Ну он взял их всех вместе и включил. И был доволен на всю оставшуюся жизнь. Пока не пришел великий уравнитель и не сделал SigTerm
Adel Gilyazeev
Как будто у тебя на все эти запросы мгновенные ответы...
Константин Бобров
ну там достаточно плотный трафик
Adel Gilyazeev
А программа его ждёт большую часть времени?
Константин Бобров
прошу прощения, не понял немного вопроса
Adel Gilyazeev
Ну у тебя изолят делает запросы и ждёт их выполнения и ничего больше? Или он там крипту рассчитывает по овер миллиард хешей между каждым запросом и проверкой пришёл ли ответ
admin
Парни, а у ConstrainedBox же нету параметра Color? Надо запихнуть его в контейнер, или как его покрасить то?
Adel Gilyazeev
Да в контейнер, ибо это просто коробка которая ограничивает.. она не влияет на рисовку, она лишь за геометрию отвечает
Константин Бобров
получение хешей заявок пользователей, сверка хешей (мелкое) но выполняется около 75-100 запросов. при этом если хеши не совпадают, то происходит полное обновление заявки (около 5к строк в json (вес не смотрел)). при этом периодическое обновление данных заявок (только некоторых (около 35-50)) и добавить еще отправку координат
Константин Бобров
longpoll запросы еще не сделали челы
Константин Бобров
поэтому трудновато в данный момент
Константин Бобров
хеши пока наколхозил на бэке, чтобы хоть данных меньше шло
Константин Бобров
ну лан, пока что вкорячу просто по таймеру из изолята (как заготовку) и буду торопить longpoll делать, попутно изучая изоляты
Adel Gilyazeev
У тебя небось всё это асинхронно и всё одновременно, да так что очередь на исполнение огромная?
Константин Бобров
пока что да. mvp переделываю...
Adel Gilyazeev
У меня так процессов много спавнилось... Ибо каждый архив я отправлял на распаковку через 7zip и ждал его завершения... Но когда в системе очень много процессов, то основная часть процессорного времени тратится на прерывания и переключение контекстов вместо действительно полезной работы, к тому же кеши чаще промахиваются и в итоге дикая просадка производительности
Adel Gilyazeev
Я не хотел конечно же менять логику программы, мол отправил на распаковку, тогда жди завершения, а не занимайся предварительными проверками можно ли или нет
Adel Gilyazeev
И сделал у функции распаковки виртуальную очередь исполнения, которая перетекала в реальный запуск процессов, но так шоб более энного количества процессов не было запущено одновременно
Константин Бобров
надо принять на вооружение. там есть категория, в которой 812 заявок, и, соответственно все надо получить и обновлять. при этом laze load не вариант делать, надо чтобы все были уже загружены для работы
Константин Бобров
эту систему не я придумал...
Adel Gilyazeev
А чё за платформа?
Adel Gilyazeev
Смартфоны?
Adel Gilyazeev
Или десктоп?
Madiyar Rakhman
Что за тип такой text/firebase.js
Madiyar Rakhman
На него вроде и ругается
Константин Бобров
смартфоны
Madiyar Rakhman
Типо он не может выполнить такой тип дока
Adel Gilyazeev
Печально... Значит ты там кого-то ддосишь? Ботнеты пишешь?
Madiyar Rakhman
Попробуй просто убрать type атрибут во всех подключениях библиотек firebase
Константин Бобров
хех, ну получается да. но пока никто приложением не пользуется. да и запросы на дев сервер идут.
Константин Бобров
хотя недавно школьники повесили нам сервер
Adel Gilyazeev
Меняй архитектуру, клиентское приложение, есть клиентское приложение, база данных это база данных, а сервер это связующие и преобразующие звено
Madiyar Rakhman
А зачем тебе показывать все 812 заявок? У тебя в экран же они не поместятся
Константин Бобров
так вот медленно меняю. у нас есть приложение, но оно на ионике, и на иос наполовину нерабочее. переношу в итоге все приложение на флаттер. хотя на ионике та же самая схема по запросам
Adel Gilyazeev
Что за запросы то такие?
Adel Gilyazeev
Где может быть необходимость отправлять беспрерывно запросы?
Константин Бобров
в заявках на ремонты инженерам и изменение заявок админами, которые могут каждую минуту что-нибудь менять
Adel Gilyazeev
Используй вебсокет соединение, клиент пусть подписывается на необходимые уведомления, а сервер присылает их если в этом есть необходимость... У меня так сделано... Тип клиент сообщает что вот сча я открываю такую папку, сервер отписывает его от слежки пред папки, отправляет данные клиенту новой папки и подписывается на события изменения этой папки у оси... Если в папке что-то поменяется, рост ось уведомляет мой сервак, а сервак уже отправляет уведомление клиенту с обновленным списком сущностей в папке и тем самым у клиента поддерживается актуальное состояние
Константин Бобров
так вот longpoll запросы будут готовы, буду на них ставить
Константин Бобров
тоже самое получается
Adel Gilyazeev
Я тебя прошу давать мне коробки, в которых есть два отдела, но во втором отделе не обязательно что-то должно быть... Ты даёшь мне коробку с одним заполненным отделом.... С всего отдним отделом
Adel Gilyazeev
Не тоже самое
Andrey Unger
это я понял, спс. А вот про формат что-то не вкурил
Константин Бобров
есть плагин какой, чтобы сделать постоянно висящее уведомление в шторке?
Константин Бобров
или это стандартными средствами делается какими-нибудь?
Adel Gilyazeev
Для Лонг пулл ты должен на каждый запрос держать по открытому подключению что означает один тип события, одно подключение... А в веб сокета можно запросы/ответы туда сюда гонять без разбора... Отправить хуеву тучу запросов на уведомлять о различных событий и в итоге у вас по одному соединению, а события происходят там пусть раз в секунду... И того лишь раз в секунду будут пакеты отправляться, а в Лонг пулл у тебя каждую секунду будет по одному подключению закрываться и тут открываться, при этом хуева туча подключений параллельно висеть будет
Adel Gilyazeev
Я как делал, у запроса есть айди, есть метод, у ответа же только айди, без метода, оба участника канала вебсокет ждут сообщений... Каждый накидывает обработчиков на методы, когда приходит сообщение с методом то выполняется соответствующий обработчик над полученным данными и он должен отправить ответ, а может несколько... Когда угодно.. главное чтобы айди был как у запроса. а запросы же отправляться с уникальным айди для соединения (по сути просто счётчик на номер запроса) и тут же возвращается фьючер с ответом, который подписывается на ответ с подходящим айди, либо стрим, который будет прокидывал дальше данные пакетов с этим айди, пока не придет закрывающий пакет...
Adel Gilyazeev
Я дико заебался реализовывать это на редаксе... К тому же редакс не советует хранить нессириализуемые значения, поэтому я всё переписал на Реакте контексте
Adel Gilyazeev
Но говна я поел знатно
Adel Gilyazeev
Зато клиенту всегда приходили все уведомления
Maxim Goncharov
Ты крутой
Константин Бобров
Хоть кто-то нормально объясняет... Спасибо, буду переписывать, чтобы сервер не падал
Константин Бобров
Бэк на loopback написан... Немного неудобен для чего-то кастомного
Adel Gilyazeev
Что его сеанс принудительно завершён кем-то, что его данные в базе кто-то изменил, что его ключ доступа изменился, что ещё что-то... Я сначала думал на такие вещи тоже делать типа запроса подписки, но в итоге потом сделал отдельный типа пакетов у которых был только метод без айди... Они были как уведомления и на них не ожидалось никаких ответов... Ибо в базе пользователей всегда был список за каждым пользователем об активных подключениях, и при изменение пользователя, всем вебсокетам отправлялось уведомление, кроме веб сокета которое спровоцировало это изменение... Например пользователь со смартфона изменил имя своего профиля... И ему на этот смартфон уведомление не надо отправлять, а вот на другие устройства надо.... А то вдруг это не один и тот же пользователь под одним аккаунтом)))
Adel Gilyazeev
Да и ответы могли быть ошибками, рядом с айди и полезной нагрузкой, был код ошибки... И тогда фьючерс закрывался исключением
Adel Gilyazeev
Я эту систему недели изобретал и улучшал... И сделал чтобы не только поверх WebSocket работало а ещё и поверх межизоляторного порта... И стало удобнее...
Adel Gilyazeev
Особенно когда у тебя очень много этих изолятов и не известно кто из них точно, какие данные имеет (например тот же вебсокет у какого изолята)
Adel Gilyazeev
Отправляешь всем уведомления, а они там у себя в базе ищут и если находят то ему дальше пробрасывают сообщение, иначе просто гнорят
Vadim
Приветствую всех, подскажите, может что не вкурил. Использую firestore, есть коллекция с документами в которых поля к примеру "отдаем" и "получаем". Нужно извлечь документы по запросу у которых: отдаем=рубли ИЛИ получаем=рубли Но вроде как через where нельзя ИЛИ по двум полям сделать. Есть решения какие-то кроме двумя раздельными запросами и объединением в один результат? Можно без примера кода, просто ткните что искать хотя бы, очень благодарен за любые варианты
Adel Gilyazeev
Where можно использовать на документ (массив полей), а массив полей проверять через any,
Adel Gilyazeev
Тогда получишь документы у которых хотябы одно поле подходит под твоё условие
Adel Gilyazeev
А там бд, или чёт ещё... Сорян, я лесом....
Vadim
т.е. над полями сделать родителя имеете ввиду, а их как массив?
Adel Gilyazeev
Какие запросы мы можем делать?
Adel Gilyazeev
Можем ли получить доступ ко всем данным без запросов?
Adel Gilyazeev
В каком виде эти данные
Vadim
вы меня подтолкнули на поиск информации по поводу поля, в котором массив и вроде через "arrayContains" моя проблема решается, но это все же из двух полей одно сделать получается..
Adel Gilyazeev
Получай два поля в виде массива [отдаем, получаем].contains('рубли')
Adel Gilyazeev
Документы.where
Vadim
спасибо за наводку :)
H P
Кто может подсказать что в этом коде не правильно ?
H P
ошибок нет но запрос не выполняет
Алексей Александрович
debugger *существует*
nikto _b
Открой консоль разработчика Там сто проц будет агрить на CORS
H P
консоль разработчика это debug console ?
nikto _b
Консоль разработчика в хроме
Алексей Александрович
перезагрузите страницу
H P
это сама ошибка я так понял )
nikto _b
На этот момент getProjectUsers вызвался?
nikto _b
Да, я о том выполнился ли запрос
H P
Должен был ) как могу проверять
nikto _b
Отладчиком или логами проверять, как ещё...
H P
первый раз пытаюсь конектить )
Oleg
Привет! Может кто подскажет, 1) Flutter, нужен для проектов, где нужна скорость разработки? Для использования полного функционала операционных систем, это kotlin и swift? 2) Есть ли у Flutter различия в пользовательском опыте и интерфейсе по сравнению с нативными языками?
Yakov K.
Всем привет! Какими решениями для стейт-менеджмента пользуетесь? Я для себя уже сделал выбор, хотел бы услышать чем пользуется сообщество.
????
Hi. Provider, BloC, MobX, Redux so on and so forth
????
[
{
"type": "link",
"text": "https://youtu.be/xrsBzy15V0A"
}
]
|