Программирование : Dart & Flutter по-русски
northelks
decoration -> contentPadding
northelks
и не забываем про хорошую привычку читать исходные коды)
Sergey Bubnov
Типа в одном виджете, просто по условию ретюрн делать? Или это прям стэк роутов ?
northelks
нет, без роутов
northelks
виджет = стэк, в котором мэин + сплэш, и слэш потом пропадает, когда мэин готов
Dmitry Bubnenkov
Почему в VS code номера строк не печатаются где ошибка?
Sergey Ivanov
ночью когда?)
Kherel
на краях тоже артифакты белые
northelks
в релизе/девайс тоже такое
northelks
на мастер ветке (стэбл не успел затестить)
Андрей Хливнюк
такие тени - это пнг?
Kherel
бэкграйнд кртинка, тени карточки просто elevation
Андрей Хливнюк
ну я про тени от пачек кофе)
Андрей Хливнюк
хотя это логично, что пнг
Sergey Ivanov
[FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzaq@5a5948a перед ошибкой такая строка, zzaq@5a5948a это что такое? не ид приложения случайно?))
Kherel
можно можно как-то по другому сделать? кропкнуть все еще раз.. cliprect'ом нет?
northelks
точно не скажу решение, нужно пробовать
northelks
ну и на реальном девайте тоже потестить, может там всё норм
Dmitry Bubnenkov
А можно как-то сделать так, чтобы VS Code только про ошибки писал без доп инфы на скриншоте выше
Dmitry Bubnenkov
Вот этой
northelks
у меня в pageview с фотографиями на весь экран, фото толстое, происходит скролинг - то такие артефакты порой вылетают
Sergey Ivanov
[
"а с такой ошибкой кто -то сталкивался при установке на айфон:\n!] ",
{
"type": "code",
"text": " "
},
" attempted to initialize an object with an unknown UUID. ",
{
"type": "code",
"text": "CF3B75C9A7D2FA2A4C99F110"
},
" for attribute: ",
{
"type": "code",
"text": "children"
},
". This can be the result of a merge and the unknown UUID\n?"
]
Игорь Чичерин
[
{
"type": "link",
"text": "https://pastebin.com/7yUXQWKz"
},
"\nесть какая то возможность сконвертить dynamic в передаваемый класс в аргументах?"
]
Савостьянов Андрей
Всем привет! Никто не слышал про полифилы для flutter_web для адаптации к разным браузерам?
Влод
в этом плане там все довольно просто
Влод
flutter_web тестируется только на хроме
Влод
так что вы возможно говорите про дарт без флатера насколько я успел понять полифилы это про то как компилировать новый джиэс в джиэс поддерживаемый на старых браузерах и у дарта такой проблемы быть не должно: его таргетный джиэс и так должен быть для относительно старых браузеров
Савостьянов Андрей
Рассказываю: когда пишешь приложение, например, на Angular 2+ возникает проблема: используемый WebAPI не поддерживается всякими архаичными браузерами (Safari, IE...). Для них при сборке вебпаком настраиваешь упаковку дополнительных js файлов, так называемых полифилов. Т.е. приложение при работе определяет тип браузера и оборачивает вызовы некоторых WebAPI в специальные методы из этих библиотек-полифилов, поддерживающих всяких "осликов". Это общепринятая практика. Очень жду для Flutter web такого. Хотя бы в превью/альфе.
Sergey Ozeranskiy
Всем привет, вопрос по BLoC
Влод
возможно остались в живых люди которые застали времена когда дарт был для джиэс и они поведают. а так по сути я думаю у высокоуровневых языков компилируемых в джиэс нет таких проблем
Влод
ну то есть высокоуровневые там где с языком жирная стдлиба идет и выхлоп не соотносится 1 к 1 с оригиналом
Влод
ссылку видимо запостил
Влод
типа спамовое поведение
Sergey Ozeranskiy
я смотрю на flutter_bloc и думаю
Sergey Ozeranskiy
это иной подход относительно rxdart?
Савостьянов Андрей
Речь идёт про flutter_web - разработка веб (js) приложений на базе dart2js компилятора.
Sergey Ozeranskiy
и вообще flutter_bloc актуален? есть кто использует?
Савостьянов Андрей
Есть именно такие проблемы. Тот же Ангуляр это Typescript. Типовое решение - полифилы. Это почти стандарт разработки. Ищу такое же решение для flutter_web
Савостьянов Андрей
Половина Флаттер разработчиков как минимум пробовали. В чем суть вопроса@
Влод
в целом bloc да вполне
Sergey Ozeranskiy
я увидел несколько решений и растерялся
Sergey Ozeranskiy
не знаю что лучше взять скажем так
Влод
rxdart комбинаторы над стримами не архитектура приложения
Vsevolod
[
{
"type": "link",
"text": "https://dou.ua/lenta/articles/flutter-architecture/"
}
]
Sergey Ozeranskiy
мне симпотизирует Bloc архитектура
Влод
то есть он использует те же стримы которые идут с дартом
Савостьянов Андрей
Гугл сказал с мая 2019 всем (а особенно новичкам) брать Provider. Серьезно.
Влод
и ты используешь rxdart чтобы упростить свои задачи для блока или редукса, или не используешь
Савостьянов Андрей
[
"provider | Flutter Package\n",
{
"type": "link",
"text": "https://pub.dev/packages/provider"
}
]
Влод
сложно скоординировать наш майндсет
Sergey Ozeranskiy
изучу, спасбио
Влод
сейчас попробую дать тебе поинт для размышления
Влод
[
{
"type": "link",
"text": "https://github.com/flutter/flutter_web/blob/master/README.md"
}
]
Влод
сейчас они делают пруф оф концепт как бы. им можно пользоваться но проблемы совместимости сейчас игнорируются
Sergey Ozeranskiy
Правильно понимаю что такой подход является приемлемым?
Sergey Ozeranskiy
Хочу понять что есть правильно
Савостьянов Андрей
Рекомендуемым разработчиками Флаттер как типовой. Начиная с мая 2019 всякие обучающие примеры, семплы и пр. включаемые во Флаттер делаются на провайдере.
Савостьянов Андрей
Дефолтное решение.
Sergey Ozeranskiy
Завтра изучу тогда
Sergey Ozeranskiy
Спасибо
Олжас Сулеймен
[
{
"type": "link",
"text": "https://google.qualtrics.com/jfe/form/SV_3kiGXYfYOfXUjB3"
}
]
Савостьянов Андрей
См. п.1 этого списка: "пока не поддерживаются внешние пакеты кроме встроенных html, js,..." И тем не менее спец из этого чата FOX запустил и rxdart и всякие другие штуки и всем здесь показал как. Поэтому и спрашиваю совета. Здесь.
Влод
а. я мешаю тебе разговаривать. ок
Савостьянов Андрей
Ребята голосуйте чтобы web в первую очередь довели до релиза!
Олжас Сулеймен
а я десктопы кликал ))
Савостьянов Андрей
На вкус и цвет все фломастеры разные:)
Roman Peshkov
веб не осилят)
tdesc
Веб для флаттера в разы важнее
Савостьянов Андрей
Сплюнь три раза через плечо
tdesc
Десктоп был вообще сайд проект энтузиастов
Roman Peshkov
не знаю, пока это всё похоже на сильверлайт 2.0
Влод
ну плагины не надо ставить)
Олег
Вопрос по поводу правайдера. Я так понимаю в провайдере можно загружать данные с сервера. Вполне вероятна ошибка. Как в виджете показать ошибку в виде AlertDialog через метод showDialog?
Dmitri Alternativnov
Всем привет, ребят, как лето, как настроение? Правила прочитал, сейчас запишу видос, скопирую код и конвертну его в gif застрял в sliverом, вообще не могу разобраться сам
Artem Shkryab
Что именно беспокоит? Нужно увеличить аппбар что бы влез текст?
Слава
Привет, а кто-нибудь в курсе как можно напрямую обратиться к Dart VM из ios кода?
Слава
Чтобы выполнить dart файл
Artem Shkryab
флексиблСпейс
Dmitri Alternativnov
при сворачивании, чтобы overflowed не показывалось, а все более-менее гладко проходило или сразу сворачивалось
Dmitri Alternativnov
щас посмотрю, спасибо
Artem Shkryab
Не...не смотри... Не то)
Савостьянов Андрей
Встроить Flutter в существующее iOS приложение? Никогда о таком не слышал.
Artem Shkryab
Думаю там есть контроллер, можешь все в опасити положить, и менять прозрачность по скроллу
Artem Shkryab
В релизе оверфлоу показываться не будет
Dmitri Alternativnov
спасибо большое за зацепку, не хватало мнения со стороны, спасибо еще раз
Artem Shkryab
Можно текст поместить в Flexible, и он будет уменьшаться.... Контроллера нет, но можно наследовать этот аппБар, и там есть что-то... В боринг шоу его разобрали
Слава
Ок, как можно потом из swift'a запустить интерпретацию своего dart скрипта?
Artem Shkryab
[
"Смотрите \"Slivers Explained - Making Dynamic Layouts (The Boring Flutter Development Show, Ep. 12)\" на YouTube\n",
{
"type": "link",
"text": "https://youtu.be/Mz3kHQxBjGg"
},
""
]
Artem Shkryab
К Dart vm никак. Можно запилить флаттер екран в существующем приложении
Олжас Сулеймен
через дарт изолят можно же или не то?
Artem Shkryab
В Андроиде ещё можно флаттер Вью сделать.... Типа отдельно кнопка
Слава
Ок, буду просто копать флаттер и смотреть что там под копотом вызывается такого
Савостьянов Андрей
По моему никак. В Флаттер есть channel - это когда ты во Флаттер приложение встраиваешь кусок Свифта/котлина и вызываешь его методы. Есть пакет, позволяющий раз в 15 минут в бекграунде вызывать кусок Дарт кода. А из него например Свифт. Наоборот никогда не видел.
Олжас Сулеймен
В обычной вм на лету можно сбилдить файл и запустить в изоляте или импортонуть как библиотеку с помощью мирроров
Artem Shkryab
Ничего не мешает переместить код запускающий флаттер из первого экрана в иосе в то место где это требуется, этот метод запускает меин метод из дарт кода, не проверял откроется ли при этом пустой экран, если убрать стартАпп из меина, или останется нативный экран
Слава
У меня друг горит идеей сделать ide под айпады и ищет, что такого модного туда можно засунуть. Смотрю ему каким способом вообще можно запустить dart. Хоть дарт билдится под arm64, но я гляну и кажется больше будет заморочек собрать это как библиотеку для ios'a, чем поразмышлять над магией запуска и работы dart vm на устройствах
Слава
Для ide конечно придется все же собирать всякие аналитик тулы для анализа синтаксиса, но это долгосрочные перспективы
Artem Shkryab
Нельзя запустить дарт из приложуху.... В дебаг режиме, когда ты от кабеля запускается vm, в релизе вам нет.
Слава
Я знаю, что в релизе AOT
Савостьянов Андрей
Ух тыж ё. Вам, думаю, стоит выдрать из Flutter tools дебажную вм Дарта. У нее есть Апи хотрелоада (подмены исполняемого кода в рантайме) но как это использовать я не представляю.
Artem Shkryab
Дарт, как и многие другие языки нативные, значит текст который ты печатаешь превращается в машинный код, приложуху так не умеют...
Artem Shkryab
А ещё фреймворк... Даже если чисто дарт... Сколько там весит он?
Artem Shkryab
Я думаю на iOS есть приложухи где можно кодить на java... На иосе сто jdk?
Artem Shkryab
Ето должно происходить на беке... Отсылаешь код, бек создаёт файл *.Dart, запускает через консоль, возвращает результат
Савостьянов Андрей
Нет. Релиз ДартВМ исполняет байт-код. Такой же как и дебаг ДартВМ. Разница в ВМ в наличии хотрелоада (подмены кода при исполнении) и глубоком тришейкинге при сборке Флаттер приложения. Инфа от Егорова (разработчик ДартВМ).
Artem Shkryab
Пруфы что в релизе есть вм?
Sergey ?
есть, но максимально урезанная
Sergey ?
был же в подкасте надавно разработчик дарт вм
Савостьянов Андрей
[
{
"type": "link",
"text": "https://m.soundcloud.com/flutterdevpodcast/5-dart-vm"
}
]
CrazyAlarmClock
всем привет, а может кто посоветовать проги на подобие vysor?
Sergey ?
надо просто миррорить экран?
CrazyAlarmClock
ну и чтобы ide его видела)
Sergey ?
vysor для мирроринга и управления девайсом
CrazyAlarmClock
а он все ровно видеть будет? у меня просто макбук слабенький, а телефон лежит на зарядке и раздает инет. эмулятор android/ios жрет не хило просто
Sergey ?
где лежит, что происходит )
CrazyAlarmClock
на зарядке ??
CrazyAlarmClock
попробую Reflector что ли
CrazyAlarmClock
спасибо, сейчас посмотрю
Яўген
Подскажите пожалуйста, как это пофиксить
DVS (Read The F.ng Manual) Studio (NoHello)
перейти по ссылке и сделать по инструкции
KeepOnSmiling ??
Насколько вот такой возврат (в случае с else-веткой) корректен для вызова этой функции через await? Или что-то не так делаю?
KeepOnSmiling ??
внутри then будет последовательная (синхронная) обработка содержания файла (content)
KeepOnSmiling ??
Или правильно как-то иначе делать?
Karen
А тебе нужен результат обработки файла?
KeepOnSmiling ??
Да, чтобы loadFile дождался полной обработки (той что в then)
KeepOnSmiling ??
Просто насколько я понимаю rootBundle.loadString работает только асинхронно, это очень портит мне малину :)
KeepOnSmiling ??
Приходится дождаться обработки файла и сделать ребилд виджету, покуда от содержания файла зависит контент виджета
Karen
Разве что возвращать вьючер не обязательно вроде
KeepOnSmiling ??
Почему? Если вы про первый возврат - это если файл уже загружен и обработан, чтобы он сразу вернулся туда к await-выполнению и последовательно продолжилась работа программы
KeepOnSmiling ??
Я просто не знаю, может в Дарте реально это как-то упрощено и оно само возвращает, поэтому и спрашиваю..
??
если функция объявлена как async, то можно возвращать сразу значение (bool), не обернутое в Future
??
[
"т.е. в третьей строке достаточно ",
{
"type": "code",
"text": "return true;"
},
""
]
(;?_?) Ivan Zhuravlev ???>?
Коняшик, я же правильно предполагаю, что твой pubver не расчитан на flutter версионирование? =)
KeepOnSmiling ??
А, точно. Так тоже работает. Спасибо :) А есть ли разница, обернуть или нет?
(;?_?) Ivan Zhuravlev ???>?
ну т.е. в том смысле что у тебя на вменяемый semver написана обертка, так ведь?
??
я надеялся, что он работает с флаттером. если у тебя не работает, открой, пожалуйста issue, я буду разбираться
??
там более-менее стандартный semver внутри, да
??
если async, но не надо оборачивать
??
но большой беды не будет, дарт развернет вложенные фьючеры
KeepOnSmiling ??
А в случае с then - там тоже не нужно оборачивать?
??
не уверен, но мне кажется там тоже не надо
??
но тут не возьмусь точно сказать
??
надо знать какой тип принимает then()
Yuniia
Ребят, привет. Может кто то сталкивался с таким: у меня если initState переопределить как асинхронную она не работает в режиме дебага, но в режиме релиза все нормально. Кто то может объяснить с чем это связано?
KeepOnSmiling ??
А она может вообще работать в асинхронном режиме?)
Yuniia
У меня работала, но только в релизном
Yuniia
Может как то с производительностью связано
KeepOnSmiling ??
[
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/14152"
},
"\n\nСправедливости ради, вот тут говорили, что они сделали возможность initState переводить в асинхронный режим"
]
KeepOnSmiling ??
А какой результат вы ожидаете получить и как проверяете это?
KeepOnSmiling ??
И он не уходит в асинхрон?
KeepOnSmiling ??
Логично, это же асинхронный initState :)
KeepOnSmiling ??
А в чём далее загвоздка?
Yuniia
Данные не приходят
Yuniia
У меня помимо этого в инитСтейт таймер
Yuniia
Который тоже асинк
Yuniia
И по нему тоже запросы с периодичностью
KeepOnSmiling ??
Чувствуется какая-то очень продвинутая система :)
KeepOnSmiling ??
Может в ней где ошибка?
KeepOnSmiling ??
Вдруг данные приходить не успевают, как делается следующий запрос?
Yuniia
Если у меня только таймер асинк то все в порядке, а если и инитСтейт то нет
Yuniia
Вряд ли, я делала перерыв пол минуты
Yuniia
Не думаю что за такое время что то могло не прийти
KeepOnSmiling ??
А ошибки какие-нибудь приходят во время запроса?
KeepOnSmiling ??
Может их помониторить
Yuniia
С самим запросом все ок
KeepOnSmiling ??
Может какой-то кусок кода показать, там понятнее будет что куда?
Yuniia
[
{
"type": "mention",
"text": "@override"
},
"\n void initState() async{\n super.initState();\n var _list = await updateList();\n setState(() {\n profilesList = _list;\n });\n\n Timer.periodic(Duration(seconds: 5), (timer) async {\n \n var l = await _updateState(profilesList);\n setState(() {\n profilesList = l;\n });\n });\n }"
]
Karen
Initstate же не асинк. У вас оверрайд работает?
Yuniia
Мне просто непонятно почему в дебаге не работает а в релизе работает
KeepOnSmiling ??
Может вызвать отдельную асинхронную функцию и там уже весь этот синхронизированный код?
KeepOnSmiling ??
Чтобы не мучаться с переведением initState в асинхронный режим
Влод
ну дарт скажем вополнить не получится
KeepOnSmiling ??
Через сервер ??
Влод
ну и компилятор туда завести тоже звучит не ок
KeepOnSmiling ??
На сервере выполнить и вернуть результат :)
Влод
снапшот выполнить уже реальнее
Слава
Я пока ещё не видел людей, которые пользуются обычными иде
Влод
но чет про это как-то не особо распространяются в статейках
Слава
Все можно было бы сделать проще, если в iOS можно было как в android запустить бинарник напрямую
Влод
довольно дохлая затея
Влод
но крч в целом интересно
Yuniia
да, пожалуй так и сделаю)
Влод
в целом я думал над этим не то же самое что у тебя но суть такая же
Влод
нужно экспо для флатера запилить
|