Программирование : Dart & Flutter по-русски
Дмитрий Щербаков
Запомнить вайфай
Дмитрий Щербаков
И потом сопоставить 2+2
Пашка
почему бы вам не связаться с разработчиками у не узнать
Julia
а если был включен VPN до момента первой установки, но все равно премиум отобразился
Дмитрий Щербаков
Может flo дружит с органами и они делятся инфой)
Дмитрий Щербаков
Провайдеру то пофиг впн у тебя ли нет он данные сливает
Alexandr Drobyshev
ух ты, ток что узанл случайно что flutter_html еще и юзтуб умеет показывать))
Олег Коротин
Ребят, подскажите плиз. Как из натива Kotlin запустить flutterView из WorkManager. Мне нужно по request запустить нужный мне экран flutter. Что-то вроде будильника. Вопрос именно в том, каким методом запустить Flutter Activity через WorkManager
Mikhail Smetannikov
У меня на одном проекте стабильно раз в 2 день вылетает, на довольно простой странице) всего ~1000 пользователей
Mikhail Smetannikov
Ой ошибся, у меня webview
Alexandr Drobyshev
та у меня там вообще ен должно видео быть)0 в старой приле не было) даже не знал что в хтмл прилетает, а тут ща открыл и удивился))
Alexandr Drobyshev
вц елом оном не и не надо
Mikhail Smetannikov
flutter_html же нативно рисует, как ютуб работает?)
Alexandr Drobyshev
там где написано Area это DropDownButton?
Alexandr Drobyshev
спс, а то шо то картинка нарисована в TextField думаю может я чего не найду как из текстфильд это сделать))
Шахзод Джураев
Добрый вечер! а pop у Navigator вызывыает ребилд у предыдущего экрана автоматом ? делаю push на firstScreen -> secondScreen потом делаю pop возвращаюсь на firstScreen а там ребилд и didChangeDependencies тоже срабатывает.. просто у меня этот первый скрин можно сказать очень затратный для билда и не хотелось бы билдить в лишний раз эту страницу
Шахзод Джураев
отбой, решил проблему установив занчение в PageRouteBuilder -> opaque: false,
Alexandr Drobyshev
подскажите, можно анимировать разворачивания ListView с динамической длинной?
Alexandr Drobyshev
[
{
"type": "code",
"text": "AnimatedContainer(\n duration: Duration(milliseconds: 200),\n height: _scheduleExpanded ? null : 0,"
},
"\nтипа такого"
]
Константин Бобров
Если не трудно, не могли бы Вы мне маякнуть, если кто ответ про анимацию напишет?
Tim
Использую freezed + bloc, передаю стейт с List в качестве параметра, а ничего не ребилдится. Подскажите пожалуйста, как такое лечить?
Alexandr Drobyshev
показать код чтоб не гадать)
Tim
Сори, что скрином, но так читать проще имхо
Tim
Ну то есть у меня просто есть стей аля "покажи список". Элементы этого списка периодически обновляются ивентом.
Tim
Хэш предыдущего и нового стейта одинаковые, соответственно билдер не ребилдит
Alexandr Drobyshev
если toLost не пересоздается то и не будет ребилдиться
Илья Морозов
подскажите что вот эта строчка значит
Илья Морозов
[
{
"type": "link",
"text": "snapshot.data.docs"
},
"\n .map (\n (doc) =>"
]
Tim
toList там вообще ничего не делает
Alexandr Drobyshev
ну вообще toList в моем понимании должен новый лист создать но это не точно) я не сомтрел реализзацию))
Alexandr Drobyshev
особенно если у вас categories - это лист то может не чо и не делает а отдает себя же
Tim
Угу, там просто элемент внутри нее изменяется (точно изменяется). Но ссылка на лист остается прежней и, видимо, хэш строится на ней
Alexandr Drobyshev
что вообще такое эта переменная categorie в блоке? по идеи ее там и не должно быть
Alexandr Drobyshev
[
"сделайте напрмиер возврат из стейта ",
{
"type": "code",
"text": "UnmodifiableListView"
},
""
]
Alexandr Drobyshev
и отдавайте так
Alexandr Drobyshev
[
{
"type": "code",
"text": "UnmodifiableListView"
},
"(categories)"
]
Alexandr Drobyshev
но оптяь же
Alexandr Drobyshev
вы юзаете фризед
Alexandr Drobyshev
а ну все ок должно быть да
Tim
Данные из базы, которые изменяются во вьюхе. В блоке они как temporary data. Позже юзер подтверждает изменения и я обновляю базу
Tim
Сложненько научиться думать БЛоКом, сложненько ??
Alexandr Drobyshev
[
"обычная функия map с любого языка пограммирвония) \n",
{
"type": "link",
"text": "https://api.dart.dev/stable/2.10.4/dart-core/Map/map.html"
},
""
]
Alexandr Drobyshev
принимает калбек функцию в которую прилетает элемент и возвращает новый, напрмиер для приобразования одного типа к другому
Alexandr Drobyshev
типа [1,2,3].map((el) => Text("$el")).toList()
Alexandr Drobyshev
получите из цифорок List из виджетов. text
Andrey Eremenko
[
"Подскажите пожалуйста почему вариант 2 работает (экран зеленый), а вариант 1 не работает (экран остается красным)\n\n ",
{
"type": "code",
"text": " renderChildren() {\n final widgets = List ();\n _childrenStack.forEach((String url) {\n widgets.add(Container(\n color: Colors.green,\n ));\n });\n\n return Container(\n color: Colors.red,\n child: Stack(\n // вариант 1\n children: widgets,\n // вариант 2\n children: [\n Container(\n color: Colors.green,\n )\n ],\n ),\n );\n }\n\n @override\n Widget build(BuildContext context) {\n _mainStack.add(renderChildren());\n\n return Stack(\n children: _mainStack\n );\n }"
},
""
]
Kirill Aparin
А в чем идея, когда лист должен открыться или как он должен выглядеть вообще?
Kirill Aparin
Какой интересный код
Andrey Eremenko
[
"вверху еще есть, но он не относится к верстке, вот он:\n\n",
{
"type": "code",
"text": "class _WebAuthState extends State {\n WebViewController _controller;\n \n final _mainStack = List();\n\n final _childrenStack = List();\n \n _WebAuthState() {\n _mainStack.add(\n WebView(\n initialUrl: url,\n javascriptMode: JavascriptMode.unrestricted,\n onWebViewCreated: (WebViewController webViewController) {\n _controller = webViewController;\n },\n onPageFinished: (String url) {\n _controller.evaluateJavascript(js);\n },\n javascriptChannels: [\n messagesJavascriptChannel(),\n ].toSet(),\n navigationDelegate: (NavigationRequest request) {\n print(request);\n return NavigationDecision.prevent;\n }\n )\n );\n }\n\n get url {\n return 'https://test.html';\n }"
},
""
]
Alexandr Drobyshev
Там неизвестна высота за ранее
Alexandr Drobyshev
Хотя есть мысль
Alexandr Drobyshev
Я буду знать сколько элементов в списке можно умножать
Vladislav Osadchy
Всем привет! Подскажите пожалуйста…пытаюсь сделать darkMode исходя из настроек системы через MediaQuery…но постоянно получаю вот такую ошибку
Andrey Eremenko
блин, у меня же _childrenStack пустой массив. туплю уже :)
Kirill Aparin
Можно попробовать интегрировать ExpansionTile
Kirill Aparin
AddNote где используется
Kirill Aparin
Нельзя так нужен ещё одни виджет между ними, например MaterialApp
Vladislav Osadchy
это у меня находится в классе AddNote
Kirill Aparin
Попробуй перенести его выше, а AddNote пусть scaffold возвращает
Alexandr Drobyshev
Посмотрю, но там вроде стейт приватный и не добраться до него
Alexandr Drobyshev
Попробую щааювтра считать скок айтемов а если нет то написать виджет тогда свой
d
Под material app можно builder положить просто
Anton Kowalski
[
"Какой виджет обладает подобным свойствами ",
{
"type": "link",
"text": "https://metanit.com/sharp/wpf/4.4.php"
},
"?"
]
Vladislav Osadchy
спасибо?? разобарлся…заработало
Anton Kowalski
У меня почему-то отступы около 50 между элементами в row хотя margin не задавал.
John Travolta
Может у дочерних отступы?
Anton Kowalski
Там кнопки просто и без margin.
Чел...
Помогите решить: делаю firebase deploy, по ссылке ...firebaseapp.com всё работает отлично, а по ...web.app ничего не изменилось
Чел...
пример, в виджете будет хеллоу, а я сменю на бай, то по ссысле ...firebaseapp.com будет писать бай, а по ...web.app останется хеллоу
Luka Katsadze
Не могу понять в чём дело, открыл старый проект в VS Code, всё ок, отлично запускается и работает. Открываю его в Android Studio кнопка запуска задизеблейна. В чём дело, может кто подсказать?
John Travolta
У меня неделю назад андроид студио вообще перестал показывать окно иде, хотя внизу в панели он открыт Может обновился и что-то поломалось и у тебя тоже
Tim
mainAxisAlignment: MainAxisAlignment.start
Anton Kowalski
Спасибо попробую
Tim
Еще гуглите DartTools/Flutter inspector, вам Debug Paint может помочь в дебаги подобных вещей
Tim
Подскажите плз с архитектурой BLoC: Есть 2 кнопки на экране и у каждой есть 3 своих уникальных состояния (условно - цвет) и каждая имеет свой счетчик (цифры показываются), то нужно делать по отдельному блоку на каждого?
Tim
Я просто не понимаю как одной "группой" state'ов можно менять состояния никак не связанных между собой элементов. Видимо, нужно создавать разные блоки, верно?
Vyacheslav
Я бы сделал три разных блока. Каждую кнопку в свой виджет
Пашка
можно сделать 1 блок
Vyacheslav
как сделать это правильно?
Gorohov Valeriy
Скорее всего это основано на настройках подписок и цен в сторах. Попробуйте в настройках аккаунта для стора поменять страну.
Мirshod
Добрый день. Кто знает как избежать от этого ошибку. Даёт на Text Field. SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
Jake
Ребята, как сделать widget который меняет размер(изначально widget показывает оглавление после нажатия показывает оглавление + содержание ) и желательно со свойством scrollable?
Jake
[
"спан не может иметь длину ноль. ",
{
"type": "link",
"text": "https://stackoverflow.com/questions/13670374/android-span-exclusive-exclusive-spans-cannot-have-a-zero-length"
},
""
]
Anatoliy Razumov
ExpansionTile
Константин Бобров
SVG быстрее png подгружается на страницах? или это вообще никак не связано
Мirshod
Но я не понимаю. Что нужно сделать. ??
Mykola Shevchenko
Зависит от размеров файлов, потому что свг тоже может быть с большим количеством объектов
Константин Бобров
спасибо
Mykola Shevchenko
Да, и с свг пиксели на лету нужно расчитывать
Vyacheslav
Всем добрый день! Как правильно сделать хорошо масштабируемый сервис для управления диалогами с помощью bloc? Есть примеры? P.S. без внешних плагинов
EcsFlash-
Ахахахаха, 265 рублей 1 прием у данной внебрачной внучки Нострадамуса, обладающей левой рукой египетской бабки Ванги?
EcsFlash-
Что за приложение такое
EcsFlash-
Экстрасенсы, ясновидящие
Sirojiddin
кто знает face detection flutter
Sirojiddin
кто знает face detection flutter
Дмитрий Щербаков
спроси 3й раз)
Ivan Nagornyi
Чтобы быстро и заработало, нужно почистить в браузере кешь. Чтобы каждый раз не чистить кешь нужно настроить firebase config таким образом чтобы не кешировалось или время кеша. Так же можно попробовать в index.html устанавливать версионность.
Gorohov Valeriy
[
"Уверен что из ~5000 человек кто-то да знает, но не уверен что ответят.\n",
{
"type": "link",
"text": "https://nometa.xyz/"
},
""
]
Vyacheslav
напиши уже свой вопрос, тянешь кота за... ??
Sirojiddin
Мне нужно сохранить изображение, когда я делаю снимок, и «face detectorni в sqlLife»
Sirojiddin
у кого есть видео урок
Vyacheslav
[
"посмотри здесь\n",
{
"type": "link",
"text": "https://medium.com/flutterdevs/face-detection-in-flutter-2af14455b90d"
},
""
]
nazirjon
Ребята как можно сделать в TextField после каждый пробел слова начинается с большом буквами?
Temurxon
вставить regex при whitespace упперкейсить
Temurxon
input type должен быть text
Валерий
простите но не дай бог за вами поддерживать проект в дальнейшем...
Валерий
[
{
"type": "code",
"text": "TextField(\n textCapitalization: TextCapitalization.words,\n ...\n)"
}
]
Alexandr Drobyshev
как мне вложенный лист заставить арспарсить?) freezed
4??uzhoy .
[
{
"type": "code",
"text": "@freezed\nabstract class PhotoReport with _$PhotoReport {\n const factory PhotoReport({\n @required String id,\n @required @JsonKey(name: 'photos') List photos,\n }) = PhotoReportData;\n\n factory PhotoReport.fromJson(Map json) =>\n _$PhotoReportFromJson(json);\n}\n\n\n"
},
{
"type": "pre",
"text": "@freezed\nabstract class Photo with _$Photo {\n const factory Photo({\n @required String id,\n }) = PhotoData;\n\n factory Photo.fromJson(Map json) => _$PhotoFromJson(json);\n}",
"language": ""
}
]
4??uzhoy .
Он умный, сам распарсит
Alexandr Drobyshev
странно что в доке explicit_to_json вместо explicitToJson
Alexandr Drobyshev
странно у меня null отдает без ошибок, хотя в жсон етсь даныне
4??uzhoy .
странно, я тоже задавался этим вопросом но все парсится именно как описал
Alexandr Drobyshev
[
"или ",
{
"type": "code",
"text": "@JsonKey"
},
" обязательно?"
]
Alexandr Drobyshev
ща попробую
4??uzhoy .
нет по идее если совпадает
4??uzhoy .
[
"не забудь про \n",
{
"type": "code",
"text": "factory Photo.fromJson(Map json) => _$PhotoFromJson(json);"
},
""
]
Alexandr Drobyshev
ну вот, в пеерменную schedules попадает null
Alexandr Drobyshev
это в моделе. Schedule или надо в родительской?
Alexandr Drobyshev
а ну нет, у тебя все так же как у меня но у меня не работает
4??uzhoy .
[
"два файла генерируешь ? \n",
{
"type": "code",
"text": "part 'photo.freezed.dart';\npart 'photo.g.dart';"
},
""
]
Alexandr Drobyshev
да конечно, у меня шаблоны генерят сами
Alexandr Drobyshev
забыл приватный конструктор
Alexandr Drobyshev
а как у етбя без приватного конструктора работает? у меня даже не компилиилось вроде
Alexandr Drobyshev
а это д для геттеров и сеттеров ток( сорри
4??uzhoy .
у тебя в json кстати user_id
4??uzhoy .
[
{
"type": "mention",
"text": "@JsonKey"
},
"(\"user_id\")"
]
Alexandr Drobyshev
да, спс, опечатка, но думаю не в этмо дело, почему то запрсо от сайта отдает schedule а в dio смотрю его нет)) где то косяк
Alexandr Drobyshev
а нет, все де приходит
Alexandr Drobyshev
[
{
"type": "code",
"text": "print('JSON');\nprint(resp['schedules']);"
}
]
Alexandr Drobyshev
вывело
Alexandr Drobyshev
[
{
"type": "code",
"text": "print(_expert.schedules);"
},
"\nNULL"
]
Alexandr Drobyshev
[
"проверил скопирвоал с кода ",
{
"type": "code",
"text": "schedules"
},
" поиском по сайту подветило слово, опечаток нет, все вроде ок, просто в лист не складывает"
]
Alexandr Drobyshev
а у тебя нет случайно конфига где прописано. explicit_to_json
Alexandr Drobyshev
тогда чудеса( не работает ??
4??uzhoy .
[
"проверяй .g файл, должно быть что то вроде этого ",
{
"type": "code",
"text": " \n\n photos: (json['photos'] as List)\n ?.map(\n (e) => e == null ? null : Photo.fromJson(e as Map ))\n ?.toList(),"
},
""
]
Alexandr Drobyshev
ахахаха
Alexandr Drobyshev
конечно же не та модель))
4??uzhoy .
если что версии freezed_annotation: 0.12.0 freezed: 0.12.1
Alexandr Drobyshev
[
"у меня две модели ",
{
"type": "code",
"text": "Expert"
},
" и ",
{
"type": "code",
"text": "ExpertDetail"
},
", во вторую не добавил) там в первую приходит все кроме двух полей больших, вот шедул одно из них, а во вторую потом по запросу подробно"
]
Alexandr Drobyshev
[
"вот надо в ",
{
"type": "code",
"text": "ExpertDetail"
},
" а потмо copyWith перенести))"
]
Alexandr Drobyshev
я ж по этому и не сделал поле required что оно сразу не прилетает
Alexandr Drobyshev
все супер)) заработало)) спс
Юджин Баладжахе
Всем привет. Вроде изучил флаттер, даже первый апп написал, думаю начать искать работу. Вопрос - какой продуктивности ждет от меня работодатель, количество строк, классов, экранов в день, неделю, месяц? Я вроде умный, в любой проблеме смогу разобраться, но делаю это не быстро. Волнуюсь, что работодателя банально не устроит моя производительность. На одном собесе требовали написать апп за 3 недели, по мне так это мало. Спасибо.
Vladislav Osadchy
Для этого я всегда беру тестовые, в первую очередь посмотреть на адекватность работодателя ??
Юджин Баладжахе
Спасибо, хорошая идея! Но тестовые в общем-то адекватны, кое где даже неограничено во времени, но на работе так не будет же, скрам, харам, все дела...
Gorohov Valeriy
Чем больше тем лучше, а так, работодатель работодателю рознь. Если в силах не уверен, ищи тех кто берет с обучением.
Vladislav Osadchy
Слушай я такого мнения, если тебя взяли в команду и ты прошёл собесед и тестовые то париться вообще об этом не стоит, работодатель уже понимает твой уровень и все риски
vasilich
Вообще не парься. Просто проходи собес. Прошёл - работай.
Alexandr Drobyshev
а можнопо имени строковому ка кто метод вызвать в дарте?)
Юджин Баладжахе
Спасибо всем за советы!!
vasilich
Не ЖС драный, сорян)
Alexandr Drobyshev
я что то не догоню ка клучше сдлеать вообще это есть массив "schedules":[{"id":203,"user_id":4328,"monday":"10:00 - 17:00","tuesday":"10:00 - 17:00","wednesday":"10:00 - 17:00","thursday":"10:00 - 17:00","friday":"10:00 - 00:00","saturday":"17:00 - 00:00","sunday":"17:00 - 22:00"},{"id":247,"user_id":4328,"monday":"21:00 - 24:00","tuesday":"21:00 - 24:00","wednesday":"21:00 - 24:00","thursday":"21:00 - 24:00","friday":"21:00 - 24:00","saturday":"","sunday":""}]} вот надо ка то это выводить))
Denis Chuvasov
Ну у нас для джунов норма выработки 1000 строк в день
Alexandr Drobyshev
пока так провер ил, выводит, но везде естесвенно понедельник))
Max
Некоторые изыски возможны через обработчик noSuchMethod, но довольно ограниченно.
Alexandr Drobyshev
беда в том что не все дни могут приходить
Alexandr Drobyshev
видимо надо на этапе парсинга в модель делать ручками просто как то сразу
Валерий
Пришел с утра, напечатал 1000 строк print (); и пошел домой?
vasilich
Флаттер в помощь) Побольше запятых/переносов и даже премию дадут
Max
KPI по количеству строк - это всегда прекрасно. Добро пожаловать в Индию!
vasilich
В Идиотию вы имели ввиду?)
Anton Zheltov
копипаст одних и тех же виджетов 20 раз
Alexandr Drobyshev
[
{
"type": "code",
"text": "static final _days = ['monday', 'tuesday', 'wednesday', 'thursday',\n 'friday', 'saturday', 'sunday'];\nWidget _buildItem(int idx) => Row(\n children: [\n Expanded(child: Text("
},
{
"type": "italic",
"text": "_days"
},
{
"type": "code",
"text": "[idx])),\n Text(_schedules.map ((e) => e.monday).join(', '))\n ],\n);"
}
]
Валерий
Я могу за день написать 500 строк, а мой уровень далеко не джун)
Alexandr Drobyshev
вообщем вот тут e.monday надо как то переделать чтоб брало нужный ключик))
Max
[
"Один мой хороших друг-тимлид говорил, что единственный разумный KPI в разработке - это количество строк кода, которые разработчик ",
{
"type": "bold",
"text": "удалил"
},
" из проекта)"
]
vasilich
На фирму не возьмут, увы)
Denis Chuvasov
ну так это норма для джунов, мидлы как раз и пишут 500, сеньеры вообще должны сокращать количество кода в проекте))
Max
Я могу за день написать 10 строк иногда (
Timur Karimov
можно не написать ни одной строки, это тоже нормально, я считаю))
Denis Chuvasov
это идеально, нет кода нет багов
Denis Dubov
я думал это просто такой мем в интернетах летает) теперь понял откуда он
vasilich
У вас все при деле я так посмотрю) Джуны генерят говнокод, сеньоры чистят авгиевы конюшни, заказчик биллится, прибыль растёт)
Timur Karimov
например, можно весь день разбираться с багом, найти пару не нужных строк, которые его вызывают, и удалить их. Тут не только не написал больше строк, но и уменьшил их кол-во
vasilich
У вас может ещё и скрин кепчуреры стоят и киборд спаи?
Denis Chuvasov
ну да. Чтобы больше работали мы лочим ctrl+c, ctrl+v/
Denis Chuvasov
самый очевидный
nazirjon
Ребята как исправить ошибку??
Дима
так там же написано )
Vadim Popov
Зарегать ID девайса нужно
Дима
[
"зайти на ",
{
"type": "link",
"text": "https://developer.apple.com/account"
},
"\nа точнее ",
{
"type": "link",
"text": "https://developer.apple.com/account/resources/devices/list"
},
"\nи там надо удалить что-то, чтобы новое что-то добавить"
]
Алексей Александрович
светить данные девайса - так себе идея
Алексей Александрович
затирайте на скриншоте
Vadim Popov
А что с ними можно сделать? Добавить к себе в тестфлайт и заставить тестить прилу?)
Алексей Александрович
какая разница? цифровую гигиену соблюдать нужно и важно
Vadim Popov
Цифровая гигиена, звучит прикольно.
nazirjon
как исправить это??
Дима
зарегистрировать такой бандл идентификатор
|