Программирование : Dart & Flutter по-русски
Andrey Maksimov
Акведук жив, но кажется больше как внутренний продукт, нежели решение для комьюнити
Amigo 177
а как насчет языка go ? хорош для веб сервисов ?
Andrey Maksimov
Хорош, конечно, для этого в гугле его и придумали :) но go это куда-то совсем в другую степь. Если говорить о микросервисах, то здесь экосистема вокруг дарта пока слишком мала, для многих случаев нужно писать код самому, зачастую не самый простой. Хотя сам язык уже позволяет использовать его в такой ипостаси.
Hamdam ?
appBar: PreferredSize( preferredSize: Size.fromHeight(50.0), child: AppBar( // ... )
Данчик
[
"Кто вкурсе как сделать веб чат на ",
{
"type": "link",
"text": "socket.io"
},
"?"
]
Dre
[
{
"type": "link",
"text": "https://socket.io/docs/v3"
}
]
Dre
[
{
"type": "link",
"text": "https://www.youtube.com/watch?v=S0KeKqQxDAQ"
}
]
Данчик
Я в доках не нашел как сделать сервер на дарт, чтобы отправлял страничку и прослушивал порт
Данчик
Мне реализовать надо как в node.js
Dre
[
{
"type": "link",
"text": "https://socket.io/docs/v3/server-api/"
}
]
Dre
проблема в том что у них нет оф портов на дарт, только 3рд парти
Dre
а они всегда будут зависеть от мейнтенера
Dre
так что это мертворожденная идея в общем и целом
не понимаю почему у меня ошибки
балин как я это не заметил ?????>? спасибо
Otabek ?ansurov
[
"Хотел сделать проверку подключение к интернету. Для этого использую пакет connectivity. Файл ",
{
"type": "code",
"text": "main.dart"
},
" выглядит таким образом.\n\n",
{
"type": "pre",
"text": "StreamProvider (\n create: (context) =>\n InternetConnectionService().connectionStatusController.stream,\n child: MaterialApp(\n.....\n\n",
"language": ""
},
"Проверяю на каждом странице таким образом:\n\n",
{
"type": "pre",
"text": "bool wifi;\n\nvoid checkConnectivity(context) async {\n var connectivityResult = Provider.of(context);\n if (connectivityResult == ConnectivityResult.none ||\n connectivityResult == null) {\n setState(() {\n wifi = false;\n });\n } else {\n setState(() {\n wifi = true;\n });\n }\n}\n\nWidget build(BuildContext context) {\n checkConnectivity(context);\n return wifi == true \n ? Scaffold() \n : NoInternetScreen();\n}\n\n",
"language": ""
},
"Как то возможно это сделать глобально и не проверять на каждом странице?\n\nСпасибо за ранее!"
]
Семён undefined
ты проверяешь статус подключения к мобильной/вайфай сети в ней может не быть интернета, но тебе об этом никто не скажет лично я просто ловлю от своего рест апи клиента ошибки невозможности найти хост
Otabek ?ansurov
Спасибо за совет) Попробую и такой вариант тогда)
response?.body к чему вопросительный знак ?
Otabek ?ansurov
[
"Если ",
{
"type": "code",
"text": "response"
},
" существует или не равно ",
{
"type": "code",
"text": "null"
},
" тогда получить ключ ",
{
"type": "code",
"text": "body"
},
". Это тернарная операция в dart-е. Если я не прав поправьте меня)"
]
Dre
Прав, только не тернарная, это null check
Otabek ?ansurov
Ну вот значить только null) Спасибо)
Dre
Тернарная это bool ? true : false
Dre
И не операция а выражение :)
Dre
Для этой проверки подойдет Singleton со bool функцией, ничего нигде не сторить, если конечно надо проверить именно наличие вайфая
Otabek ?ansurov
Это типа обернуть вес приложение в Singleton виджет? Просто пока я такое не делал.
Vladislav [object Object]
Всем привет. Использую firebase_messaging для уведомлений. После запуска вылетает такая ошибка
Vladislav [object Object]
Судя по всему из-за onBackgroundMessage
Maxim
Всем привет Использую geolocator для получения местоположения и столкнулся с пролемой, что эмулятор не спрашивает разрешение, а в ошибках пишет, что его не удалось получить. Как можно решить данную проблему? На реалных устройствах все работает
mark
попробуйте на другом, чистом емуляторе
mark
или мб нет такой функции, проверьте google maps работает ли
Andrey
Подскажите, пожалуйста, библиотеку для распознавания речи с русским языком
Денис
[
{
"type": "bold",
"text": "Народ пытаюсь найти какой нибудь аналог GridView подходящее под эти критерии:\n"
},
"\n 1. Возможность указывать количество элементов в ряде.\n 2. Обязательно чтобы был builder, так как без него довольно сильно проседает оптимизация на слабых устройствах.\n 3. Не фиксированный aspectRatio/высота элементов\n 4. Выравнивание высоты элементов по самому большому в ряде.\n\nGridView.builder не подходит под последние два."
]
Денис
Я уже использовал ResponsiveGridList но у него отсутсвует builder и при открытии страницы с большим количеством элементов одновременно начинают грузиться все фотки и слабые устройства подвисают
Юджин Баладжахе
Простите за тупой вопрос. Юзаю flutter_bloc, соответственно большинство виджетов у меня Stateless, но если мне нужно поле ввода, значит обязательно создавать Stateful с контроллером, или есть какие-то элегантные функциональные решения типа formix? Спасибо.
Пашка
чо вы все боитесь statefull виджетов
Пашка
используй на здоровье
??????????????
Сидел на Xamarin перешел на флаттер перестал плеваться, чего и другим желаю.
просто марк.
Объясните пж, чем провайдер и bloc лучше простых stateful widget, я вот чот не понимаю
??????????????
гугл рекомендует использовать "провайдер", блок для более сложных проектов с потоками ...
??????????????
ничем, пиши как тебе удобно))
??????????????
[
"вот тут посмотри ",
{
"type": "link",
"text": "https://www.youtube.com/watch?v=d_m5csmrf7I&ab_channel=Flutter"
},
""
]
Дмитрий Щербаков
Логика выносится из ui слоя
Temurxon
именно, не усложняте себе жизнь
Temurxon
stateful тоже хорош если грамотно юзать
Dima Kotlyarov
Стэйтфул виджеты при изменении сиейта перерисовывает все дерево виджетов , а это очень затратно твтплане производительности
Temurxon
не всегда затратно
Даниил Левицкий
БлокБилдер тоже стейтфул виджет)
Даниил Левицкий
Стейтфул порождает неограниченное количество точек мутации
Урусай
У тебя в любом случае всё перерисовывается
Temurxon
animation только через stateful
Даниил Левицкий
Из-за чего сложность проекта растёт экспоненциально
Даниил Левицкий
Можно создавать контролёр в стейтлесс виджете, который в билде создаёт БлокБилдер и прокидывать его ниже блок билдера
Даниил Левицкий
Ну то есть не создавать контролер внутри своего виджета, а ожидать его из конструктора
Temurxon
у вас есть имплементация ?
Даниил Левицкий
В проекте есть
Temurxon
можете скинуть код, я видел hooks, а про блок или провайдер чето не подумал
Temurxon
или где передаёте контроллер
Даниил Левицкий
Я ток вечером у компа буду, пингани в личку
просто марк.
Тем самым производительность будет лучше?
admin
Привет. Подскажите как сделать аналог elevation но внутри (Container) ? Что-то вроде внутренней тени
admin
Не знаю что это, но копать в эту сторону?
Дмитрий Щербаков
Хороший вопрос) можно все и на стейтфул виджетах сделать с колбеками и это будет норм работать. Но если приложение растет, придерживать его потом боль.
Дмитрий Щербаков
*поддерживать
admin
Похоже что только извне оно может сделать elevation
admin
Вот так. А мне нужно внутрь
Dima Kotlyarov
Поддержка это 1) 2) учите матчасть молодые люди , учите зачем нам блок , зачем стримы , как из использовать , почему отказались в Энтерпрайз решениях от сетстейта
Юджин Баладжахе
Ну, вроде классы это не модно, чистый функции рулят )) Хотя с хуками они нечистые...
Dima Kotlyarov
Вроде группу для разработчиков , а обсуждение какие то глупости , есть конкретные ответы на вопросы рендера , сколько когда и что с ним делать
Maksim Gridin
архитектура становится чище, разделение ответственности
Никита Обрывков
Ну, отделять бизнес логику, ui и сеть/бд, стало уже чуть ли не обязательным, даже если к каким-то конкретным архитектурам не придерживаешься
Денис
Ребят как сделать так чтобы элементы Row расстянулись под высоту самого большого элемента?
Урусай
Ну, это если высота этого самого Row не фиксирована. Если фиксирована то можешь CrossAxisAlignment.stretch использовать
Даниил Левицкий
Прикол не только в разделении логики, а в единой точке изменения состояния
Даниил Левицкий
MVP тоже паттерн разделения ответсвенности, но его контролируемость также падает экспоненциально и при росте проекта, код становится отвратительным
Konstantin Volkov
Привет ???>? Кто то делал виджеты на рабочий стол из флаттера? Это нужно уже нативный код писать?
Павел Бабинцев
Всем привет. Кто ведет проект сразу и под mobile, и под web, поделитесь опытом. 1. Вы постоянно сидите на ветке beta? 2. Если на п.1 ответ "нет", то как вы переключаетесь? На это же уходит время... 3. Если на п.1 ответ "да", то не возникает ли проблем в приложениях на это ветке? Заранее благодарю за ответы.
Урусай
Для переключения можешь использовать утилиту fvm. А вообще бетка норм
Павел Бабинцев
Спасибо. То есть вы на бете держите свой проект? У меня после перехода на бету приложение даже не запускается...
Павел Бабинцев
Кто держит свои проекты на ветке beta, сталкиваетесь ли с трудностями? С какими? Насколько критичны возникающие ошибки? Друзья, заранее благодарю за ответы.
Damir
Сейчас разбираю пример из гитхаб, могли бы объяснить для чего передают в конструктор репозиторий? Нельзя создать объект уже в Home Page?
Денис
У меня ListView с Row и в них высота не фиксирована, но когда я ставлю IntrinsicHeight то вылетает ошибка, возможно из-за того что я использую Expanded еще?
Damir
В чем тогда смысл таких действий? Если легче одну строку написать, чем тащить по всем экранам это
Урусай
А где Row в твоём примере?
Денис
только я тут убрал IntrinsicHeight
Урусай
Ну предпологается что виджет (ui слой) зависит от repository, а не порождает его
Урусай
Сам Row нужно обернуть в intrinsic
Олжас Сулеймен
Alt + Ctrl + F, форматирование на вине, Ctrl + Shif + I на лине
Damir
я знаю, но я пока лишь проект разбираю чужой) Не критично
Олжас Сулеймен
читать приятней и быстрее
Денис
Проблема в том что эти Row внутри ListView
Денис
и как только появляется IntrinsicHeight все идет по бороде
Dima Kotlyarov
А ошибка - hasSize ?
Anton Kowalski
Как сделать чтобы было видно сразу 2 скрола? И чтобы не было такого поведения как в конце?
Vyacheslav
Всем привет! Пытаюсь добавить разработчика, но вот как дать ему доступ к сертификатам? Чекбокс неактивный...
Ivan
вроде физ лицо может только от основного аккаунта создавать сертификаты
Ivan
это нужно как компанию создавать, чтобы шейрить для разработчиков доступ к сертам
Константин Бобров
может кто подсказать примером как использовать RxDart для создания запросов на получение данных, и вообще возможно ли это?
Vyacheslav
Понял, спасибо
Даниил Дмитриевич
Всем привет! Я только начал изучать Dart и Flutter. Скажите, можно ли здесь определенному элементу(например фотографии )задать margin или padding? Или надо его заключать в контейнер и контейнеру задавать margin и padding?
Урусай
За это отвечает виджет Padding
Урусай
А виджет Сontainer содержит параметры margin и padding, который по сути и использует Padding
Олжас Сулеймен
padding до декора как margin
Daniil Kostin
а есть маргин во флаттере? ни разу не пользовался ??
Олжас Сулеймен
есть же padding
Даниил Дмитриевич
В документации прочитал про margin)
Даниил Дмитриевич
В вебе просто с отступами попроще было)
Daniil Kostin
ну я им всегда и пользуюсь
Dima Kotlyarov
Я вам по секрету скажу , что марджин и паддинг во флаттере маст хев
Dima Kotlyarov
И странно что вы не юзаете марджин
Денис
да и так и не нашел как заставить это работать(
Dima Kotlyarov
Могу объяснить если нужно
Dima Kotlyarov
Скиньте ещё раз разметку
Пашка
нужен размер статический
Денис
так в том то и прикол мне нужен динамический
Dima Kotlyarov
Он не понимает , как отрисоыаыыться
Денис
чтобы все ровнялись под большой
Dima Kotlyarov
Нужно задать размер или флекс
Dima Kotlyarov
Задай флекс
Dima Kotlyarov
Оберни , всмысле , row
Dima Kotlyarov
Или в flex
Denis
Всем привет, подскажите, а как подружить Navigator с блок? я не до конца понимаю, как мне добавить странице в Navigator по изменению сетйта?
Денис
В том то и дело что задача стоит в том что размер неизвестен заранее
Денис
и мне нужно чтобы все элементы row выровнялись по самому большому элементу
Денис
в вебе насколько я знаю решается в две строки
Денис
div { display: flex; align-content: stretch; }
Денис
задача стоит такая же
Денис
но не могу решить ее на флаттере
Dima Kotlyarov
Тут проблема несколько глубже
Денис
я смотрел различные виды gridview и других лайаутов но ни один с заданной задачей несправляется
Dima Kotlyarov
Я понимаю о чем ты
Dima Kotlyarov
1) тебе нужно задать фиксированную ширину .
Dima Kotlyarov
Контейнера !
Dima Kotlyarov
В данном случае тебе поможет такой код
Денис
я могу ее посчитать и задать
Dima Kotlyarov
screen height
Dima Kotlyarov
Как то так
Dima Kotlyarov
Зачем ты возвращаешь Expanded?
Денис
чтобы элементы по ширине растянулись равномерно
Денис
могу убрать если это поможет
Dima Kotlyarov
Попробуй убрать
Dima Kotlyarov
mainAxisAlignment: MainAxisAlignment.spaceBetween
Dima Kotlyarov
И поставь фиксированную ширину контейнеру
Dima Kotlyarov
Ну смотри , я через 15 минут буду дома
Dima Kotlyarov
Если будет актуально сразу займемся
Денис
Я уже не первый день веду бой с этой проблемой
Денис
я даже костылил расчет количества строк в каждом элементе и выравнивал элементы изнутри
Денис
но это очень сильные просадки в оптимизации
Dima Kotlyarov
Ты внутри генератора , вызываешь ещё один генератор . ?
Денис
да потому что это универсальный виджет для нескольких страниц
Денис
сейчас такой результат
Anton Kowalski
повторяюсь
Dima Kotlyarov
ок ок я сейас эмулятор запущу попробу
Денис
и видешь в первом ряду у первой пиццы описание длиннее
Dima Kotlyarov
а сделай сейчас так же! тольк в сrossAxisAlignment попробуй сделать stretch
Dima Kotlyarov
Окей! давай отталкиваться от варианта - когда ве работает нормально
Dima Kotlyarov
это вот этот скрин - я правильно полнял?
Денис
и вот этот если убррать IntrinsincHeight
Денис
может есть другой подход
Денис
но в итоге мне нужен GridView.builder где все элементы выравниваются по высоте самого большого в ряду
Денис
но GridView.builder требует aspect/ratio
Dima Kotlyarov
интсринкт хайт дает ошибку - высоты) он не понимает высоту! сейчас мы это постараемся разобарть
Dima Kotlyarov
sizedbox - change to ConstrainedBox then
Dima Kotlyarov
пропиши - емy maxWidth- w
Dima Kotlyarov
maxHeight например 300зч gjghj,eq
Dima Kotlyarov
Всю информацию об ошибке
Денис
а без работает и все виджеты длинные
Dima Kotlyarov
Все длинные на 300 px , правильно?
|