Программирование : Dart & Flutter по-русски
KeepOnSmiling ??
В скорости этих действий
KeepOnSmiling ??
Не нужно выделять весь блок, комментировать, это моментально делается, переносишь со строчки и готово
Виталий
Однострочный коммент сочетанием клавиши ставить/убирать?
KeepOnSmiling ??
Его предварительно нужно выделить весь, это тоже время..
KeepOnSmiling ??
Для выделения участка это не поможет :)
KeepOnSmiling ??
Это только закомментирует уже выделенное
Виталий
Не понимаю я такого извращенного(имхо) способа отладки
Виталий
Может кому-то и эффективно
KeepOnSmiling ??
Бывает так, что нужен то один блок для отработки, то другой. В случае с теми многострочными это делается одним переносом комменат
Виталий
Но считать секунды, это мощно
KeepOnSmiling ??
Может я слишком ленивый, чтобы выделять блоки :)
KeepOnSmiling ??
А может просто логика так построена, что такими "селекторами" я просто вижу тестируемые блоки
KeepOnSmiling ??
Ну и CMD + / в VC комментирует многострочный код однострочными комментами, очень уж недобно смотреть потом на такой код, доставать что-то оттуда и снимать комменты.. когда можно просто воспользоваться многострочным комментом
KeepOnSmiling ??
Возможно, дело привычки, кто-то привык так, кто-так смотреть на код
Денис
Ребят кто пользовался Chewie, как выставить автоматический aspectRatio внутри плеера, а то он плеер растягивает по размеру контейнера, а видео внём по размеру самого плеера
Денис
вручную не подойдет потому что все видео у меня разные
Daniil Kolyasnikov
Дык посчитай ратио через размер видоса
Daniil Kolyasnikov
Насколько помню автоматом нужно просто null
Daniil Kolyasnikov
Просто в голом плеере именно так
KeepOnSmiling ??
Кто знает, если вставляются emoji в Text, то они какими будут? Это какой-то флаттеровский пак или они из текущего андроида? Я просто вывел их - чёт я таких вообще никогда не видел :)
KeepOnSmiling ??
Если андроидовские - они от версии к версии андроида меняются, что ли, постоянно?
Денис
Нет, при нулл он зараза растягивает по размеру виджета (или экрана при полноэкранном режиме), а хотелось бы чтобы был эффект как в томже youtube, не думаю что такая либа, так криво воспроизводит видосы
Daniil Kolyasnikov
Задавай через размеры
Daniil Kolyasnikov
Либа на то и либа что даёт голое апи
Денис
Размеры прийдут только после инициализации, а инициализация автоматическая
Денис
И проблема в том что аспект ратио изменяет не ратио внутри плеера а размеры всего плеера
Виталий
От версии к версии да, или как производитель смартфона захочет
Виталий
Но можно свои переопределить
Виталий
SF Symbol поверх кинь
Виталий
Как шрифт для эмодзи
Виталий
Будут стандартные эмодзи
Dmitry Bubnenkov
Два вопроса. На сколько правильно проверять так. Второй. Почему задержка не работает т.е. HomePage помещенный в Футуру не вызывается
northelks
потому что хоумпейдж ты возвращаешь вникуда
Dmitry Bubnenkov
[
"А как нить так нельзя?\n",
{
"type": "pre",
"text": " return Future.delayed(Duration(milliseconds: 200), () {\n return HomePage();\n });",
"language": ""
},
""
]
northelks
а как ты думаешь ,что в этом случаем делает первый return?
Dmitry Bubnenkov
Футуру возвращает которая зарезолвится позже.
northelks
куда она зарезолвится?
northelks
и у тебя () {} в качестве второй аргумента, как думаешь, что это такое?
Dmitry Bubnenkov
м... а вообще мне подобную проверку нужно где делать? В виджете слеш-скрина? Просто пока у меня получается, что логика переключения на главный экран именно в нем определена и я очень не уверен, что правильно
northelks
ты пишешь код наугад) я бы посоветовал просто пописать простые задачки на дарте
northelks
пройтись по всех главам
northelks
текстовые редактор, консоль, дарт и задача
northelks
задачи разные, поиски строк, поиск объектов в дереве, в листе, разбор асинков и стримов
northelks
иначе флаттер для тебя останется болезненным хаосом
Vlad
[
"в веб проекте использую ",
{
"type": "code",
"text": "onGenerateRoute"
},
":\n",
{
"type": "code",
"text": "case \"/profile\": return MaterialPageRoute(builder: (_) => ProfilePage(title: 'Profile', authToken: authToken));\n"
},
"все нормально работает, кроме того, что в адресной строке url не меняется.\nв документации не нашел, как это сделать, обычные ",
{
"type": "code",
"text": "routes"
},
" не подходят.\nможет кто знает?"
]
Roman
подскажите, а покупки вообще можно дебажить на версии, которая не загружена в стор?
Eugene
В гугле точно надо
Eugene
Апстором сейчас занимаюсь, но уверен там дело ещё хуже
KeepOnSmiling ??
Кто знает, почему я получаю ошибку: "IconButton widgets require a Material widget ancestor." при попытке добавить IconButton?
KeepOnSmiling ??
Причём я в справке код беру и он у меня не работает
KeepOnSmiling ??
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/material/IconButton-class.html"
}
]
KeepOnSmiling ??
За исключением того, что я её не в Scaffold добавляю. Неужели из-за этого?
KeepOnSmiling ??
Ха.. а в Scaffold'е реально работает. А можно ли как-то эту IconButton добавить не в Scaffold-производный виджет? :)
Davron Asrorov
Запихнуть в Material виджет
Олжас Сулеймен
хотите апнуть скил по флаттеру пишите не импортируя flutter/material и flutter/cupertino ))
KeepOnSmiling ??
Спасибо, сработало! :)
Виталий
И flutter/widgets
Влод
тип вручную все реализуя?
Vlad
[
"еще поискал в доках, погуглил и нашел только вариант через перезапись URL:\n\n",
{
"type": "pre",
"text": "class ProfilePageState extends State {\n @override\n void initState() {\n super.initState();\n window.history.replaceState(null, \"\", \"/profile\");\n }",
"language": ""
},
"\nтолько так это и делается значит? не очень удобно, но приемлимо"
]
Влод
ну там многое у них не оч готово
Влод
они писали что браузерная кнопка вперед тоже не ок работает
KeepOnSmiling ??
Полагаю, просто чтобы разобраться что из каких пакетов идёт :)
Vlad
есть такое, сейчас проверил
Виталий
Всё таки имелось ввиду что для того чтобы именно вручную реализуя
Виталий
Одна фигня, и купертино и материал написаны поверх виджетс и прочит дартовских либ
Влод
кстати общайся с ними в гиттере на англ а то мало кто всерьез на вэбе пишет
Виталий
И вообще никто не заставляет использовать материал и купертино
Влод
[
{
"type": "link",
"text": "https://gitter.im/flutter/flutter_web"
}
]
KeepOnSmiling ??
Так IconButton удобная штука, поэтому и пришлось заюзать этот Material :)
KeepOnSmiling ??
Мне была нужна иконка, которую можно было бы нажать...
4??uzhoy .
Такой вопрос, встроил флаттер в натив, каким образом реализовать так чтобы нажатие кнопки не выходило из активити где флаттер вью создан, а работало в самом флаттер вью между экранами, и каким образом можно передать state натива, чтобы при перевороте он не пересоздавал мне активити и не бросал флюттер вью на начальный экран, или подскажите что гуглить, найти не могу...
Anatoliy Dvoryashin
привет
Anatoliy Dvoryashin
кто сталкивался с тем что visual studio code не работает HOT RELOAD
Anatoliy Dvoryashin
в android studio работает. Но android studio мне не нравиться
Vyacheslav
GestureDetector + Icon отлично работает
Vyacheslav
ctrl + S пробовал?
Anatoliy Dvoryashin
сейчас
Vyacheslav
Только на вкладке с изменениями
Phil
[
"Голову сломал над сериализацией. Есть ответы API общего вида: \n",
{
"type": "pre",
"text": " {status: {code: ok, message: blabla}, data: {Здесь может быть разное в зависимости от исходного запроса}",
"language": ""
},
". \nПусть это будет BaseResponse.\nДля разных Data пишу свои классы для сериализации, но не могу понять, как их наследовать от этого BaseResponse.\n\nИспользую json_serializable и dio."
]
Phil
и да, пока тренирую разбор API в Dart'e, но с перспективой переноса во Flutter
Anatoliy Dvoryashin
???>?
Олжас Сулеймен
у вас какое то не то апи, если разное то только парсить ручками, ну или один общии класс для всех полей, а в чем различия писать разбор апи для дарта и флаттера?
Phil
про перенос просто так сказал, пожалуй)
Phil
>> у вас какое то не то апи Такое уж API у Мегаплана)
Kherel
Canvas во flutter имеет какие-то отличия от canvas в html?
Kherel
есть ли какие-то интересные туториалы или книги по canvas для flutter?
Phil
[
"Решил как-то так:\n",
{
"type": "pre",
"text": "class BaseResponse {\n final Status status;\n final T data;\n\n BaseResponse({\n this.status,\n this.data,\n });\n\n factory BaseResponse.fromJson(Map json) {\n var data;\n if (T == AuthResponseData) {\n data = AuthResponseData.fromJson(json['data']);\n }\n\n if (T == OtherType) {\n data = OtherType.fromJson(json['data']);\n }\n\n return BaseResponse(\n status: Status.fromJson(json['status']),\n data: data,\n );\n }\n}",
"language": ""
},
""
]
Phil
может json_serializable умеет генерировать этот бойлерплейт?
Sergey Ozeranskiy
Вроде как это он и делает
Sergey Ozeranskiy
Сериализация и десериализация
Phil
я именно про кусочек, где приходится вручную искать fromJson для нужного типа T
Sergey Ozeranskiy
И вложенные объекты умеет
Sergey Ozeranskiy
Я не очень уверен что это гуд
Sergey Ozeranskiy
Если не уверен в типе то может dynamic надо?
ironpotter
Всем привет. Посоветуйте как такое можно реализовать. Это по идее должен быть Appbar с TabBar'ом
Phil
как вызывать конкретный метод fromJson на dynamic'е?
Sergey Ozeranskiy
Не скажу, может кто посоветует ещё что-то
Sergey Ozeranskiy
Мне не очень нравится такая логика в сериализаторе
Phil
я тоже не в восторге, но в Андроиде прокатило с gson
DVS (Read The F.ng Manual) Studio (NoHello)
Попробовать вызвать метод но поймать исключение если его нет?
Phil
ну тогда это будет выглядеть примерно так же, как мой перебор с if'ами
Dmitry Bubnenkov
[
"Я застрял с ошибкой. Вот такой у меня роутинг:\n",
{
"type": "pre",
"text": " child: MaterialApp(\n initialRoute: '/splash-screen',\n routes: {\n '/': (context) => HomePage(),\n '/splash-screen': (context) => SplashScreen(),\n '/result_table': (context) => ResultDataTable(),\n } \n ),",
"language": ""
},
"\n\nВ виджете сплеш-скрина делаю: \n",
{
"type": "code",
"text": " Navigator.of(context).pushNamed(\"/\");"
},
"\nПолучаю ошибку:\nThis Overlay widget cannot be marked as needing to build because the framework is already in the I/flutter (10799): process of building widgets. A widget can be marked as needing to be built during the build phase I/flutte"
]
Phil
[
"Общий вид ответов:\n",
{
"type": "pre",
"text": "{status: {code: ok, message: blabla}, data: {Тут либо разные поля, либо массив объектов} \n",
"language": ""
},
"Эндпоинты и ответы:\n- ",
{
"type": "bot_command",
"text": "/auth"
},
" -> в data помещается ",
{
"type": "code",
"text": "{token: tratatatata}\n"
},
"- ",
{
"type": "bot_command",
"text": "/get_one_lulz"
},
" -> в data помещается ",
{
"type": "code",
"text": "{id: 123, text: 'anekdot_here'}"
},
".\nДля каждого эндпоинта создается свой класс с параметрами ответа (те, что в data помещаются).\nДалее по конкретному эндпоинту делаем запрос: \n",
{
"type": "pre",
"text": " var response = await dio.get(API_ENDPOINT_HERE);\n var full_response = BaseResponse .fromJson(response.data);",
"language": ""
},
""
]
Phil
Если я как-то криво решаю поставленную задачу, поделитесь своей реализацией. Спасибо
Phil
тупой нейминг сочиняется налету, простите)
Dmitry Bubnenkov
Вообще на сколько адекватно роутинг внутри Билда делать? Виджеты указанные внутри роутинга который внутри билда в какой момент будут созданы? Когда Билд будет вызван?
Dmitry Bubnenkov
Просто во всех примерах навигатор в билде идет
DVS (Read The F.ng Manual) Studio (NoHello)
Роутинг внутри билда - боль, проблемы, страдание. В крайнем случае делать WidgetBinding.instance.addPostFrameCallback. в нем уже роутинг делать
DVS (Read The F.ng Manual) Studio (NoHello)
Да. Поставленный на кнопку. Но не в самом билде
DVS (Read The F.ng Manual) Studio (NoHello)
Билд - потенциально 60 раз в секунду. Не делай в нем ничего кроме отрисовки
Dmitry Bubnenkov
Во всех примерах примерно так же сделано
Kherel
Заметил что как-то сложно найти баланс между стилизацией виджетов поместу и вынесением фрагментов кода в отдельные виджеты или методы. Слишком много “верстки “ сложно читать, из-за параметров стилевых. Слишком много абстракций сложно вносить изменения. При чем, с jsx, или скажем с бэк-енд программированием вообщем-то проблем больших с читабельностью кода нет.
Kherel
у кого-нибудь есть подобные ощущения?
Ivan
у всех после перехода с jsx такие ощущения
Ivan
почти все rn разрабы которые не хотят переходит на флаттер одной из причин называют именно верстку
Ivan
если есть опыт в построении ui через компонентный подход - пользуйся ним в флаттере так же как привык, это правильно
Ivan
виджет - тот же компонент как в react например
Kherel
оки, спасибо за ободрение ??
northelks
а как там у rn дела? они уже заимплементили изменения в архитектуре?
Влод
> Firebase users are not customizable ммм вау есть проперти которые можно только сетать. это было неожиданно
Aynur
всё ещё нет, из продвижений только новый js движок для андроида
Stanislav
Причём с aot компиляцией вроде
??
[
"Привет, может кто-то подсказать можно перевести первый символ строки в Заглавный а все остальные в строчный?\n",
{
"type": "pre",
"text": "Есть такой массив который соеденяется в строку на выходе получается это\nZ-pp-ggg-llll-nnnnn-RRRRRR-xxxxxxx-qqqqqqqq-eeeeeeeee-nnnnnnnnnn-UUUUUUUUUUU\n\nА как-то нужно получить вот это\nZ-Pp-Ggg-Llll-Nnnnn-Rrrrrr-Xxxxxxx-Qqqqqqqq-Eeeeeeeee-Nnnnnnnnnn-Uuuuuuuuuuu",
"language": ""
},
""
]
Александр
toLowerCase() ?
northelks
случаем не знаешь, при создании пользователя в firebase, когда посылаешь верификационный емэил и если пользователь не прошёл верификацию.. но учётка пользователя уже создана.. есть какие-то механизмы удаления неверифиционных учёток?
??
Просто если это то тогда вся строка опускается
northelks
получается, если чувак указывает чужой емэил, туда посылается письмо, и емэил по сути лочится
Krat0S
s = s.toLowerCase().replaceFirst(s[0], s[0].toUpperCase())
Krat0S
или что-то в этом роде)
??
Пасиба, попробую отпишусь
Stanislav
${s[0].toUpperCase()}${s.substring(1).toLowerCase()}
Not That Onion
[
"Кому-нибудь приходилось интерполировать ",
{
"type": "code",
"text": "Matrix4"
},
" из ",
{
"type": "code",
"text": "vector_math_64"
},
"? Не могу найти ничего готового для этой операции :\\"
]
Влод
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/vector_math/Matrix4-class.html"
},
"\n",
{
"type": "link",
"text": "https://api.flutter.dev/flutter/vector_math_64/Matrix4-class.html"
}
]
Влод
но видимо разный код без реэкспортов
Denis
Никто не сталкивался с нуждой зашифровать строку во флаттере с помощью rsa?
Not That Onion
извините, неточно задал вопрос, имел ввиду интерполяцию между двумя матрицами такого вида
Not That Onion
[
"наподобие ",
{
"type": "code",
"text": ".lerp"
},
" на ",
{
"type": "code",
"text": "Tween"
},
""
]
Влод
я скипнул слово интерполяция
Mitai
Доброго времени суток, кто может рассказать как настраивать связку джанго рест фреймворк + дарт ангулр? мб у кого то есть свой блог с такой статьей или знает где об этом можно почитать
Not That Onion
[
"Возможно ",
{
"type": "link",
"text": "https://pub.dev/packages/simple_rsa"
},
" поможет"
]
Denis
Пробовал, падает не шифрует
Serge Shkurko
[
{
"type": "pre",
"text": "final newStr = \"...\".split('-').map((substr) => substr.toLowerCase().replaceFirst(substr[0].toLowerCase(), substr[0].toUpperCase())).join('-');",
"language": ""
}
]
Олжас Сулеймен
А почему сразу прошлое?
Влод
ну сразу и джанго и дарт ангуляр. я впервые слышу что кто-то юзает дарт с ангуляром
Влод
ну всегда была такая опция конечно
Serge Shkurko
google ads вроде юзает
Олжас Сулеймен
Врайк юзают ангуляр дарт, основатели этого чатика
Serge Shkurko
dart angular
Влод
ну они тип фанатичны. я не удивлен
Maxim
завезли разметку xml и MVVM или еще нет?
Serge Shkurko
во flutter'e ты не увидешь xml или аналога
Александр
Как можно паттерны завести
Олжас Сулеймен
Если только типа ангулярдарта не сделать, где шаблон парится в дарт код
Serge Shkurko
есть либы от сторонних разработчиков о использовании yaml в качестве языка разметки
Олжас Сулеймен
И импортируется куда надо
Not That Onion
[
"только что попробовал их пример: ",
{
"type": "link",
"text": "https://github.com/giandifra/simple_rsa/tree/master/example"
},
""
]
Олжас Сулеймен
Если кто проспонсирует можно сделать ))
Serge Shkurko
на со стороны google подобных действий предприниматься не будет из-за идеологии перемещения UI в код
Not That Onion
сработало без ошибок, интересно, упадёт ли у вас
Maxim
именно поэтому я не перешел на флаттер
Not That Onion
у вас есть время передумать :)
Serge Shkurko
[
{
"type": "link",
"text": "https://flutter.dev/docs/resources/faq#where-is-flutters-markup-language-why-doesnt-flutter-have-a-markup-syntax"
}
]
Maxim
отрицать не буду, никто не знает что взбредет мне в голову через неделю
northelks
знает кто как в фаербейзе создавать юзвера только после верефикации почты?
Ivan
60-я вышла с android x заимплементили все изменения в бридже - точно не скажешь, но я думаю что даже их имплементация не сможет в полной мере исправить все изьяный бриджа, это в априори тормозящяя архитектура которой не избавится от коренных изьянов никак
Dmitry Bubnenkov
почему без закомментированных строк оно падает??
northelks
тоже так же думаю, но они писали, мол всё изменится и они применят супер-пупер идею по оптимизации бриджа и что его убирать никуда не будут
Dmitry Bubnenkov
А как же нажатие разных кнопок? Или подразумевается, что у них собственные события?
Dmitry Bubnenkov
И почему закомментированные строки проблему падения решают?
Ivan
основная масса будет чухать себя нормально так как бридж тянет основной стек приложений rn (чат навигация нотификации, что то еще, короче стандартный набор) но когда дело доходит до стрима, или сложной анимации, или чего то что впринципе может потребовать многопоточности, или разделения мощностей одного потока, здесь уже ничего не сделаешь, вот вовсе ничего (костыли, сет таймауты и велосипеды не считаются ?? )
Not That Onion
[
"Оказалось что есть: \n",
{
"type": "link",
"text": "https://api.flutter.dev/flutter/widgets/Matrix4Tween/lerp.html"
},
""
]
Влод
есть какой-нибудь способ подешевле дебаунсить ввод с текстфилд?
Влод
ну то есть стековерфлоу предлагает таймер и я так вижу что можно сабжект с rx сделать и задебаунсить
Влод
но наверное не я первый задаюсь этим. мб есть готовые контроллеры для rx
Aleksey
чем тебя дебаунс не устраивает?
Aleksey
дебаунс можно заменить таймером без rx, в интернетах есть куски кода
Влод
устраивает. просто тип заводить сабжект в стейте, подписываться на контроллер, там кидать в сабжект значения
Влод
кажется кто-то это сделал за меня уже
Влод
да но если руками делать то скорей всего получится семпл
Aleksey
дебаунс из rx проще и понятнее выглядит, я бы не стал велосипедить, да и rx еще много где можно использовать в проекте
Volodymyr Medvediev
Всем привет! Есть ли какой-то способ кроме WillPopScope определить нажатие кнопки Back в Android? Приходит OneSignal push notification, но по кнопке назад все равно обрабатывается notificationOpenHandler.
northelks
таймером будет меньше кода
northelks
не так красиво, но весьма просто
northelks
(я у себя через таймер делал)
Serge Shkurko
[
"Можно обернуть в Future.delayed(",
{
"type": "link",
"text": "Duration.zero"
},
", () {});"
]
Dmitry Bubnenkov
А зачем оборачивать вообще нужно??
Serge Shkurko
Выше ответили, во время сборки нельзя навигатором пользоваться
Dmitry Bubnenkov
А типа это все сделано чтобы отработало после билда?
Serge Shkurko
Грубо говоря да
|