Программирование : Dart & Flutter по-русски
Dart & Flutter по-русски
Программирование : Dart & Flutter по-русски
Vadim Uzbekov
Всем привет, есть ли флаттере возможность вызвать диалог установки сертификата? В android sdk есть метод KeyChain.choosePrivateKeyAlias, а что на флаттере, не могу понять
admin
Вот что пишет VS Code
admin
[
"А тут он говорит, что не может обновить дарт, потому что у меня ",
{
"type": "bold",
"text": "уже"
},
" 2.8.1"
]
Artur
Тут он ничего такого не говорит. Покажи логи
Artur
Логи в chokolatey.log
admin
Это логи chocolately
admin
А, ну вот, это они, да)
Artur
Посмотри в самом конце какая ошибка
Artur
Или удали лог и заново запусти обновление
admin
Ну он там пишет, если по-русски "ваша версия 2.8.1 и так уже самая последняя")
admin
[
"Но если написать ",
{
"type": "code",
"text": "dart --version"
},
", то грит 2.4.0"
]
Nikita Domnitskii
А флаттер не стоит?
Artur
Мож это плагин старый?
Nikita Domnitskii
[
{
"type": "code",
"text": "flutter doctor"
},
" чо говорит"
]
Artur
Сейчас у себя посмотрю
Artur
Ну попробуй установить плагины для Студио
Nikita Domnitskii
[
"на винде нету аналога ",
{
"type": "code",
"text": "which"
},
"?"
]
Денис
Кто нибудь пробовал signInWithApple на андроиде?)
Денис
Вообще это должно работать)
Nikita Domnitskii
у тебя в пути какой-то не тот бинарник может
admin
[
"А на ",
{
"type": "code",
"text": "dart --version"
},
" тебе шо пишут?"
]
Nikita Domnitskii
PATH свой покажи
Artur
Command not found пишут)
admin
Во-первых, есть вот это, но это ещё не Path
admin
В Path есть вот такое
Nikita Domnitskii
виндопроблемы ???>?
admin
Что интересно, тут есть файл с текстом версии ??
admin
А есть между 2.4.0 и 2.8.1 какие-то изменения, которые можно было бы понять по коду? Например, поддержка каких-то конструкций...
Artur
Да вроде ничего особого
Artur
Обновился то он до 2.8 10 дней назад
Artur
А до этого 2.6 был тоже не очень долго
admin
Зашёл я в "Установка и удаление программ", удалил Dart, проверил в консоли — теперь у меня 2.8.1
admin
Интересно, что теперь все пути, прописанные у меня в Path касательно дарта, не существуют...
admin
Но раз уж всё работает...
admin
Хреново, в Windows нет which
Artur
Спасибо Биллу Гейтсу за наше тяжелое детство
admin
Ничего, после чипирования всё будет работать
Artur
Михалков ерунды не скажет
admin
Он был всё это время по адресу C/tools
Kirill Aparin
[
"Всем привет, \nесть такой код, хочу чтобы при изменении информации на сервере я сразу получал ответ, как так сделать? \n\n",
{
"type": "pre",
"text": "answer(_context) async {\n try {\n response = await http\n .get(widget.url + 'text', headers: {\"Accept\": \"plain/text\"});\n setState(() {\n print(response.body);\n });\n } catch (e) { \n print(e);\n }\n }",
"language": ""
},
""
]
Kirill Aparin
Типо Listener
admin
Реалтаймово что-ли?
DVS (Read The F.ng Manual) Studio (NoHello)
websocket SSE
admin
Наверное тут нужен websocket...
Artur
http.get().listen((data){ print data})
Kirill Aparin
А ссылку можно
Kirill Aparin
Я это попробую
Artur
Если это стрим, конечно
???????
У тебя 3 варианта как это сделать
Kirill Aparin
Как сделать Stream
???????
1) Websocket 2) HTTP/2 3) Long polling
Kirill Aparin
Какой выбрать?
???????
yield если генератор Stream.value() если прост
admin
Боюсь, HTTP/2 не умеет в инициацию запроса от сервера ??
???????
Самый новый и интересный - http/2 - но можешь не потянуть, если задаешь такие вопросы
DVS (Read The F.ng Manual) Studio (NoHello)
SSE главное установить соединение с клиента и ждать
???????
websocket'ы также не самая простая штука в обращении.
Павел
у сокетов есть защита по обрыву соединения?
Artur
В общем, просто оставь эту затею))
DVS (Read The F.ng Manual) Studio (NoHello)
можно ручками дописать
DVS (Read The F.ng Manual) Studio (NoHello)
[
"или есть ",
{
"type": "link",
"text": "socket.io"
},
"\nв нем есть защита и fallback'и"
]
Павел
я один проект еще на РН сделал на сокетах, потом понял, что ненадежно все это и применил в следующем полинг
Kirill Aparin
Остаётся Long polling
???????
Делай лонг поллинг
???????
Это самое простое из перечисленного
Kirill Aparin
Ща поищу хороший example
Павел
и вот сейчас тоже на пуши нет надежды. нет гарантии доставки
Павел
так что только лонг полинг и хранит в стейте
???????
Не прям примитивная штука, но делается даже на синхронной императивщине
???????
Если бэк делаешь не ты, то вообще изи
???????
Просто примитивный бесконечный цикл с таймаутом в 120 секунд
Artem Osipov
классная добавка)
Vadim Lukichev
Есть. Механизм PING-PONG.
Павел
а что будет отдавать либа?
Павел
надо смотреть конечно, может и стейт какой есть у нее
???????
Короче, готовься попотеть. Сервер-клиентский вызов это достаточно хитро)
Павел
кстати в копилку полинга - сокеты то батарейку жрать будут
???????
А висящий http запрос в бесконечном цикле - не будет?)
Vadim Lukichev
[
"Какая либа? В дарте стандартный ",
{
"type": "link",
"text": "dart.io"
},
", сокеты же поверх HTTP работают."
]
Павел
а просто полинг не?
???????
Или там не надо будет предусматривать обрыв соединения например?)
Павел
я так как фулстэк сделал на последнем проекте что-то типа журнала. На бэке храню данные с последнего полинга и отдаю только свежак
Vadim Lukichev
Это обычное TCP соединение, если не надо чтобы батарейку жрали «пинг-понги» можно отключать в фоне
Павел
если отключать в фоне - смысл реалтайма уходит
Павел
а полинг аккуратно раз в минуту, пять, час
???????
Идею взаимодействия с лонг поллингом достаточно подсмотреть у телеграма
Vadim Lukichev
Так надо связь мониторить или нет?)) Интервал пинг-понга задается программно.
Павел
я подключил connectivity
???????
А реализовать прям по вумному-вумному, тут, наверн, брокер сообщений подключать нужно.
Павел
но у меня задача реалтайма жесткого была только раз, поэтому пока не актуально вебсокеты
Павел
там да только они без вариантов
???????
У меня лонг поллинг был для предпологаемых длительных заданий. Задание помещалось в очередь, если не было готово за 120 секунд - возвращался 301 с идентификатором
???????
ну и до бесконечности.
Vadim Lukichev
[
{
"type": "link",
"text": "socket.io"
},
" использует polling как фоллбэк, если платформа не поддерживает нормальные websocketы. Имхо вебсокеты вполен устоявшаяся технология."
]
???????
также проверялось вообще наличие задания по id
Павел
можно и попробовать начать
Павел
[
{
"type": "link",
"text": "socket.io"
},
" это нодовское?"
]
???????
сокеты красота, особенно в дарте
Kirill Aparin
У кого-нибудь есть ссылка на Long Polling Flutter
Kirill Aparin
Кажется гугл прячет от меня
???????
флатер вообще тут не при чем
Vadim Lukichev
мультиплатформенное
Павел
мы же уже решили за тебя - ставь сокеты
Vadim Lukichev
Я нодовскую использовал до этого.
???????
там все на стримах будет
Kirill Aparin
Как поставить сокет смотреть онлайн и без регистрации?
???????
бэк ты пишешь или нет?
Kirill Aparin
Я отправляю с Arduino на сервер разные данные, получается я и для Arduino код пишу и для приложения
Kirill Aparin
Как такого сервера нет
Kirill Aparin
Есть IP к которому подключается ардуинка и шлёт туда инфу
???????
сервер ты написал или нет?
Vadim Lukichev
для таких задач с arduino вроде есть замечательные и легкие реализации MQTT
???????
уноси свою простыню
Kirill Aparin
Это то что я написал
Evgenii Elchev
Ну я то добавлю. Другие нет)
Kirill Aparin
Я хз, что с сервером
Kirill Aparin
есть ссылки?
???????
Ну сервер то тебе нужен для реализации того що ты хочешь энивэй)
???????
И да, удваиваю вадима
???????
Звучит как будто тебе нужен брокер
Павел
[
{
"type": "link",
"text": "https://socket.io/"
}
]
???????
И да, готовься страдать) Но это очень нужные страдания)
Kirill Aparin
По сути мой сервер создаётся на стороне android, а esp к нему конектится и делает на определённом IP папку, куда суёт данные
Vadim Lukichev
есть реализации и на Java
???????
Так ты определись, кто у тебя сервер, а кто клиент
???????
То андроид клиент, то сервер у тебя
???????
Определись уже наконец
admin
Я хочу создать массив произвольной длины и заполнить его целыми числами от 1 и до конца. На JS сделал бы это вот так. Как это можно сделать на dart?
???????
Если он у тебя сервер - то обычный вебхук принимать. Клиент-серверный вызов это проще некуда.
Олжас Сулеймен
List .generate
Vadim Lukichev
только если погуглить. arduino mqtt dart mqtt mqtt это один из самых популярных протоколов для передачи данных для embedded вещей
???????
Это если и то и то клиент)
???????
Надо для начала чтоб он сам понял, кто у него сервер, а кто клиент.
Kirill Aparin
Я хочу, чтобы мой ESP модуль подключался к Wi-Fi, домашнему скорее всего, и android тоже к нему подключался, получаются они оба клиента, и в то же время эти два клиента между собой обмениваются информацией
Vadim Lukichev
да, точно сервак то должен быть в каком-то виде. Но, иначе зачем просто соединение между девайсом и телефоном, а если надо тут надо от задачи плясать, может на само деле поллинг или сокеты
???????
ну или если у него вместо "сервера" старый андроид в тумбочке на зарядке
???????
то просто вебхук на определенный ip
Kirill Aparin
я так и хочу
Kirill Aparin
Вебхук на IP
???????
ну так и поднимай банальный httpserver на дарте
???????
и шли ему какие хошь уведомления
???????
тут вообще 0 проблем
Kirill Aparin
Именно этим и был мой первый вопрос
Kirill Aparin
Как так сделать
???????
[
"Пиздишь\n",
{
"type": "link",
"text": "https://t.me/rudart/193213"
},
""
]
Kostya Tsymbaliuk
есть вопрос, можно ли обновлять состояние вложенного виджета в родительском виджете с сохранением его в бекстек? Например Виджет родитель - в нем вложен чаилд А при клике на какуюто кнопку меняется структура на Виджет Родитель - в нем вложен чаилд Б При тапе назал сначало возврат Чаилда А, при следующем тапе назад выход или тут надо кастомный бекстек пилить?
Павел
это в терминах вебсокетов тоже есть. типа приватных сообщений
Павел
без участия сервера
Павел
просто подымешь вебсокет сервер где-то
???????
его телефон и есть сервер
???????
нинад ему ни сокетов, ничего вообще
???????
И да, если и "сервер еще где то". То в контексте задачки вадим абсолютно правильно сказал - mqtt
Kirill Aparin
А если у меня связь через модем домашний, то mqtt?
Павел
ознакомился с mqtt интересно
Vadim Lukichev
[
{
"type": "link",
"text": "https://pub.dev/packages/mqtt_client"
},
"\nВот можешь поднимать свой умный дом хоть локально, хоть на облаках)"
]
???????
модем не есть сервер)
???????
Это будет настолько большой аутизм - насколько только возможно
???????
Даже микротики себе такого извращения не позволяют
Павел
это разеделние труда
???????
не говоря уж про ваши васянопрошивки на китаедевайсах
|