Программирование : Dart & Flutter по-русски
ilx13
интересно. как замутить?
ilx13
или куда копать подскажи
IB Akhrorov
Google map widget не запускается на ios , а на android запускается
IB Akhrorov
У кого была такая проблема
Fortune's Desire
Ждать релиза стейбл очевидно
Fortune's Desire
Или на нативке писать
Денис
ну круто) только у меня проект в релизе...
Fortune's Desire
Бывает...
Кирилл Матросов
Интересно, когда его ожидать. Уже 2 месяца прошло с 1.12. Не хотелось бы до google io ждать
Fortune's Desire
Я где-то что-то когда-то читал про три месяца между релизами
Кирилл Матросов
В прошлом году было чаще. Весной два релиза было 1.5 и 1.7
Денис
У меня теперь после некоторых манипуляций memoryview тоже стал ловить постепенный рост. Нашли что нибудь кроме официальной issue на эту тему?
Денис
[
"Судя по всему официально ошибка внутри ",
{
"type": "link",
"text": "Image.network"
},
" и Image.memory. Попробую все перевести на extended_image. Там вроде свои методы рендеринга и кеширования"
]
tdesc
по тегу версии берешь и билдишь
Денис
по тегу версии чего? неизвестно когда появилась эта ошибка
tdesc
всегда можно проверить взять несколько версий и протестить. вообще опенсорс и коммиты перед глазами
Fortune's Desire
Смотри, ишью появился примерно в середине ноября 2019, недавно сравнительно. Посмотри, не было ли патчей на еблоОС
Fortune's Desire
Мб это Эппл что-то заруинили, а так соре, отвлекаю тебя, просто мысли вслух
Fortune's Desire
Короче у меня есть время ботать фуллтайм 4-5 дня в неделю примерно 2 месяца ещё, где-то есть структурированный список/гайды что учить от простого к сложному? Заметил, что теряю много времени на рассуждения "что мне сегодня учить"
ilx13
int colData=11; final List nameController = List(); делаю так, а как при билде инкрементировать nameController? для того чтобы получилось controller: nameController[colData]
Co. In
[
"Кто как делает подобные кнопки?\n",
{
"type": "link",
"text": "https://i1.wp.com/cogitas.net/blog/wp-content/uploads/2017/12/example1.png"
},
"\n\nКак сделать подобное не через Container с текстом, a через RaisedButton\n\nУ кнопки какой-то Margin появляется\n",
{
"type": "link",
"text": "https://i.stack.imgur.com/NDKFX.gif"
},
""
]
Alexander PhatoM
о какой кнопке речь?
Alexander PhatoM
красная часть снизу должна стать кнопкой как на видео?
Timur Karimov
У меня с extended image эта проблема
Денис
Заюзал extended проблема стала медленнее) Но осталась...
Alexander PhatoM
кто-нибудь знает как добавлять и удалять роуты из стэка не переходя на их экраны?
Gorohov Valeriy
Сделать контейнер или паддинг с raised button.
Gorohov Valeriy
Если тебе нужен margin
Gorohov Valeriy
Не бойся добавлять виджеты, в разумных пределах. Вёрстка у flutter основана на комбинации базовых виджетов, а не на "супер виджетах" способных на всё. Простой пример такой комбинации - это Container.
Alexander PhatoM
[
"может кто знает как заменить стэк роутов? (скажем есть путь /one/two/three, после нажатия я хочу перейти на экран с роутом ",
{
"type": "bot_command",
"text": "/four"
},
", но чтобы пусть был /one/four)."
]
Alexander PhatoM
[
{
"type": "bot_command",
"text": "/four"
}
]
Денис
[
"popUntil() до ",
{
"type": "bot_command",
"text": "/one"
},
" и push ",
{
"type": "bot_command",
"text": "/four"
},
""
]
Денис
[
"или popUntil до ",
{
"type": "bot_command",
"text": "/two"
},
" и pushReplace"
]
Aleksey
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/widgets/NavigatorState/pushAndRemoveUntil.html"
}
]
Alexander PhatoM
а если нужно сделать /one/four/three ?
Gorohov Valeriy
[
"Сочетанием\n",
{
"type": "link",
"text": "https://api.flutter.dev/flutter/widgets/NavigatorState/replace.html"
},
"\n",
{
"type": "link",
"text": "https://api.flutter.dev/flutter/widgets/NavigatorState/removeRoute.html"
},
""
]
Alexander PhatoM
я так понял, что этот способ удалят роуты до определенного, а мне нужно установить свой путь
Gorohov Valeriy
[
"А лучше посмотри все методы и подумай какой или какие лучше подходят для твоей задачи\n",
{
"type": "link",
"text": "https://api.flutter.dev/flutter/widgets/NavigatorState-class.html"
},
""
]
Gorohov Valeriy
Он пушит новый и удаляет старые, именно в такой последовательности.
Aleksey
да, он пушит новый роут и удаляет все роуты, на которые укажет функция, которая передается вторым параметром
Eugene
Добрый вечер, коллеги, никто не сталкивался с тем что в vscode при установленном плагине для dart, flutter, все вроде как форматируется, определяется ошибка отсутствия";" но при сохранении оно автоматом не исправляется как например если работая с lint config?
ilx13
Алексей, посмотрите эту скрин. Я тут делал билд ListView как вы мне сказали пару дней назад. Сделал TextField внутри trailing в ListTile. так как мне прочитать данные из TextField? там может будет 2 может 10 ListTile.
Sasha
Может в массив записать эти данные
ilx13
хорошо. в onChanged напишу array[]=text?
Sasha
TextField(onChanged: (value) { map[index] = value; })
ilx13
хорошо спасибо, сейчас сделаю.
Sasha
В дарте по-моему так можно
Jason Fox
КТо юзал класс Search Delegate ?
Jason Fox
Как отсюда сделать закрытие текущего поиска и запустить новое окно?
Jason Fox
Чтобы не развёртывать снова уточняющие окно
Jason Fox
И сразу перейти другой странице
Jason Fox
Потому-что это виджет создания страницы
Jason Fox
А мне бы как-то его грамотно закрыть с последующим открытием моего окна
Sasha
Тогда не знаю, сорян)
Александр
Кто знает почему у меня ширина бордера на эмуляторе и телефоне разная, что делать?
Александр
причем разная существенно
Александр
на эмуляторе еле видна, а на телефоне жирнющая линия
Sasha
Скорее всего это связанно с размером изображения в настройках девайса
???????
Как называется флатер редактор представленный на интеракт? Помимо адоб хд
NewBalanceM5
сейчас найду
NewBalanceM5
[
{
"type": "link",
"text": "https://supernova.io/features/platform-export"
}
]
Валерий
облегчает жизнь. можно сказать визуальная верстка, только веселее
Sasha
Хм, и на сколько она облегчает(скажем в процентах)?
Валерий
тоже хотел попробовать сейчас, но она только под мак. мак у меня только на работе, так что об этом я узнаю в понедельник)
Sasha
Не забудьте рассказать как по пробуйте, интересно стало просто)
Валерий
главное что бы не оказалось что она генерирует код уровня zeplin или figma для нативки . если окажется так, то штука будет не особо полезная.
Alexander Popov
Обычная страшная кодогенерация
Валерий
ооооооооо, нет) спасибо) избавили от ожидания понедельника.
Sasha
?????? уже забыл)))
Alexander Popov
Но делает это он на удивление быстро, и можно экспортировать в проекты – прикольно. В принципе в каких-то тривиальных задачах это может быть просто полезно в плане уменьшения затрат времени, хз
NewBalanceM5
блин это как Adobe Muse был
NewBalanceM5
смотришь потом, что он сделал и все, привет пока.
Alexander Popov
Ну все, она повисла. Сейчас мак взлетит
Evgenii Elchev
В 2005 году я нашел macromedia и подумал «нифига себе, можно сделать сайт и не писать html” пошло 15. Где то раз в год находится человек, который пытается продать мне очередной macromedia. Но все они такие же не юзабельные как и тогда
???????
Adobe XD еще есть с плагином под флатер
???????
Но там больше для дизайнеров вашего проекта, как я понял
???????
На счет суперновы: я еще не пробывал, но возлагаю на нее надежду в виде базовой верстки с плейсхолдерами. Тк я далеко не UI/UX дизайнер (как и большинство здесь, как мне кажется, забиваю болт на фигмы) и хочетсвя поиметь черновик и основное представление, прежде чем начисто верстать.
Evgeniy
Xd хороший инструмент, сначала в нем макетирую. Ещё можно скачать android/ios ui kit, с оф сайтов
???????
Тама он во флатер научился
Evgeniy
Да, слышал, ещё с обновы flutter/dart.....но не думаю, что в этом есть смысл)
???????
Ну если из интерракта правильно понял, оно надо чтоб собрать какиет кастомные кнопочки для вашего приложения
???????
И какиет элементы, чтоб удовлетворить чувство прекрасного дизайнеров
Evgeniy
Был бы макет) Собрать не долго)
???????
Ну я имею ввиду, что сами дизайнеры и соберут кнопку и отдадут: на, вставляй
Evgeniy
Дык он отдаст в Легаси)) А у тебя bloc
???????
так это просто кнопка, коей ты просто на onPress повесишь myBloc.add
???????
Яж не говорю, что вся верстка будет, а про отдельные кастомные элементы)
Evgeniy
Никто ещё не завес понятный и простой state management?
???????
хз, мне понятно и просто)
???????
но стало таковым далеко не сразу)
Evgeniy
А что используется?
???????
Я на флатере редко делаю, но в последние разы остановился на BLoC, причем один на все приложение.
???????
[
"либы ",
{
"type": "code",
"text": "bloc"
},
" + ",
{
"type": "code",
"text": "provider"
},
""
]
Evgeniy
Мне чёт кажется он перегруженным....
???????
блок это 1 BehaviorSubject, 1 PublishSubject, 1 метод asyncExpand
???????
Все) Там больше ничего нету, кода в самой либе меньше чем на листик А4)
???????
Чего там перегруженного?)
Evgeniy
Я пет проект пелил, и чёт ввязался в scoped model....
???????
Ну ладно, еще 1 класс BlocDelegate там с 3 методами пустыми под override, но про него все забывают все равно)
Evgeniy
Непонимаю, как управлять удобно стейтами. Хочу экшены, мутации, геттеры и сетторы, реактивно. В делегате....синглтон. и наверное локальный стейт в компоненте
???????
Прост у людей приходящих во флатер одна из бед - принять реактивную концепцию
???????
Ну можешь все это в блок'е, не нравится он по каким то религиозным убеждениям - MobX есть
???????
Ну и аутсайдером идет redux
Evgeniy
Я из веба) С vue и node....привык к vuex.... Тут же все кажется жутко неудобным, непривычным
???????
А так, можешь взять rxdart и сделать сам, говорюж, там 2 стримконтроллера и 1 asyncExpand - больше там ничего толком нет, можешь открыть и посмотреть сам)
???????
Хоть по новому стейтменеджеру на завтрак обед и ужин)
Evgeniy
Видимо недопонимаю стрим. Нужно повникать. Спс
???????
Ага, прост потихоньку вкатишься)
???????
Я на дартпад переписывал на нативные стримы блок, чтоб разобраться)
???????
Еще на старой версии блока, когда метод екстеншенов не было и rxdart был с Observable, а не stream)
Evgeniy
Верстать мне легко, когда то юзал активно qml из qt, там похожий принцип иерархии. А вот со стейтами туплю
???????
Ну верстка тут модная, сча это популярно во всех сферах) Под js даже фреймворки завозят, чтоб презентации кодом верстать)
Vladislav Navrocky
В QML, кстати, верстка декларативная, но работает по другому. Совсем не так как во Flutter
Evgenii Elchev
это и для html справедливо)
Eugene
Коллеги, добрый день, стоит выбор для десктоп/веб приложении которое непосредственно связано через fb realtime с flutter приложением. И то и то только начинается. Есть задача выбора платформы для д/веб -- что взять? ng, react, flutter, etc.?
Renat Fakhrutdinov
Бери реакт. Флаттер веб ещё в бете
Evgenii Elchev
пофиксил эту беду с помощью саб навигатора, в контекст которого и внедряется блок. В итоге у экранов этого навигатора блок есть, у остального приложения нет))
Александр Артемьев
[
{
"type": "bold",
"text": "Добрый день! Кто нибудь знает как отключить анимацию вытягивания в ListView?"
},
""
]
Renat Fakhrutdinov
Просто не знаком с ng)
Александр Артемьев
Спасибо!
Денис
Народ насколько сложно перенести небольшое приложение на hummingbird, просто на пк есть сайт, а для мобилок он корявый, думали мобильную версию делать и тут я вспомнил что есть hummingbird
???????
лол, ничоси ты название вспомнил)
???????
Говори просто: Flutter Web
Денис
мне не нравится слово web
???????
Все зависит от зависимостей и только
???????
Сори за тафталогию)
???????
Если есть плагины или io - сразу жёпь ебрило. Твое спасение в conditional imports
???????
Если нету и все на нативном дарте без зависимостей от dart:io - 1 командой ты получишь веб приложение
Evgeny Cherkasov
в дарт паде не поддерживается импорт библиотек? provider в частности
Mitai
если открыть Compute Pi то там есть импорт, значит умеет
Evgeny Cherkasov
[
"пишет:\n",
{
"type": "pre",
"text": "Error compiling to JavaScript:\nUnsupported input: package:provider/provider.dart",
"language": ""
},
""
]
Денис
там есть список плагинов, но жопить ебрило я не переставал) просто вопрос по времени если список плагинов не сильно большой) пару месяцев или полгода?) из основных которые меня пугают для переноса в веб это firebase, get_it
Денис
стоит вообще браться
Денис
или взять аутсорсера на мобильную версию сайта выйдет лучше? просто в humminbird меня радует что я сам его буду поддерживать и не придется отдавать задачи в руки рукоблудов
Денис
у нас просто свой проект и платим аутсорсерам по факту со своего кармана
Денис
я приложение написал за месяц, потратить на веб версию полгода будет явно не рационально)
Daniil Kolyasnikov
get_it вроде на чистом дарте
Daniil Kolyasnikov
то есть у него нативных зависимостей вообще нет
Daniil Kolyasnikov
firebase какая именно часть ?
Daniil Kolyasnikov
firestore ?
Daniil Kolyasnikov
если да, то для веба они тоже уже запилили поддерэку
Daniil Kolyasnikov
Но мне кажется, что flutter приложение в вебе пока не очень умное решение.
Денис
наверное потому что для простых задачек он давно готов) для больших уже опционально от задачи) а вот веб готов или нет?)))
Iliya Kuznetsov
есть ли пример приложения десктопного чтобы ява и флуттер, можете ткнуть?
Александр Артемьев
У NestedScrollView и CustomScrollView при physics: ClampingScrollPhysics() анимация вытягивания остается :(
Evgenii Elchev
кстати тоже бегло ресерчил проблему, не нашел решения. ClampingScrollPhysics при установке отключила вытягивание, но это был баг, потому что потом она вернулась и больше уже не пропадала. Ну и ClampingScrollPhysics это не физика iOS очень не естественно на айфоне смотрится
Evgenii Elchev
подозреваю что надо писать свой виджет или поискать в сети
Александр Артемьев
Интересно другие как выходят из этого положения? Или просто оставляют как есть с анимацией вытягивания. Свой виджет писать не сильно охото. В сети все перебрал
Evgenii Elchev
очевидно оставляют, я посмотрел на приложения в сторе, у многих анимация вытягивания не убирается даже если контент полностью помещается на экране, хотя я всегда убирал в своих приложениях
Evgenii Elchev
В ios ее можно отключать
???????
Для прода флатер веб сыроват энивэй
ilx13
есть ли способ получить value из TextField без использование контролов? длпустим у меня 10 TextField.
Vladimir Migalkin
Всем привет! Может кто сталкивался с таким багом. На андроиде апп крашится при переключении на другой апп. Сценарий такой: вот я запустил app (релизная сборка) дальше запускаю например youtube смотрю там видео минуты 2, пытаюсь вернуться на свой app и он падает. Девайс дешевый с android 7.0
ilx13
таким образом из 10-ти если изменить 3-ий то запишется как данные из первого TextField.
ilx13
мне нужно что бы было ясно, какой текстфилд был изменен
ilx13
как мне узнать что изменен был третий? у меня создается билдингом
ilx13
так как заранее не ясно сколько будет текстфилдов
ilx13
спасибо большое за идею
Денис
спасибо, не буду тогда пока и трогать
Денис
Ребят переполнилось место на диске и оказалось что создана куча папок (A Document Being Saved By xcdevice 42) внутри файлов на гиг в каждой. Все находится в папке TemporaryItems. Могу ли я спокойно почистить все эти папки? У меня проект недавно крашил много думаю это остатки.
Денис
dart помойму везде с json работает как Map
Денис
через jsonEncode и jsonDecode или я ошибаюсь?
Денис
так ты используешь jsonDecode?
Денис
у тебя json уже Map или еще String?
Денис
ты скинул отсутсвие кода и ошибки
Денис
информация есть только что класс у тебя Hero
Денис
во первых еще раз спрошу
Денис
где код получения json и обработки?
Денис
ты мне кинул код класса который полностью работает в dartpad
Max
Ключевой вопрос в этой истории - назначение странички на выходе. Должна ли она индексироваться, к примеру?
Денис
[
"это будет ",
{
"type": "link",
"text": "m.site.com"
},
" думаю индексации ",
{
"type": "link",
"text": "site.com"
},
" будет достаточно?"
]
Max
Главный недостаток Flutter Web - в том, что это не Web. Вообще ни разу. Это новый Flash, на самом деле.
Денис
ну понятно что это PWA а не классический web
Max
Это даже не PWA, потому что не progressive нигде.
Evgeny Cherkasov
Вчера в контексте обсуждения bloc возник вопрос что делать если изменился какой то элемент списка. Было предложено просто генерировать новый стейт со старым списком, в котором предварительно проапдейтить нужный элемент. У меня возник вопрос нормально ли, что таким образом весь ListView будет изменяться, и не лучше ли слушать изменения для каждого элемента списка отдельно. Я поигрался сегодня с этим примером. Вывод - обновлять весь список нормально для подавляющего большинства случаев, отдельно слушать изменения для каждого элемента смысла нет.
Max
Flutter не работает c DOM, у него свой кастомный рендеринг на canvas
Evgeny Cherkasov
Если кому интересно, то подробности такие: 1. ListView.builder достаточно умный, чтобы не билдить все элементы сразу (собственно это написано в документации). Т.е. если мы ему даем список из 100 элементов, а на экране влезает только 9, то он билдит 12 элементов (видимо с каким то запасом). Я это смотрел с помощью Flutter Performance.
Evgeny Cherkasov
2. При скроллинге он билдит только те элементы, которые появляются по мере прокрутки. Если скроллить медленно, то по 1, если быстро, то у меня доходило до 4-6 элементов.
Денис
Насколько мне известно PWA это размытое понятие. Вы считаете что flutter web не progressive. Нет смысла филосовствовать и спорить. Вопрос даже не стоял pwa это или нет. Вопрос стоял работает ли оно или сырое все. Я вообще не люблю весь web. Для меня что PWA, что не PWA, что клей ПВА) Просто стоит задача запилить мобильную версию сайта или как вариант запилить web версию готового приложения. Сайты писать не умею и не хочу. Просто было бы проще для меня сделать на Flutter, чем платить другому человеку. Мне уже сообщили что Flutter Web сырой. Разводить холивар не вижу смысла)
Evgeny Cherkasov
3. Более того, перерисовывается вообще только то, что реально изменилось. Например в случае когда мы поставили галку у одного элемента списка и обновили стейт, то перерисуется на экране только один этот элемент (хотя сбилдится 12, как я писал выше).
Evgeny Cherkasov
вот так это выглядит
Max
Вообще в 2020 иметь разные версии сайта для разных устройств - это уже очень плохо. Но да, это уже выход за тему дискуссии (
Денис
Просто есть всегда два варианта: правильный и дешевый. На момент запуска сайта был только дешевый вариант. Так как денег не было от слова совсем. Вот и делаем выводы) А заказывать новый сайт полностью пока не рентабельно.
|