Программирование : Dart & Flutter по-русски
Дмитрий Щербаков
ну тогда уж не на медиум ссыль а в доки)
Семён undefined
иногда доки могут только отпугнуть
Семён undefined
особенно если без кортинок
Дмитрий Щербаков
[
{
"type": "link",
"text": "https://flutter.dev/docs/development/add-to-app/android/project-setup"
}
]
Дмитрий Щербаков
с картинками даж))
Nikolay Korolev
сейчас я захватываю виджет и конвертирую в картинку, но ска оно виснет в момент конвертации
Семён undefined
так вроде наоборот просили во флаттер андроид
Nikolay Korolev
всё верно ;)
Дмитрий Щербаков
аа ну тогда platform channels
Nikolay Korolev
парни никто про миникарту не подскажет ?(
Семён undefined
не ну там же вроде был способ вьюшки андроида запускать
Nikolay Korolev
дублировать виджеты считаю не производительным
Семён undefined
ну так сроки)
Nikolay Korolev
может есть захват виджета и конвертировать его в канвас?
Семён undefined
ты про навигацию как в галерее?
Igor Filippov
Можно пл идее на browserstack эмулировать айфон
Emil’ Lively
Можно ли сделать реально очень быстрое приложение и легкое как например Snapchat на Flutter?
Nikolay Korolev
ну как в игре миникарта)
Семён undefined
типа приближать можно или что? или слежка камерой?
Nikolay Korolev
ну захват камеры и приблежение, это с помощью interactiveviewer
Nikolay Korolev
а вот отрисовать теже виджеты, способы какие есть , в данный момент отрисовываю через захват виджета и перевода его в картинку
Nikolay Korolev
но вот момент обновления, очень медленный и приложуха подвисает
Семён undefined
то есть уменьшенная копия
Nikolay Korolev
и я вот ищу способы
Nikolay Korolev
прям в точку !")
Семён undefined
ну вроде что-то видел, но уже не помню
Максим
class HomePage extends State { Widget build(BuildContext context) { return MaterialApp( home: Scaffold( GestureDetector( onTap: () { showModalBottomSheet( context: context, builder: (BuildContext context) { return new Container( child: new Text( 'This is the modal bottom sheet. Click anywhere to dismiss.', ), ); });
Nikolay Korolev
дублировать же виджеты будет плохой идеей
Nikolay Korolev
потому что допустим у меня будет тысячи виджетов на этой карте
Nikolay Korolev
и можем просто ставить крест )
Максим
Всем привет, почему при попытке вызова модального окна выпадает ошибка. The following assertion was thrown while handling a gesture: No MediaQuery widget ancestor found. MainPage widgets require a MediaQuery widget ancestor. The specific widget that could not find a MediaQuery ancestor was: MainPage state: HomePage#397bb The ownership chain for the affected widget is: "MainPage < [root]" No MediaQuery ancestor could be found starting from the context that was passed to MediaQuery.of(). This can happen because you have not added a WidgetsApp, CupertinoApp, or MaterialApp widget (those widgets introduce a MediaQuery), or it can happen if the context you use comes from a widget above those widgets.
ai
как влючить настройки уведомлений приложения с кода?
Pavlo Baraniuk
Ребят подскажите пожалуйста, я могу протестировать приложения на производительность как-то?
Pavlo Baraniuk
А как я могу это сделать, можете подсказать?
Nikolay Korolev
вызывать это меню из
Pavlo Baraniuk
ага я понял, спасибо большое
Nikolay Korolev
happy testing
Dmitry
ребзи, если есть, дайте плиз ссылочку на нормальное объяснение навигатора 2.0 желательно в тандеме с блоком оф документация (которая на медиуме) что-то какая-то замороченная
Pavlo Baraniuk
Спасибо большое)
Denis Vasilchenko
Вчера пол дня так искал Купертино виджет, чтобы сделать форму как в настройках айос. А в итоге оказалось что в api флаттера эти классы есть, но в списке виджетов в доке - нету))
Богдан
Народ а как вам идея использовать javascript вместо dart при написании flutter-приложений? Flutter довольно неплохо конкурирует с React Native но многих останавливает необходимость изучать дарт вместо любимого тайпскрипта и если бы не дарт думаю популярность флаттера была бы на порядок выше. Так почему бы просто не использовать js/ts вместо dart? Я не вижу ни одного технического ограничения для этого. Flutter умеет компилироваться в js (flutter for web так и работает) а раз мы уже получаем js-бандл то почему бы не заменить код приложения (которое скомпилировалось в js) на код нашего приложения которое будет изначально разрабатываться на js/ts ? Понятно что такой способ подходит пока для только при использовании flutter for web (потому что на мобилках дарт компилируется в нативный код в обход джаваскрипта) но с другой стороны и на мобилках тоже можно запустить тот же флаттер (скомпилированный в джаваскрипт) но поверх webview (или жс-движка подобно тому как работает react native)
d
ну там только наиболее используемые виджеты
Denis Vasilchenko
Теперь уже понял, а то я уже собирался читать их гайдлайны и костылить вручную
d
смысл терять производительность там где можно ее не терять?
Максим
Ребзя. хелп ми) Второй день бьюсь над ошибкой) В эмуляторе все работает, а на телефоне ошибку эту выдает( Все перекопал, не понимаю в чем проблема
Denis Vasilchenko
Да и тайпскрипт не может гарантировать типы во множестве мест, где, казалось бы, должен бы. В этом плане дарт будет мощнее, как мне кажется. И в итоге образуется ложная уверенность, что все хорошо
Игнатьев Дмитрий
???? какая версия image_picker стабильней? И есть ли аналоги по лучше, а то в новой версии нельзя поставить ограничение на Макс количество фоток
Дмитрий Щербаков
вообще идея webview плохая. он неуправляемый.
Богдан
Почему использование жс вместо дарта это значит однозначно терять производительность? Вот например react native работает на js и если бы реакт-нейтив работал бы 10 раз медленнее флаттера то наверняка уже кто-то бы написал разгромную статью с пиаром флаттера. Но нет, они работают примерно аналогично по скорости благодаря тому что javascript также умеет компилироваться в нативный код (через jit) а у v8 есть куча оптимизаций поэтому скорость работы нативного dart-а и js будет примерно на одом уровне
Дмитрий Щербаков
Не будет
d
зачем это нужно если все и так хорошо работает?)
Дмитрий Щербаков
Если брать что то сложнее каунтера и хелловорд
d
ну как минимум вам надо поднять вебвью и что-то мне не верится что вебвью будет работать на одном уровне
Michael Lazebny
скорость работы не тяжелого приложения на рн примерно одинакова
Michael Lazebny
только вот время запуска меньше у флаттера
Michael Lazebny
и анимации можно нормально делать
Michael Lazebny
а в js/ts есть фундаментальные изъяны, из-за которых и был создан дарт
Семён undefined
после этого в украинском поезде начался сущий кошмар
Michael Lazebny
семён undefined :))
d
dart появился раньше тс-а )
Michael Lazebny
это понятно
Богдан
[
"это какие же? дарт как раз таки имеет более слабую систему типов чем тайпскрипт, советую посмотреть этот доклад ",
{
"type": "link",
"text": "https://www.youtube.com/watch?v=i03l0N5g7nE"
},
" (дарту до таких возможностей тайпскрипта как до луны)"
]
Dima Kotlyarov
ага) только компилится он в тот самый нетипизированный джс )) вот тебе и все типы - только на этапе разработки
Семён undefined
ну по факту они выполняют свою главную задачу, ведь так?
Богдан
[
"Потому что многих останавливает дарт. То есть flutter как gui-фреймворк очень неплох и лучше аналогичных фреймворков на рынке (лучше чем react-native или webview/html/css из-за того что рендерит все самостоятельно в канвас) но многих останавливает необходимость изучения отдельного языка. Dart это все же маргинальный язык который как раз многих останавливает, это нельзя отрицать, вот даже крупные компании вроде Wrike переходят с дарта на жс/тайпскрипт (",
{
"type": "link",
"text": "https://habr.com/ru/company/wrike/blog/551962/"
},
")"
]
Michael Lazebny
приложение на typescript сложнее поддерживать чем тот же js это FACTS
Семён undefined
так врайк же перешли из-за флаттера
Michael Lazebny
Если ты js разработчик, то ты с лёгкостью перейдёшь на дарт, тоже фкат
Dima Kotlyarov
смотря как напиешь))
Дмитрий Щербаков
так райк же перешли из за веба
Denis Vasilchenko
[
{
"type": "link",
"text": "https://t.me/why_typescript_is_bad"
}
]
Дмитрий Щербаков
потому что флаттер для веба не фонтан
Дмитрий Щербаков
сео сео нету
Дмитрий Щербаков
нету сео нету денех
d
1) дарт не такой тяжелый чтобы изучить его 2) как я понимаю они переходят в контексте веба, а флаттер на вебе и вправду неоч для широких целей
Dima Kotlyarov
Ну да. Типа сами разработчики говорят о его недостатках открыто .
d
мне хотелось бы увидеть реальные примеры или особенности языка, которые прям "останавливают"
Eugene
Не видел никого, кто бы писал на РН и перешёл на Flutter и хотел бы заменить dart на js.
Семён undefined
я кста придумал как можно сделать сео для некоторых приложений
Egor Gorbachev
Там приводятся примеры проблем в функционале, которого вообще нет в дарте (рекурсивные типы, маппед типы и т.д). На практике это граничные случаи, которые не доставляют неудобств.
Egor Gorbachev
сео не нужен закрытым сервисам / админкам / saas. Это можно спокойно писать на флаттере
d
ну дело не только в сео)
Семён undefined
ну короче вот есть соц сеть в ней есть посты можно просто сделать, что если пользователь не авторизован, то ему показывают на этом месте не флаттер приложение с открытым постом, а копикет на хтмл без большинства функционала, но с текстом из поста в итоге мы получаем быструю загрузку + анализ страниц гуглботами
Vladislav Rudenua
Кто-то может подсказать чем такая запись отличается от обычной? кроме синтаксиса
Eugene
Контекст не теряется разве в этом случае?
Дмитрий Щербаков
т.е. посути нам надо сделать 2 сайта 1 для ботов 1 для юзеров ??
Семён undefined
ну полноценный сайт делать не нужно, только посты да профили
Vladislav Rudenua
ну я передаю его
Daniil Razbitskiy
Уважаемые, подскажите, как можно заменить\написать проверку, на то, что приходит после выбора параметров фильтра, то то что у меня на 2 скрине, как я сделал, вроде и должно работать, но он вроде проверят то, что приходит в целом, те всё, и из-за этого не считает, что какая-либо информация отсутствует
d
разница в том что возвращаемое поддерево из функции будет всегда полностью ребилдиться, по сравнению с виджетами
Maksim Zdanchuk
подскажите какой-то онлайн блокнот для обмена кодом, пожалуйста. Надо скинуть код, и чтобы не кидать код файлом или через мессенджер, хотелось бы в нормальном виде его отправить
Alexey Kudryavtsev
pastebin
Maksim Zdanchuk
а когда вставил код, нажимать "paste"?
Alexey Kudryavtsev
И в итоге получится ссылка на код
Hamdam ?
Где можно прочитать про REGX на дарте?
Дмитрий Щербаков
в гугле. regexp в дарте ничем не отличаются практически от других языков
Дмитрий Щербаков
реализация
Семён undefined
а можешь посоветовать образ для вмвара?
Дмитрий Щербаков
[
"отсюда брал ",
{
"type": "link",
"text": "https://t.me/MacWin21"
},
""
]
Mitai
во первых типы дарт это настоящие типы а не псевдотипизация ТС во вторых Wrike не уходят от Dart они Вынуждены перейти на ТС потому что гугл убирает команду с разработки ангулярдарта и бросает ее на флаттер в третьих как ты себе представляешь ситуацию, когда команде флаттер требуется какая то фича которой на данный момент нет, они идут к майкам и просят тех стоя на коленях ее добавить в язык?
Mitai
придут такие все умные не ипаться, вселучше гугла знают
Mitai
[
"а лучше вот по этому гайду один раз настроить\n",
{
"type": "link",
"text": "https://dortania.github.io/OpenCore-Install-Guide/"
},
""
]
Семён undefined
пытался уже, весь вечер потратил и ничего не вышло
Дмитрий Щербаков
не завелось у меня :( на видюху орет
Семён undefined
у меня ещё и железо такое специфическое, даже хрен поймешь какой модуль брать
Дмитрий Щербаков
с nvme тоже не дружит нормально, надо sata ssd
Mitai
я дня за три накатил) чегодня до .15 обновился пролет нормальный)
Mitai
есть красноглазые? кто пишет в емаксе? не могу его победить(( поставил lsp-dart но он не работает
Илья Маненков
Всем привет , такая проблема , Drawer перекрывает AppBar когда выезжает , а мне нужно так , как мне это реализовать ? Что бы как на скрине AppBar был поверх drawer
Т М
ребят, подскажите мб кто на м1-проце работает. подводные камни есть какие? именно касательно разработки, симуляторов/эмуляторов и тд про общие я в курсе
ManBearPig
Это не drawler
Илья Маненков
Вот как у меня
Илья Маненков
Мне надо AppBar сделать сверху
ManBearPig
Увидел, и Вы хотите что бы appBar не перекрывал drawler
Дмитрий Щербаков
надо дравер запихать ниже по дереву
Илья Маненков
Что бы перекрывал
Илья Маненков
Он в скафолде
Дмитрий Щербаков
или сделать его кусок прозрачным который над аррбар
Илья Маненков
Каким образом
Илья Маненков
Доп скаффолд?
ManBearPig
Или дич вроде Scafold в body Scafold
Дмитрий Щербаков
проще шапку сделать прозрачной наверн)
Илья Маненков
Кстати как вариант ))
ManBearPig
Я бы через анимацию его вытягивал сбоку,
ManBearPig
Тогда body Stack, самое простое , наверное
ManBearPig
Зы можно же размеры задать отступы
ManBearPig
Отступ размером с вппБар 1.05)
ManBearPig
На 6 проц больше)
Илья Маненков
Спс, помогло, обернул Drawer в Padding
Илья Маненков
Ток аппбар затухает
ManBearPig
Ага я понял типо серый слегка
Yevhen Ivanov
Кто-то пишет интеграционные тесты? Накидайте примеров, статей. Очень мало инфы в сети
ManBearPig
Блин, сорри в отпуске сразу не вспомню
ManBearPig
В скафолже можно изменить для конкретного экрана
ManBearPig
Я просто забыл как этот параметр называется )
ManBearPig
Смотрите в Scotland'e
El
Drawerscrimcolor как-то
Мухаммад
[
"привет, у меня проблема при компиляции расширения buildDebug задачи Running Gradle ... много времени я был в паре\nесли кто мне поможет дать доступ к компютер Это ошибка:\n\nFAILURE: Build failed with an exception.\n\n* What went wrong:\njava.net.BindException: Address already in use: Cannot bind\n\n* Try:\nRun with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.\n\n* Get more help at ",
{
"type": "link",
"text": "https://help.gradle.org"
},
""
]
Дмитрий Щербаков
можно сделать в MaterialApp canvasColor: Colors.transparent,
ManBearPig
Только придётся ширину drawler менять и внутрь row и 2 expanded в 1м будет drawler а во втором вернуть полупрощначный фон)
ManBearPig
Тогда будет норм )
Константин Бобров
Правильно понимаю, что по оптимизации все очень плохо?
Alexander M.
Наверное, оффтоп, но нужно добить вопрос с хостингом. Имеется мобильное приложение. Ожидается, что в день будет около 3000 считываний данных с БД MySQL. Соотвественно, вопрос: где лучше разместить БД - на обычном хосте или vps?
Mitai
как это относится к флатеру или дарту? иди в чат своей бд
Alexander M.
Проект на флаттере. Спокойнее будь. А если поделишься ссылкой на чат с БД, буду благодарен.
??
Все от запросов зависит, но если там они не супер-тяжелые, то обычной дешевой впс хватит
Дмитрий Щербаков
3000 в день?? на любом калькуляторе
Дмитрий Щербаков
ладно бы там в секунду..
Evgeniy Troynov
поиск в помощь
Evgeniy Troynov
вообще этот вопрос явный офтопик и тебе правильно сказали что ты задал его не в тот чат
Alexey Kudryavtsev
Это на старте 3000 в день? А через пол года, год ? Надо на будущее сразу прикинуть. А так 3000 в день это и правда на калькуляторе можно ??
Alexander M.
Так получается, что начального (чуть выше начального) тарифа любого хостинга должно хватить?
Дмитрий Щербаков
1гб озу и 1 ядро за заглаза
Alexander M.
Ок. Спасибо.
ManBearPig
Что отдаёт дату? Vps dart /node/go Lamp только php==обычный
Michael Bazilique
Привет. Ребят, помогите пожалуйста. Надо на канвасе (через Paint) нарисовать прозрачную сетку с помощью градиентов, фильтров, блендМодов и так далее..
Michael Bazilique
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/dart-ui/Paint-class.html"
}
]
Jeka
Привет, юзаю блок, кто знает, если возвращать стейт который уже активен он его перерисует, если объект, который в этом стейте изменен?
Jeka
или я чет еще должен сделать, что бы оно перерисовало?
Владислав
ели стейт унаследован от Equatable и написаны все пропсы - да, перерисует
Владислав
В пропс добавь фильтр
Jeka
Спасибо, чет не заметил сходу
ManBearPig
Если блок вернул состояние, а после вы что то изменили , то проще onProgress состояние кинуть, а в blocBuilder в параметре build When добавить исключение для типа if (current is OnProgress) return false; else Return true
ManBearPig
У меня от freezed состояния и события )
Harley
Ребят как называется такая вигня
Harley
тип один скролл вниз открывается след страница
ManBearPig
On boarding page?
Harley
типо скролл тригер
ManBearPig
Выглядит именно так )))
Bjorn
Bad state: No element
Harley
но там будет обычная страница одна с несколько псевдо страницами
d
судя по всему кидает эррор firstWhere
Bjorn
в стаке говорят при такой ошибке означает что first where не находит элемент
d
у вас класс имеет свой equals или имплементит Equatable?
Bjorn
а в дебаге показывается что мой хайв бокс имеет элементы
Bjorn
бокс хранит модели класса Word
Bjorn
так же как и сам word - Word
d
вы знаете как сравниваются инстансы классов?
Bjorn
что их сравнивать то
|