Программирование : Dart & Flutter по-русски
Олжас Сулеймен
только берете первое
Олжас Сулеймен
со стримами работали?
Dmitry Bubnenkov
да вчера с ними разбирался и уже что-то получилось
Олжас Сулеймен
ReceivePort имплементирует Stream
Олжас Сулеймен
first тот же что и в стримах
Dmitry Bubnenkov
[
"А точно можно данные выгребать вот так:\n",
{
"type": "pre",
"text": "await for (var msg in receivePort)\n {\n print(\"$msg\");\n }",
"language": ""
},
"\n\nПросто у меня ничего не напечаталось"
]
Олжас Сулеймен
а что и как отправляли?
Олжас Сулеймен
[
{
"type": "mention",
"text": "@bunopus"
},
" spam"
]
Dmitry Bubnenkov
[
"блин, туплю. не могу понять откуда данные выгребать в данном случае:\n\n",
{
"type": "pre",
"text": "main() async\n{\n ReceivePort receivePort = ReceivePort();\n Isolate.spawn(echo, receivePort.sendPort);\n \n sendPort.send(\"message from root\");\n}\n\necho(SendPort sendPort) async\n{\n ReceivePort receivePort = ReceivePort();\n \n await for(var msg in sendPort)\n {\n print(msg);\n }\n\n}\n",
"language": ""
},
"Вот приняли мы в ",
{
"type": "code",
"text": "echo"
},
" порт с которого была отправка. Теперь мы к нему за данными можем обращаться?"
]
Олжас Сулеймен
import 'dart:isolate'; Future main() async { ReceivePort receivePort = ReceivePort();
var isolate = await Isolate.spawn(echo, receivePort.sendPort);
await for (var msg in receivePort) { if (msg == 'exit') { isolate.kill(); receivePort.close(); } else { print(msg); } } }
Future echo(SendPort sendPort) async { await Future.delayed(Duration(seconds: 1), () { sendPort.send('hello'); });
await Future.delayed(Duration(seconds: 1), () { sendPort.send('world'); });
await Future.delayed(Duration(seconds: 1), () { sendPort.send('exit'); }); }
Олжас Сулеймен
данные обычно получают из изолята
Dmitry Bubnenkov
[
"А в каких случаях надо вот так делать:\n",
{
"type": "code",
"text": "Stream receivePortStream = receivePort.asBroadcastStream();"
},
""
]
Олжас Сулеймен
если вы хотите подписать несколько слушателей
Олжас Сулеймен
[
{
"type": "pre",
"text": "var stream = receivePort.asBroadcastStream();\n\n stream.listen((dynamic msg) {\n print('1: $msg');\n });\n\n stream.listen((dynamic msg) {\n print('2: $msg');\n });",
"language": ""
}
]
Dmitry Bubnenkov
Тоесть одно и тоже сообщение дважды получить?
Олжас Сулеймен
нет, одно сообщение получат все текущие слушатели
Dmitry Bubnenkov
А в твоем примере слушатель может быть именнованым?
Dmitry Bubnenkov
[
"И какая разница между:\n",
{
"type": "pre",
"text": " await for(var msg in receivePort)\n {\n print(msg);\n }",
"language": ""
},
"\n\nи\n\n",
{
"type": "pre",
"text": " receivePort.listen(\n (data) {\n print(\"received: $data\");\n },\n onDone:() {\n print(\"done\");\n }\n );",
"language": ""
},
""
]
Denis Dubov
????Ребят у меня вопрос а кто как решает проблему внешнего вида приложения если нет дизайна, кто как подбирает цвета?
Aleksey
используешь цвета по умолчанию, а потом пачку скриншотов отдаешь знакомому дизайнеру с просьбо сделать чтобы было не вырвиглазно
Maxim Papier
[
"Удобно пользоваться этой штукой ",
{
"type": "link",
"text": "https://material.io/tools/color/#!/?view.left=0&view.right=0"
},
""
]
Denis Dubov
последнее слово круто звучит!! этоправда
Denis Dubov
вот это круто спс. на этом можно остановиться даже??
Maxim Papier
[
"Вот ещё ",
{
"type": "link",
"text": "https://color.adobe.com/create"
},
""
]
Семён undefined
лично я ручками подбираю, выглядит неплохо
Denis Dubov
это правда выглядит хорошо
Олжас Сулеймен
Почти никакой
Vasily Laushkin
Да, с таким вкусом и дизайнер не нужен. :)
Семён undefined
так я и есть дизайнер, лол
Семён undefined
вообще, связка дизайнер-программист — идеальна
Яўген
Прошу прощения, вы еще не у компа?
Яўген
Передавайте ему привет от всего сообщества программистов))
Maxim Papier
[
"Как серийный отец рекомендую от шума ",
{
"type": "link",
"text": "https://www.brain.fm/"
},
" не знаю как, но это работает."
]
still No satori?
Либо наушники с noise cancelling
Dmitry Bubnenkov
[
"Я правильно понимаю, что следующая программа зависает (ничего не делает) т.к. она ждет от изолята какой-то сигнал, чтобы метод toList отработал:\n",
{
"type": "pre",
"text": "main() async\n{\n \n ReceivePort receivePort = ReceivePort();\n Isolate.spawn(echo, receivePort.sendPort);\n \n var d = await receivePort.toList();\n print(d);\n}\n\necho(SendPort sendPort) async\n{\n ReceivePort receivePort = ReceivePort();\n sendPort.send(\"message\");\n}",
"language": ""
},
""
]
DVS (Read The F.ng Manual) Studio (NoHello)
[
"чем отличается от ",
{
"type": "link",
"text": "https://mubert.com/"
},
" ?"
]
Maxim Papier
Не очень хочу тут оффтопик разводить, но Муберт просто генерированная музыка, а эта генерированная под особые нужды: фокус, релакс (power nap) и так далее. Рекомендую затестить, так как лично я пользуюсь уже два года сервисом для фокуса и быстрого сна днём — для меня это работает.
DVS (Read The F.ng Manual) Studio (NoHello)
а. ок. спасибо
Dmitry Bubnenkov
А какой сигнал надо отправить? Методов у send не вижу подходящих
Олжас Сулеймен
Не нужно закрыть сам receiveport
Dmitry Bubnenkov
[
"Не помогло:\n",
{
"type": "pre",
"text": "main() async\n{\n ReceivePort receivePort = ReceivePort();\n Isolate.spawn(echo, receivePort.sendPort);\n \n var d = await receivePort.toList();\n receivePort.close();\n print(d);\n}\n\necho(SendPort sendPort) async\n{\n ReceivePort receivePort = ReceivePort();\n \n sendPort.send(\"message\");\n}",
"language": ""
},
""
]
Aleksey
[
"интересная статья ",
{
"type": "link",
"text": "https://m.habr.com/ru/post/459757/"
},
""
]
Влод
> Язык молод, активно развивается и надеюсь…
Влод
можно посмотреть на текущий статус dartz и забить на фп
Anton ?? ? ??
Раскрой мысль
Влод
ну тип язык становится более строгим, а типы лучше не делают
Влод
и типы это не рокет сайнс для разрабов языка это просто приоритеты чтоб язык был попроще
Anton ?? ? ??
Что такое dartz? И после второй версии языка с типами стало проще
northelks
[
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/35108"
}
]
northelks
In IOS when you use camera to take a photo, it rotates.
northelks
была (есть) ли у кого такая проблема?
(;?_?) Ivan Zhuravlev ???>?
похожую проблему показали на днях в демоприложении на андроид эмуле. но суть, имхо, сводится к тому, что дальше у фотки exif не читается
(;?_?) Ivan Zhuravlev ???>?
как вариант можно после фото посылать в crop_image плагин что б там уже кропали и вертели
northelks
ну повернуть я то могу..)
Яўген
Почему SystemChrome не работает?
northelks
просто пытаюсь понять, как пофиксить локально так, чтобы потом снова не пришлось переделывать, когда они пофиксят.. если это конечно баг
Anton ?? ? ??
Не работает на айоси ток
(;?_?) Ivan Zhuravlev ???>?
ну я же тебе говорю. изображения делаются одинаково в айфоне. просто у них указывается в exif данных в какую сторону их повернуть что бы они выглядели так, как задумано фотографом
Яўген
на андройде тоже, вначале прилажки стоит и работает, теперь нет....
(;?_?) Ivan Zhuravlev ???>?
и либо ты сам берешь и читаешь exif сделаной фотки и поворачиваешь физически невзирая на exif
Яўген
у меня разные цвета, и на некоторых экранах нужно менять цвет икконок
(;?_?) Ivan Zhuravlev ???>?
либо ждешь пока виджеты\плагины что ты там пользовать хочешь, начнет учитывать поворот из exif
northelks
а что случилось в поведении камеры не знаешь? они что-то спецом убрали/поменяли?
northelks
ясно, ну exif я уже читаю и уже поворачиваю
northelks
просто это немного даёт задержку в поведнии
(;?_?) Ivan Zhuravlev ???>?
в душе не чаю что случилось. а из коммента в issue тоже не понять где именно у них подвох. я даже не могу предположить стандартную они камеру юзают или кастомную
(;?_?) Ivan Zhuravlev ???>?
последняя версия прошивки или нет
(;?_?) Ivan Zhuravlev ???>?
так что забей на них
northelks
ясно, хрень какая-то)
northelks
на андроиде всё норм
(;?_?) Ivan Zhuravlev ???>?
как я сказал. либо крутишь сам картинку, либо дай пользователю возможность самому
northelks
ну нужно крутить, потому что ты видишь на камере при фотографировании одно, а потом когда эта фотография показывается, она уже перевёрнута
Яўген
стоит добавить аппбар, как цвет иконок меняется....
(;?_?) Ivan Zhuravlev ???>?
[
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/10533"
}
]
northelks
да, тоже это нашёл
northelks
там уже немного подзакидали ишьюами по этой теме для ios
(;?_?) Ivan Zhuravlev ???>?
ну а стоит ли решать его своими силами - эт тебе решать
northelks
думаю вопрос риторический..)
northelks
сделать то нужно сейчас
(;?_?) Ivan Zhuravlev ???>?
???>?
northelks
от камеры приходит CameraLensDirection с уже sensorOrientation = 90
northelks
лан, буду крутить)
northelks
ну, жизнь такая.. непредсказуемая))
Dmitry Bubnenkov
А паттерн bloc является сейчас самым актуальным? Или что-то есть свежее?
northelks
флаттер тим топит нынче за provider
northelks
(блок оказался слишком сложным для людей, если перефразировать их слова с последней конфы)
northelks
это не есть плохо)
northelks
каждый выбирает что ему ближе по душе
Влод
в итоге чтобы обеспечить конкурентоспособность ты должен будешь знать все
Влод
и суметь хотя бы умело соврать что работал с тем на котором пишут в тиме куда устраиваешься
northelks
зачем? главное показать/убедить, что ты умешь быстро учиться
northelks
это одно из обязательных критерий хорошего разработчика
Dmitry Bubnenkov
а паттерны меняются т.к. подходы эволюционируют и сам язык?
Dmitry Bubnenkov
Просто в Vue есть Vuex и по слухам все счастливы
Dmitry Bubnenkov
Provider проще чем block?
northelks
нашёл простой лайфхак - RotatedBox (= 0 или 1) + сравнение width и height картинки ??
(;?_?) Ivan Zhuravlev ???>?
???>?
Ярослав Капустин
Была завялена возможность утсановки апк приложений)) У них вроде немного другой компилятор, но сути это особо не изменит)
Яўген
В итоге ничего не поменялось. Мне ведь нужно, что бы верхняя линия не была видна. Когда я ее пытаюсь убрать, вылазят конфликты, исходящие из того, что назначать бордерам разные характиристики и при этом закруглять углы - нельзя...
Яўген
самая верхняя borderside - я там пытался прописывать и белый цвет (на белом фоне не было бы видно) и width 0, и всегда, когда я что-то менял вылетала ошибка. А вот этот код, на скрине, единственный рабочий....
Яўген
То есть, если я вот так прописываю - ошибка
Яўген
Если уж совсем просто - вот чем мне нужно. Красным пунктиром выделено то, что мне не нужно. Спрятать, убрать, что угодно....
(;?_?) Ivan Zhuravlev ???>?
а Colors.transparent не помогает?
Яўген
да вообще ничего, я покапался и там на задворках комментарий - мол, для того, что бы задат радиус углам, все бордеры должны быть однородными...
Яўген
может какой-то другой виджет юзать? Или только кастом писать? Я то в кастом не умею...)
Fearless Cry
вы покажите полную разметку
Fearless Cry
чтобы понимать чт овам нужно
still No satori?
есть какая то опция, показывающая как в VScode где не хватает закрывающей скобки в Андроид Студио, пошоркал на маркете, ничего похожего не нашел
(;?_?) Ivan Zhuravlev ???>?
но скобки же нехватает не там, где студия показывает
still No satori?
а вот то красное подчеркивание?
(;?_?) Ivan Zhuravlev ???>?
но это же жс. вы покажите что в студии и дарте оно так же работает
(;?_?) Ivan Zhuravlev ???>?
вообще андроид студия показывает красной волной и справа красны блоки
(;?_?) Ivan Zhuravlev ???>?
если на блок справа навести - он скажет в чем ошибка
(;?_?) Ivan Zhuravlev ???>?
вот если присмотреться - видно
(;?_?) Ivan Zhuravlev ???>?
???>?
(;?_?) Ivan Zhuravlev ???>?
всё есть искаропки
still No satori?
хм, может настройка какая
still No satori?
вот допустим я удалил снизу все скобки абсолютно
still No satori?
если навести на ошибку он предлагает какую то хню, типа точку с запятой
(;?_?) Ivan Zhuravlev ???>?
ну справа-то на красные блоки наведите
(;?_?) Ivan Zhuravlev ???>?
там будет про )} кавычки. и там же топорным методом глядя на эту ошибку можно достроить кавычки. если самому сложно их раскидать
(;?_?) Ivan Zhuravlev ???>?
а вообще, лично я, что бы не ковыряться с тем "где же кавычка потерялась" стараюсь запятые после последних аргументов оставлять
Anton ?? ? ??
Так провайдер и блок это про разное же :? Провайдер это DI, а блок Стейт менеджер
(;?_?) Ivan Zhuravlev ???>?
тогда студия форматирует всё красиво и сразу видно где начало и конец
still No satori?
достраиваю руками, просто неудобно туда сюда мотать вверх вниз, думал может есть какое то плагин, аля автоматом закрывающий все скобки
(;?_?) Ivan Zhuravlev ???>?
ваш плагин это ctrl+alt+l
Anton ?? ? ??
Ну эт не мои слова, правда, сам я временно использую тупа презентор
(;?_?) Ivan Zhuravlev ???>?
и что бы потом не смотреть на вот эти ))))))) , в раздумьях где же забыта кавычка
(;?_?) Ivan Zhuravlev ???>?
ставятся запятые и всё выглядит красиво и сразу видно где закрылось
still No satori?
в смысле? запятые то ставятся, просто быват отвернешься и нечаянно нажмешь что и поди ищи потом, оно почему то сразу не показывало
(;?_?) Ivan Zhuravlev ???>?
ну вот я смотрю на этот кусок кода. и я бы после fontFamily тоже поставил запятую . тогда скобка ушла бы красиво вниз
(;?_?) Ivan Zhuravlev ???>?
???>? на вкус и цвет все фломастеры разные
still No satori?
Эту боль надо просто принять видимо после vscode
(;?_?) Ivan Zhuravlev ???>?
ну так никто же не принуждает. не принимайте. пользуйте дальше вскод
still No satori?
к сожаланию не могу, все делаю по тутору и не хотелось бы отходить далеко от мастера
(;?_?) Ivan Zhuravlev ???>?
вскод+флаттер так же поддерживаются как и андроид студия. не вижу причин делать 1:1 как в руководстве, если это вызывает у вас такие болезненные ощущения
(;?_?) Ivan Zhuravlev ???>?
???>? но страдать или нет это ваш выбор
Kherel
[
"flutter_bloc обновился, если кто использует\n",
{
"type": "link",
"text": "https://medium.com/flutter-community/whats-new-in-flutter-bloc-0-19-0-bf58a7154661"
},
""
]
still No satori?
Как говорится, ежики плакали, кололись, но..на этом прекращаю флудить. Спасибо за помощь
Kherel
[
"использую ",
{
"type": "link",
"text": "https://calmyleon.com"
},
" очень помогает"
]
Anton ?? ? ??
А есть че-нибудь прям бесплатное? И чем хуже плейлисты фокус от епл мусик?
still No satori?
[
{
"type": "link",
"text": "https://open.spotify.com/user/11148854433/playlist/1rH0O1bHo3pUXgwGscnRVA?si=pDTR5cW6RJaVUQv4l1IMrQ"
}
]
(;?_?) Ivan Zhuravlev ???>?
[
{
"type": "link",
"text": "rainymood.com"
},
" + я.музыка"
]
Kherel
[
"ну это бесплатное + есть от этого же чувака ",
{
"type": "link",
"text": "https://mynoise.net/NoiseMachines/thunderNoiseGenerator.php"
},
", это более старое, мне тоже нравится, его слушал раньше, и сейчас по настроенению. а вот первое, вообще работает хорошо, иногда можно включить и 3-4 пропадает из жизни. легко уйти во флоу"
]
Anton ?? ? ??
То шо нужно, пасиб
Elizaveta Anisina
led zeppelin?)
Kherel
Мне кажется, внешний вид самое главное. Я вообщем-то бедный безработный разработчик, перебивающийся случайными заработками. Но заметил, что люди вообщем-то относятся к своей работе халатно. Т.е. никто не смотрит твой код при приеме на работу. Думаю, так потыкают туда сюда на гите, 40 секунд. По скролят твое резюме. Вопросы чаще всего задают те на которые знают сами ответы, просто чтобы показать, что они что-то знают и не зря едят свой хлеб. С другой стороны, внешний вид приложения... если оно клевое, оно клевое. С этим не возможно спорить. Это не возможно отрицать. Тоже самое заказчики, им все равно что ты разработчик, они оценивают тебя исходя из того, нравится ли им твои предыдушие работы или нет. Если работы выглядили серо, так же они будут думать и разработчике, хотя возможно, разработчик идеально восоздал серый дизайн дизайнера. Вообщем... Цвета можно гуглить просто типа аля trending color scheme 2019. Плюс не сложно выработать в себе насмотренность, насмотренность, это такое искуственное чувство стиля, когда ты просто смотришь на дрибле 3 дня подряд картинки, а потом можешь сказать, вот это решение стильное, модное или нет... я подписан на uimovement и uplabs, первые шлют подоборки решений в основном анимация, у вторых есть раздел челендж, там можно часто скачать бесплано. Просто выбираешь что тебе по вкусу из залайканных решений, и делаешь. Еще один вариант, это красть. У многих крупных сайтов с хорошим дизайном типа stripes sketch discord есть разделы не популярные, какойнибудь блог, или комьюнити, о нас и т.д. Обычно это другие сайты, но у них тоже приличный дизайн, но не похожий на главный, думаю в такие разделы никто не ходит на самом деле, кроме тех кому по настоящему надо, можно смело скопировать дизайн решения. Ну и плюс, если эти подходы можно миксовать.
Denis Dubov
Совет насчет просмотреть на прекрасное во многих мнениях совпал, наверное так оно и есть.
???????
[
{
"type": "mention",
"text": "@bunopus"
}
]
Maxim Papier
[
"Про дизайн. Для вдохновения рекомендую: ",
{
"type": "link",
"text": "https://dribbble.com/shots/popular/mobile"
},
" — бесконечный кладезь идей"
]
northelks
[
{
"type": "link",
"text": "https://pub.dev/packages/auto_orientation"
}
]
northelks
если кому нужна либа для работы как в андроиде, так и в айос
northelks
[
"(p.s. ",
{
"type": "code",
"text": "SystemChrome.setPreferredOrientations"
},
" в айосе не работает)"
]
Sergey
Когда ждать релиза Flutter for web???????????
Fearless Cry
Тогда же когда и Flutter for desktop наверное
Fearless Cry
Ставлю на никогда
Sergey
Не нашел такой даты в своем калькуляторе
Fearless Cry
Листай дальше
Юра
Vue/React ты имел в виду?))
Григорий Коваленко
Думаю что вэб выйдет раньше десктопа
Григорий Коваленко
Все таки дарт компилился изначально в js, да ещё есть wasm
Влод
давно не было новостей на этот счет?
Fearless Cry
Просто это ГуГл
Fearless Cry
Было бы неплохо для начала чтобы флаттер не закрыли в ближайший год
Karen
Не закроют конечно. Будто они закрывали растущие и популярные проекты
Fearless Cry
Android Things
Fearless Cry
Вопрос к знатокам блока. Как мне реализовать обработку одноразового события в UI (например, в приложении калькулятора нажали кнопку = и всё должно красиво заанимироваться и вывести ответ, по идее через стейт это делать не вариант?) ?
евгений
Привет, можно ли используя стандартную библиотеку, и вообще, использовать для соединения прокси?
Elizaveta Anisina
Не могу понять, почему не подтягиваются зависимости и вылетает вот это --no-color packages get Подскажите, пожалуйста
Danny
никто не знает, как в Map засунуть много значений с одинаковым ключом?
Nikolay
Подскажите нормальную орм для работы с бд, floor хорош только он не поддерживает embedded объекты
Влод
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/quiver.collection/Multimap-class.html"
}
]
Влод
но в целом хз зачем он нужен
Danny
По сути этот мультимап и искал, но сработал и обычный)
XbIK
коллеги, никто не сталкивался, что то перестал работать FocusNode.unfocus() после обновления флаттера
Vadim Popov
А весь скрин лога пришлите
Vadim Popov
По нажатию на кнопку диспач эвент нажатия на кнопку а в самом блоке елди те состояния которые тебе нужны, и в самом экране уже в зависимости от состояния в блок билдере показывай то что хочешь
Fearless Cry
Но мне нужно показать снекбар, например
Fearless Cry
Билд происходит когда угодно
Fearless Cry
И на каждый билд будет снекбар пока не поменяется стейт
Fearless Cry
Решение это листенер
Fearless Cry
Они явно пишут никак не реагировать в билде
Vadim Popov
Блок билдер/лиснер -> if state is loading = показывать снэк, в билдере не забудь отлавливать тоже этот Стейт, потому что после лиснера он так же будет и в билдере
Vadim Popov
Тогда в чем проблема?
Fearless Cry
За 12 часов проблема могла потерять актуальность, не находишь?
|