На главную страницу
Форум txt.version   




Статья :: Dart & Flutter по-русски

Программирование : Dart & Flutter по-русски

admin
> Contact - readonly примитив для контакта. Поля: [id, firstName, lastName]
Я просто плохо понимаю зачем здесь builder
 
Evgeny Kot
Э? Вы смотрите не тот gist
 
admin
Разве что, у тебя строитель сможет:
Считывать с хранилища которое ты ему дашь, прводить к нужному типу и создавать сущности
 
Evgeny Kot
у меня ссылка другая
 
admin
Да я просто спрашиваю, интересно же)
 
Evgeny Kot
Это давнишнее тестовое задание ??
 
Vadim Tsushko
[
"А David Morgan просто его немного перевыполнил с ",
{
"type": "code",
"text": "built_value"
},
" :)"
]
 
admin
Прошел хоть?)
 
Evgeny Kot
Оно же простое, большинство делало
 
admin
Кстати
> При этом ContactManager периодически должен синхронизировать данные с хранилищем (раз в 30сек)
А как такие штуки делаются?
Я знаю только через Timer, но это костыль как по мне ??
 
Evgeny Kot
Почему?
 
Kirill Ponomarev
[
{
"type": "mention",
"text": "@bunopus"
},
" спасибо."
]
 
Kirill Ponomarev
Кстати, какими патернами должен владеть программист, чтобы работать в Wrike? Что входит в соглашение об оформлении кода? :)
 
Evgeny Kot
[
"уф, прям паттерны не перечислю. Вообще следуем ",
{
"type": "link",
"text": "https://www.dartlang.org/guides/language/effective-dart"
},
"\nВнутренние паттерны есть, но они внутренние ??"
]
 
admin
А ты на работу собрался? :)
 
admin
> names.forEach(print);
Ух ты, дарт и такое умеет ??
 
Kirill Ponomarev
А если я хочу вызвать билдер при вызове pub build_runner build не указывая явно вызов в main? Ну как трансформер, то как его в yaml прописать?
 
Kirill Ponomarev
И опираться на release.
 
admin
Моя не понимать, извиняй
 
Kirill Ponomarev
Да вопрос к Евгению
 
Evgeny Kot
Это мне вопрос, я чуть позже ответить смогу
 
admin
А, понял
 
admin
А ни у кого случаем не найдется тестового для flutter'a?
 
admin
А то на беке я далеко не уеду ??
 
Grabli66
Не сдавайся. :)
 
Evgeny Kot
Тестового чего, задания?
 
admin
Сложна)
 
Grabli66
Что то мне подсказывает, что вакансий flutter-а в россии, да что там в россии, в мире, очень и очень мало, если вообще есть.
 
admin
Я не из России
 
admin
Но выбор не особо велик)
Или flutter, или фронт
 
admin
Но второе я не хочу??
 
admin
Не люблю я этот фронт
 
Grabli66
Я предложения о работе(разовой) с использованием flutter видел только на upwork, пару раз. За смешные 200$.
 
admin
На самом деле, я в украине вообще не вижу вакансий на дарт
 
admin
Так что, плевать что я выберу)))
 
Grabli66
Не ты один. Многие не видят вакансий на дарт.
 
admin
И чо это за беспредел.
 
Grabli66
На данный момент, как по мне, дарт это язык для "души". Пришёл с работы, после написания говнокода на C#. Сел за компьютер и написал монументальный хеллоу ворлд на дарте :)
 
admin
Аналогично делаю ??
 
Богдан
[
"неужели дарт так идеален? а как у него обстоят дела с системой типизации? нет ли у него случайно таких же недостатков как и у typescript про которые рассказано в этом докладе ",
{
"type": "link",
"text": "https://www.youtube.com/watch?v=etKOc80-cw0"
},
" ?"
]
 
admin
А в тсе вообще есть типизация?
 
admin
Или там подсказки для разработчиков?
 
admin
[
{
"type": "mention",
"text": "@bunopus"
},
" дай ссылочку на 20минутный доклад на эту тему"
]
 
Evgeny Kot
[
{
"type": "link",
"text": "https://www.youtube.com/watch?v=6XCkB9Nr2s8"
}
]
 
Evgeny Kot
[
"А ещё советую посмотреть Антона Лобова\n",
{
"type": "link",
"text": "https://youtu.be/spIfirNCeVs?t=1h48m19s"
},
""
]
 
Богдан
[
"типизация есть но она сломана - бивариантные параметры методов, отсутствие type variance и ковариантность дженериков (из-за чего в массив собачек можно запушить котика), невозможность выразить композицию функций через дженерики, не ловит ошибки где надо (двойной вызов log(",
{
"type": "link",
"text": "obj.id"
},
") из того доклада Климова ) а где не надо находит (",
{
"type": "link",
"text": "https://github.com/Microsoft/TypeScript/issues/19209"
},
")"
]
 
Kirill Ponomarev
[
{
"type": "mention",
"text": "@bunopus"
},
" мне удалось разобраться с билдером. Но остался вопрос с режимом сборки. Как определить mode release или debug?"
]
 
Evgeny Kot
А там должен быть в конфиге флаг
 
Kirill Ponomarev
Т.е. создать 2 файла build.release.yaml и build.debug.yaml. В них явно указать target: builders: my_builder: options: isRelease: true
 
Kirill Ponomarev
А в билдере смотреть BuildOptions.
 
mark
Если про запуск, то можно так запускать

pub run build_runner build —config=release —fail-on-severe —output build
 
Kirill Ponomarev
У transformer было свойство mode, которое в serve было debug а в build release
 
Kirill Ponomarev
Ну я про то и рассуждал, что нужно вызывать с config, т.е. создавать файл.
 
Kirill Ponomarev
[
{
"type": "mention",
"text": "@bunopus"
},
" еще один вопрос по билдеру, если можно. Когда я преобразую main.dart в main.g.dart все ок. Нужные изменения видны. Но если не менять расширение и пробовать писать в ассет main.dart то возникает ошибка переполнения буфера. Сталкивались с таким?"
]
 
Evgeny Kot
Билдеры не могут перезаписывать тот же файл, там в правилах написано.
 
Kirill Ponomarev
Хм. Т.е. чтобы main.dar выполнил некий код, созданный билдером, то его нежно выносит в отдельный файл. По аналогии с component.template.dart? В main вызывать функцию, которой еще нет.
 
Evgeny Kot
Да, типа того
 
Kirill Ponomarev
Спасибо
 
Grabli66
Ой. Не туда
 
Serhiy Z
Вечер добрый. Подскажите плз гле можно почитать про синтаксис дарта, интересуют такие операторы как ?? или ?. . Как это все использовать? Бегал по ссылкам у них на сайте, но так и не попал на нужную. Спс
 
Grabli66
[
"Может вот это подойдёт? ",
{
"type": "link",
"text": "http://blog.sethladd.com/2015/07/null-aware-operators-in-dart.html"
},
""
]
 
Serhiy Z
Спс, то що нужно) пойду читать
 
Oksana
Привет ??Может кто-то сталкивался с проблемой роутера AngularDart, а именно после
_router.navigateByInstruction(instruction) в routerCanDeactivate хуке nextInstruction параметр null?
 
Evgeny Kot
Привет. А есть возможность какой-то синтетический пример сделать?
 
Oksana
чуть более детально
 
Oksana
Есть два равнозначных роута A и B. Мы находимся на чайлд роуте A, по клику создаем final instruction = _router.generate([ 'B' {...}]); и вызываем _router.navigateByInstruction(instruction);.

В другом компоненте ловим хук routerCanDeactivate и все, дальше теряем параметр nextInstruction
 
Oksana
но видимо есть невидимые на то причины, просто думала может кто-то сталкивался) Пошла дальше мучать роутер
 
admin
Привет. Решил попробовать dart в предверии 2 версии. Почитал что теперь есть только strong mode. Поставил версию 2.0.0-dev.42.0, при этом спокойно позволяет использовать динамические типы. Я что-то делаю не так?
 
admin
ну как минимум ожидал, что int переменной нельзя будет присвоить строку
 
admin
например
 
admin
[
{
"type": "pre",
"text": "void fn(List a) => print(a);\n\nvoid main() {\n var list = [];\n list.add(1);\n list.add(\"2\");\n fn(list);\n}",
"language": ""
}
]
 
admin
[
"ну и например\n",
{
"type": "pre",
"text": "int a = 4;\na = \"2\";",
"language": ""
},
""
]
 
admin
dartanalyzer не ругается и код исполняется
 
admin
вот и я так подумал) прочел доку на эту тему и там везде написано что так работать не должно
 
admin
а, не, вру. на присвоение строки сругался
 
admin
тем не менее первый пример работает
 
admin
хотя он как раз из статьи про стронг мод
 
Evgeny Kot
[
{
"type": "link",
"text": "https://www.dartlang.org/guides/language/analysis-options"
}
]
 
Evgeny Kot
analyzer: strong-mode: implicit-casts: false implicit-dynamic: false
 
Evgeny Kot
Оба правила в true поставьте
 
Evgeny Kot
Ну и dart 2 по умолчанию работает в режиме совместимости с 1.0, чтобы включился 2, надо запустить с флагом --preview-dart-2
 
admin
т.е по умолчанию в версии 2 strong mode включен, а implicit-casts и implicit-dynamic отключены? в статье не написано актуально ли это для версии 2
 
admin
аа, точно
 
admin
спасибо
 
Evgeny Kot
Для того, чтобы ругался на кастование неправильное - нет
 
admin
с флагом —preview-dart-2 все равно так же себя ведет
 
admin
ну точнее для dart работает, для dartanalyzer видимо придется указывать ключи
 
Evgeny Kot
Так а с опциями анализатора ругается?
 
admin
с опциями ругается
 
admin
--preview-dart-2 где то можно в конфигурации указать опцией так же?
 
admin
чтобы по умолчанию к проекту применялся
 
Evgeny Kot
Пока нет, к сожалению
 
Evgeny Kot
Впрочем завтра надо глянуть, но нет, насколько я помню
 
admin
щас посмотрел, это я с ключами проверял и сработало. Если просто в analysis_options.yaml указать, то ему пофиг
 
admin
удалил pubspec.lock и .packages. сделал pub get и заработало
 
admin
магия какая то
 
admin
параметры меняются только после pub upgrade
 
admin
хотя вроде бы какое это отношение имеет
 
Evgeny Kot
А вы анализатор рестартовать пробовали
 
Evgeny Kot
Сорян, я если что, только завтра отвечу, у нас полтретьего ;-)
 
admin
спасибо большое за ответы
 
Kirill Ponomarev
Вопрос по Angular. Как передать в контент очередной элемент списка, чтобы отобразить его в ng-content? Пример использования:
 
Kirill Ponomarev
В my-list должен быть ngFor. Очередной элемент хочу передать в ng-content.
 
Kirill Ponomarev
Можно ссылочку?
 
Evgeny Kot
AngularDart? Нет такого
 
Evgeny Kot
Ну вы же сами ответили, если будет ngFor, из него можно текущий элемент получить
 
Kirill Ponomarev
Но что написать вместо "$????" В моем примере.
 
Kirill Ponomarev
И как будет выглядеть ng-content, если переменную обозвать row.
 
Evgeny Kot
А вам тогда надо show-item внутрь my-list передавать
 
Kirill Ponomarev
[
"Хи. В ",
{
"type": "mention",
"text": "@Input"
},
" помещать Component?"
]
 
Evgeny Kot
Давайте я до работы доеду и отпишу
 
Alexander Bazan
А разве, если ты хочешь ng-content, ты не должен передавать его внутрь твоего тега?
 
Alexander Bazan
т.е.

 
Kirill Ponomarev
Если я хочу, чтобы мой компонент отображал некое вложение, то я пишу так:
. Если вложений несколько, то в ng-content добавляется select="[header]".
 
Kirill Ponomarev
Тот кто использует мой компонент может писать так:

Hello

 
Олжас Сулеймен
проблема иногда возникает: обновил входные параметры функций в либе с doubla на num, а в main функций code ругается по старой версий, обычная либа с основным export файлом
 
Олжас Сулеймен
проблема с анализатором в vs code
 
Evgeny Kot
Перезапустить анализатор помогает?
 
Олжас Сулеймен
но это как то не очень
 
Олжас Сулеймен
если писать через part-of то проблем нет
 
Evgeny Kot
[
"Вам поможет магия