Программирование : Dart & Flutter по-русски
?? ??????????????????????????
На практике все проще, в проекте есть практики, они и применяются. Внедрением новых будешь заниматься когда перестаешь руку на Джуна поднимать)
Dima Kotlyarov
золотые слова
Dima Kotlyarov
потому что в 70 процентаах на практике - всем похуй - главное уже что бы эта лютая дичь заработала))
Anton Kowalski
так что кто-то сталкивался?
это типа на проект куда то ?
Silent Bezmolvny
Это такая структура данных
скинь ссылку на инхеритед
Ivan
смотри в android/app/bluild.gradle
Alexandr Drobyshev
я ж скинул
Alexandr Drobyshev
второе видео на канале у него
Alexandr Drobyshev
[
{
"type": "link",
"text": "https://www.youtube.com/watch?v=lGK1r9sAMGM"
}
]
Anton Kowalski
бля, а я не в том смотрел, спасибо
ilsur
Всем привет, есть CircleAvatar, подскажите, а есть что-то типа SquareAvatar?
Anton
ну возьми контейнер
Алексей Александрович
просто добавь воды ??
ilsur
только вот я не знаю как получить высоту данных ListTile
Cat-Wizard Ashere
О, герои
EcsFlash-
Я вот тоже задумался о том, чтобы пока что хотя бы почитать, поизучать Блок, а потом и юзать его, завтра видимо начну разбираться с провайдером, потом с инхередВиджет и потом блок
EcsFlash-
Много всего, и все сложно(
Michael Bazilique
ребят, теоретический вопрос. Над мейном вешаю список провайдеров. С какого места ProxyProvider (т.е как обычный провайдер) вызывает свой dispose?
Anton Kowalski
А есть в событиях такая штука как sender(как в wpf)?
Anton Kowalski
Или только по ключам?
Danila Manila
[
{
"type": "link",
"text": "https://t.me/FlutterDevRu/495"
},
"\nВот подборка хорошая, по ней начал осваивать"
]
Danila Manila
StreamBuilder он автоматом закрывает потоки, или надо самому это делать?
Dima Kotlyarov
Ну если использовать либу , то автоматом
Dima Kotlyarov
А так через dispose() вручную или утечки памяти будут
Danila Manila
Либу которая предоставляет стрим? Использую firebase_firestore, от туда получаю стрим, и через streamBuilder вывожу данные, вот возник вопрос, как избежать утечки) Вы случайно с таким не работали?
Dima Kotlyarov
Я использовал либу flutter_bloc которая под копотом это все делает . Рекомендую ознакомиться
Dima Kotlyarov
А в плане нативного решения , не подскажу ( я на нативной реализации не писал (
Danila Manila
В процессе покорения) Спасибо
Dima Kotlyarov
Там все гораздо проще)
WhyNot
Благодарю) вы тут классные ребята все)
Max
Напоролся, кстати, на проблему с экстеншенами в Enum. При "боевом" транспилинге в JS такие Enum криво сравниваются. При отладочном, что характерно, нет)
E P
Что-то лыжи не едут. Как на андроиде можно получить емаил аккаунта привязанного к мобиле?
Max
А это вообще можно сделать иначе, чем спросив у пользователя? За и зачем - тоже не очень понятно.
Max
Впрочем, если попросить пользователя авторизоваться по Oauth через Google, вероятно, ты получишь именно этот email... в большинстве случаев.
E P
Такая лайт авторизация без лишних вопросов
Max
"Лайт-авторизация" там и так есть. Записал уникальный код в Secure Storage - считай авторизован. А вот доступа к персональным данным без санкции пользователя - думаю, нет)
E P
Поставил одну приложуху. Ничего не спрашивает, просто использует "для идентификатора". Так же хочу сделать
Max
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/6502017/getting-android-owners-email-address-nicely"
}
]
Max
[
{
"type": "link",
"text": "https://pub.dev/packages/account_picker"
}
]
E P
Вроде пробовал, но еще раз проверю, может разрешения какие не давал. Спасибо
Nightwelf
ребята, чтобы не изобретать велосипед, может кто знает, есть ли виджет что-то типа временной шкалы по горизонтали с возможностью выбора времени?
Константин Бобров
памагити. спасим энту штуку при flutter packages pub run build_runner build --delete-conflicting-outputs
Дмитрий Щербаков
Удали все .g файлы и снова попробуй
Firuz Vorisov
[
"здравствуйте ребята\nПодскажите пожалуйста, для ",
{
"type": "bold",
"text": "нотификация"
},
" на фоновом режиме\nКакую библиотеку использовать?"
]
Max
Если нотификации - с сервера, конечно.
EcsFlash-
Мб тебе это подойдет
EcsFlash-
[
{
"type": "link",
"text": "https://pub.dev/packages/day_night_time_picker"
}
]
Nightwelf
спасибо, но это не то ??
Sirojiddin
как я могу сохранить изображение в существующий PDF
Константин Бобров
да, спасибо, разобрался в парт '...' пропустил букву...
XbIK
коллеги, никто не работал с firebase ml, проблема что не распознает текст на иос когда делаешь фото камерой, если выбираешь из папки все ок
Константин Федуров
я работал только с детектингом лиц
Константин Федуров
но было все ок вродь)
Alexander
[
"Всем привет, кто пользуется последней сборкой ",
{
"type": "code",
"text": "firebase_messaging"
},
" ? не билдится ios(( есть какие то проблемы?"
]
XbIK
а какой паб использовали, image picker?
Константин Бобров
молю о помощи
IB Akhrorov
[
"Хорошая PBD архитектура \n",
{
"type": "link",
"text": "https://youtu.be/kLDfhamoqe0"
},
""
]
Дима
[
{
"type": "italic",
"text": "Tickers used by AnimationControllers should be disposed by calling dispose() on the AnimationController itself. Otherwise, the ticker will leak.\n\n"
},
"кто-то сталкивался с такой ошибкой?"
]
Константин Федуров
Firebase ml vision
Alexandr Drobyshev
а рестарт анализатора пробовали?
Alexandr Drobyshev
там стрелочки красняе снизу на панеле анализатора
nazirjon
Ребята, Background Models не добавляется в проект что делать??
Alexandr Drobyshev
я думал вам анализатор пишет) как про sink
Maxim Gora
Может быть из за того что контролёр не иннициализирван? Он же требует параметр vsync
Maxim Gora
Получается что тикер создался, но он не диспозится
Alexandr Drobyshev
ну я так понмиаю тут обрезан код, где то еще как минимум build ?? а значит может и initState в котором инициализация)
Дима
в debug console эту ошибку валит
Дима
[
{
"type": "pre",
"text": "@override\n void initState() {\n _controller = AnimationController(\n duration: const Duration(milliseconds: 1000),\n vsync: this,\n );\n super.initState();\n\n _controller.repeat();\n }",
"language": ""
}
]
Дима
[
"и вот такой кусок в build:\n\n",
{
"type": "pre",
"text": "Padding(\n padding: const EdgeInsets.fromLTRB(32.0, 32.0, 32.0, 0.0),\n child: AnimatedBuilder(\n animation: _controller,\n child: Container(height: 120.0, width: 12900, child: Image.asset(\"assets/loadingIcon.png\")),\n builder: (BuildContext context, Widget _widget) {\n return Transform.rotate(\n angle: _controller.value * 6.3,\n child: _widget,\n );\n }),\n ),",
"language": ""
},
""
]
Alexandr Drobyshev
гугл говрит что так пишет когда super.dispose вызывается раньше чем controller.dispose
Alexandr Drobyshev
но у вас вроде все ок
Дима
та я читал гугл ) потом уже решил тут спросить вообще странные странности какие-то)
Дима
на работу приложения оно никак не влияет конечно но всё равно спать спокойно не получается, зная что там такое
Alexandr Drobyshev
а что пишет до этого
Alexandr Drobyshev
All Tickers must
Alexandr Drobyshev
или The Ticker must
Alexandr Drobyshev
я вижу две ошибки в диспозе, давайте найдем какая именно у вас и посомтрим отчего она)
Alexandr Drobyshev
а ну это по классу понятно какая
Alexandr Drobyshev
Single же
Alexandr Drobyshev
ну вот она
Alexandr Drobyshev
то етсь ticker не нульь
Alexandr Drobyshev
и активен
Alexandr Drobyshev
блин шоб найти шо там происходит надо в студию лезть писать диспоз и клакать сомтреть)
Дима
[
{
"type": "link",
"text": "https://gist.github.com/snakeunsoft/10ec7a1e33c0bcf06af3a28aa6ee1ae8"
}
]
Дима
я ему стоп перед диспоузом писал - не помогло
Alexandr Drobyshev
у вас не тот файл
Alexandr Drobyshev
created by _OrderProcessedScreenState
Alexandr Drobyshev
вот в этом _OrderProcessedScreenState впишите контролер диспоз преде супер диспоз
Дима
я забыл что я его там создавал... и не выкинул
Alexandr Drobyshev
один из примеров наглдяно покзаывающий опчему не советуют названия классов и переменных похожими делать))
Alexandr Drobyshev
а вообще я обычно в андриод студии по ошибке в консоле клацая и попадаю обычно туда куда надо, чтоб имена не напутать)
Anton Zheltov
Интересно просто, зачем при публикации 2 вида скринов нужно загружать? При том, что они абсолютно одинаковые.
Alexandr Drobyshev
да пока я опубликовал с бекграунд локейшином и подписками у меня много было вопросов из ряда интерсено зачем или интересно почему например предупреждение о локейшине не приняли на фуллскрин экране, хотя в других прилах том же контраКам оно на фулскрине а меня заставили делать в диалоге))
Dmitry Bubnenkov
[
{
"type": "pre",
"text": "var list = Iterable .generate(10).toList();",
"language": ""
},
"\nгенерит от 0 до 10. Как мне сгенерить от 5 до 10?"
]
Дмитрий Щербаков
Вместо 10 засунуть random(5..10)
Дмитрий Щербаков
Точный синтаксис не помню с тлф
Dmitry Bubnenkov
мне random не нужен, мн нужна возможность от n до N сгенерить
Dmitry Bubnenkov
типа: 2,3,4,5
Анатолий
Просто цикл не катит?
Aleksandr
подкажите, делаю гет запрос на адрес либой http, в ответ приходит перенаправление на какой то url, как мне выдернуть из ответа этот url?
Alexandr Drobyshev
[
"я не знеаю) но если нет стандартногос пособа то можете так\n",
{
"type": "code",
"text": "var list = Iterable .generate(10)"
},
".where((v) => v > 4)",
{
"type": "code",
"text": ".toList();"
},
""
]
Alexandr Drobyshev
или через мап
Alexandr Drobyshev
лучше через мап видимо) меньше итераций вслучае если надо от 1000 до 1005
Анатолий
Ты вкурсе что через мап, ты прогоняешь эти данные через 3 цикла? Как он лучше?
Alexandr Drobyshev
ну может етсь стандартный способ, но если надо прям получить урл то он в хедере будет
Alexandr Drobyshev
так что будет 1005 итераций в которйо 1000 будет пропущено
Alexandr Drobyshev
а надо всего 5
Анатолий
Проще один обычный цикл от нужного числа и до нужного
Анатолий
И понятней будет
Alexandr Drobyshev
это же не по флаттерски, это ж уже императивно
Alexandr Drobyshev
и странная реализация в дарте мапы есл итам 3 цикла
Alexandr Drobyshev
удалю дарт
Илья Маненков
Ребят нужна помощь использую библиотеку flutter_bloc 1)Получаю данные с сервера при заходе на нужный экран get запрос 2) Загружаю данные в стейт 3) Со стейта вытягиваю данные на скрин все работает 4) Отправляю на сервер пост запрос в результате которого нужно что бы перерисовался экран , тобишь изменился стейт И вот дальше как быть? Нормальным ли тоном считается снова отправить гет запрос на получение новых данных Или все же лучше как то решить это по другому без повторного гет запроса
Анатолий
Генерация цикл, мап цикл, приведение к списку уикл
Alexandr Drobyshev
вы написали конктерно исполюбуя map я якобы три цикла добавлю
Alexandr Drobyshev
именно от мап
Анатолий
Не именно а вариант с мап
Alexandr Drobyshev
хороший вопрос, я по рзаному делаю) зависит от места и времени)) иногда я на пост просто отда новые данные, иногда вообще в приле просто подменяю если это устанвока какого нить лайка и ответ пернулся 200 то все ок
Alexandr Drobyshev
так я показал два варианта
Alexandr Drobyshev
var list = Iterable .generate(1005).where((v) => v > 1000).toList(); var list2 = Iterable.generate(5).map((v) => v + 1000).toList();
Alexandr Drobyshev
я сказал что итераций во втором будет явно мнеьше
Alexandr Drobyshev
что не так?
Анатолий
Столько же итераций в обоих
Alexandr Drobyshev
ну вам виднее
Анатолий
Они одинаковые и одинаково непонятные, что это за магическое число прибавляется?
Анатолий
Сгенерирую ка я лям элемннтов чтоб потом 5 из них взять
.Pasha Kruzenshtern
[
{
"type": "code",
"text": "var list = Iterable .generate(6, (index)=>index+5).toList();"
}
]
Илья Маненков
А если гипотетически это например магазин с корзиной, у тебя в корзине есть товары , ты удаляешь товар с корзины и отправляешь запрос на сервер , этот товар с корзины перемещается в другое место типа (отмененный заказ), как посоветуете?)
Константин Бобров
есть у кого решение, просто не понимаю что не так
Alexandr Drobyshev
[
{
"type": "link",
"text": "https://pastebin.com/Yw9SN3D1"
}
]
Alexandr Drobyshev
и да еще 5 накинем на map
Alexandr Drobyshev
не спорю
Alexandr Drobyshev
но путсь будет по ваешму что одинакого
Alexandr Drobyshev
точно!
Alexandr Drobyshev
говрю ж не знаю можно ил стандартными делать)) не приходилось)
Alexandr Drobyshev
в обоих случаях? серьзено?
Alexandr Drobyshev
var list2 = Iterable .generate(5).map((v) => v + 1000).toList(); тут будет 1000 элементов сгенерирована?
Alexandr Drobyshev
ну я не посоветую) ибо я тут сам чутьли не первый день) но я бы делал как сказал выше в даннмо случае. раз элемент удаляем то я могу его и локальнов приле удалить если ответ пришел от запроса удаления что все ок
Пашка
достаточно вспомнить формулу
Пашка
а не мучаться с мапами
Alexandr Drobyshev
какая формула тут поможет?)
Дмитрий Щербаков
Iterable range(int low, int high) sync* { for (int i = low; i < high; ++i) { yield i; } }
Alexandr Drobyshev
это ж императивно)) я тут месяц назад атк советовал, меня выгнали отсюда
Alexandr Drobyshev
а по сути шо генерате index + x шо map index + x один фиг это костыль)
Alexandr Drobyshev
и там и там на каждую итерацию будет доп функия вызываться)
Alexandr Drobyshev
так что я за for
A Kuper
iOS фотает в альбомной ориентации, тебе нужно фотку после снимка перевернуть в портретную
Даниил Левицкий
Девайсы выглядят по разному
Даниил Левицкий
На скринах иногда показывают сам девайс
Даниил Левицкий
Это повышает конверсию в инстал
Max
поделитесь ссылочкой - как выравнивать текст по обоим краям?
Kot Perf
TextAlign.justify: растяжение текста по всей длине строки
XbIK
да получается что проблема именно в формате heic, если сделать принтскрин и сохранить фотку в jpg, firebase ml прочитает файл
Kot Perf
Возможно что то ещё) пока учуст
A Kuper
flutter_exif_rotation 0.3.2
Alexandr Drobyshev
там же даже подчеркнули НЕ рандом
Алексей Александрович
а что, старый добрый do while уже не подходит для такой задачи?
Дима
норм вброс конечно вышел... сгенерить пару цифр а сколько вариантов решения ??????
Анатолий
[
"вы все еще этот цикл обсуждаете?\n",
{
"type": "code",
"text": "var val = [for(var i=5; i<10; i+=1) i];"
},
""
]
Анатолий
мне кажется у вас очень много синхронного кода, если вы конечно про последнее сообщение спрашиваете на скрине
Анатолий
циклы, переборы виджетов, математика, все это уменьшает фпс приложения ибо занимает процессорное время
Константин Бобров
Буду смотреть, спасибо
Алексей Александрович
погромисты развлекаются
Анатолий
старайся больше асинхронных обработок делать, выноси в функции код и асинхронно частями обрабатывай, циклы на генераторы асинхронные можно перевести если он большой и очень надо перебрать
Константин Бобров
Так у меня так и сделано все
Анатолий
ну, судя по всему этого не хватает, может что пропустил
Константин Бобров
Он это начало выдавать после обновления
Анатолий
[
{
"type": "link",
"text": "https://flutter.dev/docs/perf/rendering/ui-performance"
}
]
Анатолий
попробуй это, еще в панельках покопайся в андроид студио, там тоже вроде есть профайлер скорости
Vitalii Ishkevych
Кто может уделить несколько часов на корректировку проэкта? 50 долларов даю.
Vitalii Ishkevych
В среднем я думаю до 2х часов нужно.
Vadim Popov
Щедрый ты, за пол дня работы?)
Анатолий
ты работаешь 4 часа в день?
Andreu
обычная зп мидла за 4 часа, если там речь про 4
Vitalii Ishkevych
1-2 часа в зависимости от скорости работы
Анатолий
еще есть ньюанс один, один час минимум уйдет только на разговоры, скачивание кода, и понимание сути
Alexandr Drobyshev
я иногда и меньше)) работы нет, шеф уехал сегодня на отдых))
Vitalii Ishkevych
Проэкт лежит на гите, скачиваешь за 30 сек. Задач не много и все понятные.
Vadim Popov
Видио ты работаешь без таймтрекера ??
Vadim Popov
Счастливый человек
Alexandr Drobyshev
ток позавчера обсуждали что обычно заказчик сам знает скок часов надо и как все просто сделать)) не надо переубеждать) и я предлагал закажчикам самим и делать раз они знают хз зачем они кого то просят за деньги)
EcsFlash-
Есть какая нить дока максимально понятная по стримам, провайдеру?по блоку вроде есть
|