Программирование : Dart & Flutter по-русски
Миша
на ютубе глянь, там точно есть
Radomir Epur
Покажи как ты его используешь.
Yerassyl
как обычно: WillPopScope( onWillPop: () async => _willPop(context, cubit.notificationSoundData.namazSoundSetting), child: Scaffold(
Vladislav [object Object]
Привет. В чем может быть проблема? Как бы физически файл есть, но когда через FileUtil().exists(filePath) проверяю, выдает false Имена файлов совпадают
Radomir Epur
[
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/14203#issuecomment-540663717"
}
]
***Eegor Balint***
[
"Можете подсказать как в середине добавить row?\n\n",
{
"type": "pre",
"text": "child: Row(\n mainAxisAlignment: MainAxisAlignment.spaceBetween,\n children: [\n Container(\n height: double.infinity,\n width: 100.0,\n color: Colors.white,\n child: Text('Container 1'),\n ),\n \n Container(\n height: double.infinity,\n width: 100.0,\n color: Colors.red,\n child: Text('Container 2'),\n ),\n ],\n ),",
"language": ""
},
""
]
l
обернуть его в expanded?
***Eegor Balint***
еще не проходил по курсу это )
l
ну или попробуйте mainAxisSIze.min во вложенном
Артем Терещук
всем привет кто работал с библиотекой pull_to_refresh ? Как ее использовать с CustomScrollView и SliverList ??
твой герой
Привет всем есть здесь c# разработчики? .net
Yerassyl
[
"да, видел он работает, но он пропускает \n",
{
"type": "pre",
"text": "\n onWillPop: () async {\n return _closeAndUpdateHomePage(context);\n },\n",
"language": ""
},
" \nэто когда свайп назад делаю, а мне нужно при свайп назад выполнить действие"
]
Vladimir ?
Подскажите пожалуйста, как более менее грамотно реализовать следующее: - У меня имеется меню, и оно на скриншоте вызывается, но, мне нужно добавить 2 вещи: 1. Проверка обновлений (что если вышло обновление - то выкачивать и ставить его (кастомно, не через play market)) 2. Проверка, есть ли в хранилище токен, и валидный ли он (вот тут ещё вопрос, скиньте пожалуйста ссылку, как тут лучше сделать заставку во время вот этих всех загрузок, как например в сбербанке и др. приложениях). Я думаю, перед вызовом void main() ... нужно вставить дополнительные методы, и если они возвращают например что обновлений нет, и токен есть и он валидный - то запускается метод main(). Я правильно мыслю? Или это костыль, и это правильно реализовывается в каком то другом месте (может, уже какие то готовые решения под такое есть, которые все активно используют)? Или вообще лучше все эти проверки делать в build методе, который вызывается в main() ?
Dmitry
Ребята такой вопрос, допустим я сверстал на флаттере такой макет. На каком языке написать личный кабинет, чтобы можно было добавлять приложения и обновления списка приложений?
Виталя
Та на любом можешь на котором обычно пишут серверные приложения (NodeJs, php, C#, Java, …) У тебя по сути должен где-то работать сервер который занимается бизнес логикой, работой с базой, хранением файлов и по API идет общение между твоим приложением и сервером Можешь почитать что такое REST API
Dmitry
а как к этому потом мой макет приплести
????
Есть кто работал с flutter bloc?
Mykola Shevchenko
Потом нужно будет сервисы для связи с беком. Управление состянием в приложении bloc, changenotifier и другое. И как-то хранить авторизацию. Зависит от функций. Это будет на 1-2 месяца зависит от задач. Будет не так быстро)
Dmitry
я даже на флаттере писать не умею, какие 1-2 месяца?))
admin
Мы в список <> передаём параметры или что это? Че за WidgetBuilder?
Mykola Shevchenko
Ну, а что? Приложение это же не только ui)
Dmitry
никто не желает помочь с опенсурс приложением?
admin
А зачем вообще он это делает, если есть Navigate?
Mykola Shevchenko
С таким успехом можно свою компанию открыть после макета в фигме)
Виталя
Та не, ты что-то слишком много взял ) Если в день по 3-4 тратить, то на недели 2 А без опыта с нуля написать бэк и связать с флаттером да, где-то месяца 2
Dmitry
а есть какие нибудь туторы, где бэк с флаттером связывают?
твой герой
а какие вообще бэки для флатера есть?
Sergey Hottabych
Это параметризация типом, почитай про Generics
Sergey Hottabych
Запись означает: "Мапа с ключом типа String и значением WidgetBuilder
Boris Karabanov
[
{
"type": "link",
"text": "https://flutter.dev/docs/cookbook/networking/fetch-data"
}
]
Mykola Shevchenko
Любые, но это свои. Вообще попробуй firebase. Там можно без особых знаний для создания бека, использовать много функций
Mykola Shevchenko
Типа авторизация, хранить данные юзера, картинки, сохранять
Mykola Shevchenko
Но за это надо платить
Dmitry
firebase для моих задач пойдет?
Sergey Hottabych
Где WidgetBuilder - анонимная функция, принимающая context и возвращающая виджет
Mykola Shevchenko
А что за задачи то?)
Dmitry
было бы не плохо еще автоматически прямо с сайта разработчиков самые свежие версии качать
Dmitry
Ребята такой вопрос, допустим я сверстал на флаттере такой макет. На каком языке написать личный кабинет, чтобы можно было добавлять приложения и обновления списка приложений?
Mykola Shevchenko
А что это?
Mykola Shevchenko
Я не очень понимаю. Ты свой магазин пытаешься запилить?
Boris Karabanov
это как будто гуй для менеджера пакетов
Dmitry
с дизайном реально все так плохо?
Mykola Shevchenko
Забей на дизайн
Mykola Shevchenko
Он здесь не нужен
Dmitry
так я хочу сделать красиво
Mykola Shevchenko
Ты без нормального бека такое не сделаешь
Boris Karabanov
тут вообще бек нужен?
Семён undefined
тут не нужен бек, это же менеджер пакетов
Mykola Shevchenko
Я не понимаю
Mykola Shevchenko
Я запутался
Boris Karabanov
дернул менеджер пакетов да и все
Mykola Shevchenko
Что вообще требуется?
Семён undefined
просто гетать с репозитория, максимум бек нужен для статистики приложений
Dmitry
где можно скачать приложения
Mykola Shevchenko
А где приложения будут хранится? И будет ли акк продавца?
Mykola Shevchenko
А оплата?
Boris Karabanov
насколько хорошо Вы знакомы с тем как влинуксе оказываются приложения?
Dmitry
я хочу для начала просто опенсорс софт туда грузить
Boris Karabanov
дак его и так можно туда загрузить
Maksus
Расскажи конкретнее что ты хочешь сделать опенсорс
Boris Karabanov
через утилиты командной строки
Mykola Shevchenko
Вообще не понятно, какой список функций оно должно покрывать?
Mykola Shevchenko
Тебе нужно сначала с этим определится, а потом что-то писать
Dmitry
я хочу запилить магазин, где будут лежать необходимый софт и опен сорс альтернативы всяким Адобе и т.д
Maksus
А где ты будешь хранить состояния приложения
Maksus
Ты хочешь сделать магазин - допустим у тебя есть статический лист товаров, если товар купят или удалишь ты, где хранить информацию о том, что весь лист товаров изменился, или допустим добавить товар
Boris Karabanov
а чем это будет отличаться от apt-get, yum и тд?
Mykola Shevchenko
Это не такой простой проект. Его в одиночку, особенно не опытному человеку, не сделать)
admin
Где можно почитать о виджетах верхнего уровня и нижнего?
Boris Karabanov
значит можно считать что это gui для менеджера пакета?
Dmitry
не магазин а стор приложений
Boris Karabanov
тогда бек не нужен
Dmitry
а как мне приложения заливать
Семён undefined
ну будешь слать шелл команды
Семён undefined
ты же делаешь gui под готовый cli
Семён undefined
всё что нужно у тебя уже есть
Boris Karabanov
задача приложения в том чтобы вызвать cli пакетного менеждера и получить данные и красиво нарисовать
Семён undefined
правда я не помню, есть ли стата скачивания и тд в менеджере пакетов
Семён undefined
если нет то придётся дополнительная работа с беком
Dmitry
а как отзывы писать
Семён undefined
ну и это тоже я думаю
Maksus
А отзывы ты где собираешься хранить?
Mykola Shevchenko
Вот стату, и отзывы можно в фб, но за это платить будешь
Kirill Bubochkin
что за уровни?
Семён undefined
вообще я такую хрень делал в свои 10 лет и предлагаю тебе лучше заняться чем нибудь действительно годным
Kirill Bubochkin
так вы вопрос сам напишите
Boris Karabanov
если знаний пока не хватает, не надо браться за все сразу, лучше вначале с главным минимальным функционалом разобраться и дальше развивать
Dmitry
мож тогда напишешь бэк, а я сверстаю?)
Семён undefined
я люблю деньги
Dmitry
а у меня нет деньги, но я их тоже люблю(
Maksus
Ну чтобы вообще что-то хранить, обновлять, нужно знать состояния приложения, получать их с сервера, передавать его на сервер
Dmitry
короче я лучше пойду на дрибл выложу
Dmitry
и буду дальше концепты пилить
Boris Karabanov
чем это будет отличаться от того что есть хотябы в том же убунту? там же есть стор с гуем
Maksus
А в чем концепт заключается?
Dmitry
в классном дизайне
Семён undefined
ну я бы получше сделал конечно
Boris Karabanov
линукс это не про дизайн ??
Dmitry
а я сделаю про дизайн
Dmitry
не ну можно было бы и сказать, что сделал бы лучше
Maksus
Ну тогда тебе надо сделать не приложение, а тему для приложения, сделай вёрстку твоего дизайна и отправь в магаз как тему
Maksus
Твоя альтернатива по сути является темой
Boris Karabanov
идти против целой индустрии и устоявшихся ценностей, мощно конечно
Maksus
Тебе не нужно будет делать функционал, тебе просто нужно будет сделать другой дизайн для уже существующего
Dmitry
а как тему сделать?
Dmitry
ну я сомневаюсь, что в теме смогу все элементы расположить так, как я хочу
Dmitry
и убрать не нужное
Семён undefined
тени хрень, цвета хрень, шрифты хрень, отступы хрень, нет никакого акцента на элементах
Dmitry
шрифты так то секс потому что гугл санс
Dmitry
не ну фидбек конечно исчерпывающий и я понял, что мне нужно переделать
Семён undefined
гугл санс даже гуглом юзается по осторожности, так как убого его юзать везде где только вздумается + у него нет лицензии для общественного использования
Семён undefined
попробуй сначала гайдлайны материала/купертино почитать и поделать сначала на этом, лучше станешь понимать теорию дизайна
Dmitry
в принцепе так должно быть лучше
Семён undefined
да, вот теперь лучше акцент сразу появился красный продающий
Dmitry
шрифты поменял, акцент сделал
Семён undefined
советский союз
Dmitry
щас еще отступы переделаю
Viacheslav Boiko
у тебя есть понимание что такое UX-дизайн и НЕ дальтоникам сюда смотреть просто невозможно)
Dmitry
переделал все, о чем попросил семен
Viacheslav Boiko
неправильно всё, с точки зрения стилистики
Maksus
Элементы внутри красного поля за счёт отсутствия теней кажутся будто вырезанными из красной бумаги
Dmitry
да нет, ты не понимаешь, это прогрессивный дизайн
Andrew Shalaev
Надо было еще анимированные гифки насувать, че уж там
Dmitry
в этом и есть прикол дизайна
Viacheslav Boiko
шутишь? у меня уже глаза болят, на такое и в суд можно подать за ущерб здоровью)
Boris Karabanov
чет лютый офтоп начался, мб ребятам с вопросами по флатеру лучше помочь ??
Maksus
Я не говорю о красоте, может быть на выставке дизайна он будет самым прогрессивным, но он является некомфортным для пользования
Dmitry
да омг вы тут все рофла не выкупаете что ли?
Viacheslav Boiko
я рофлю над рофлом))
????
[
"class TableBloc extends Bloc {\n final TablesRepository tablesRepository;\n\n TableBloc({this.tablesRepository})\n : assert(tablesRepository != null),\n super(TableLoadingState());\n\n ",
{
"type": "mention",
"text": "@override"
},
"\n Stream mapEventToState(\n TableEvent event,\n ) async* {\n if (event is TableLoadEvent) {\n yield TableLoadingState();\n try {\n final List _loadedTableList =\n await tablesRepository.getAllTables();\n yield TableLoadedState(loadedTables: _loadedTableList);\n } catch (_) {\n yield TableInitial();\n }\n }\n }\n}"
]
????
у меня вот такой код . хочу чтобы столы загружились, после push route
Шахзод Джураев
[
"Вопрос по производительности почему написанный алгоритм преобразования кодировки c YUV на rgb работает на дарте медленне чем на С и подключенный через ffi ?\nПроизводительность преобразования ощутима, так в чем дело ? Как это работает ? \nYUV идет со стрима в пакете камеры. \nПодробнее\n",
{
"type": "link",
"text": "https://medium.com/@hugand/capture-photos-from-camera-using-image-stream-with-flutter-e9af94bc2bee"
},
""
]
твой герой
Всем привет нашел готовый магазин с woocomerc + админ панель, могу ли я его использовать если под себя?В плане не будет ли проблем с авторскими правами
Boris Karabanov
положить блок провайдер в том экране который открываете
Шахзод Джураев
Смотря под какой лицензией исходники
????
[
"class HomeTables extends StatelessWidget {\n final tablesRepository = TablesRepository();\n \n ",
{
"type": "mention",
"text": "@override"
},
"\n Widget build(BuildContext context) {\n return BlocProvider (\n create: (context) => TableBloc(tablesRepository: tablesRepository),\n child: Scaffold(\n body: BlocBuilder(\n builder: (context, state) {\n if (state is TableInitial) {\n return Center(child: Text('No data received as bro said!'));\n }\n\n if (state is TableLoadingState) {\n return Center(\n child: CircularProgressIndicator(\n backgroundColor: Theme.of(context).primaryColor,\n ));\n }\n\n if (state is TableLoadedState) {\n return GridView.count(\n crossAxisCount: 4,\n children: List.generate(state.loadedTables.length, (index) {\n return Center(\n child: GestureDetector(\n onTap: () {\n Navigator.pushNamed(context, '",
{
"type": "bot_command",
"text": "/tableReview"
},
"',\n arguments: state.loadedTables[index]['_id']);\n },\n child: Container(\n width: 80,\n height: 80,\n decoration: BoxDecoration(\n border: Border.all(\n color: Theme.of(context).primaryColor,\n width: 2.0),\n borderRadius:\n BorderRadius.all(Radius.circular(25))),\n padding: const EdgeInsets.all(14.0),\n child: Column(\n mainAxisAlignment: ",
{
"type": "link",
"text": "MainAxisAlignment.center"
},
",\n crossAxisAlignment: ",
{
"type": "link",
"text": "CrossAxisAlignment.center"
},
",\n children: [\n Text(\n '${state.loadedTables[index]['tableNum']}',\n style: TextStyle(\n color: Theme.of(context).primaryColor,\n fontSize: 23),\n ),\n ],\n )),\n ),\n );\n }),\n );\n }\n\n if (state is TableErrorState) {\n return Center(child: Text('Error to load tables!'));\n } else {\n return null;\n }\n },\n ),\n ),\n );\n }\n}"
]
????
я загружаю дату с кликом кнопки
????
bloc.add(LoadTables())
????
но я хочу добавить event после push Named
????
when screen is pushed
????
my keyboard is en / kor
Boris Karabanov
данные же уже загружены к этому моменту? или я чтото не понял?
????
[
{
"type": "link",
"text": "https://www.youtube.com/watch?v=xrsBzy15V0A"
}
]
????
zdes danniy mojno uvidet posle najatiya knopki load
????
a ya xochu eto delat posle togo screen is pushed
Boris Karabanov
какой скрин?
Boris Karabanov
[
{
"type": "pre",
"text": " create: (context) => TableBloc(tablesRepository: tablesRepository)..add(LoadEvent())",
"language": ""
}
]
Boris Karabanov
При создании срузу киньте евент
Дмитрий Щербаков
если еще актульно свайпы можно отлавливать через GestureDetector в onPanUpdate типа GestureDetector(onPanUpdate: (details) { if (details.delta.dx > 0) { // swiping in right direction } });
Kirill Bubochkin
if (event is TableLoadedState) – это как? как event может быть стейтом?
Yerassyl
там не 0 ,думаю по больше сделать значение
Denis Artemev
Доброго времени суток, подскажете пожалуйста Shared preferences работает с web? Или только ios Android?
Kirill Bubochkin
работает, насколько я помню
????
Great news, from version 0.5.6 shared_prefs flutter supports web by default Now it's includes shared_preferences for web Your code should work without changes, just update dependency in pubspec.yaml dependencies:
????
shared_preferences: ^0.5.6
Дмитрий
Друзья, посоветуйте, когда стоит сохъранять состояние приложения? Может статью какую нибудь, просто иногда пользователю важно сохранить состояние, допустим как электронная книга, а иногда лучше начать с чистого листа, а иногда вроде и то и то в разных случаяз может понадобиться
????
Кажется сработал. Thnx. ????
Дмитрий Щербаков
ну зависит от контекста, например пользак набивает какой то сложный заказ с множеством позиций, забил такой 90 позиций из100 и приложение вылетело/села батер - вот тут бы желательно сохранять промежуточный результат. или у тебя приложение соцсеть какая нибудь - там можно не сохранять, после перезапуска кидать на первый экран
Дмитрий
Если критикал, то сохраняем, если нет, то нет, например скрол, искал искал инфу и в друг села батарея, по сути можешь еще поискать, но время то потеряно уже, с другой стороны ты мог просто забить т выйти с прилки, а он тебе в следующий заход опять ту позицию предлагает
Дмитрий Щербаков
ну вот более жизненный пример - корзина в интернет магазине
Дмитрий Щербаков
ее можно даже на сервере хранить с привязкой к юзреу
Дмитрий Щербаков
и тогда даже при переустановке прил ее сожержимое сохранится
Дмитрий
Ну с корзиной понятно, это важно, а со скролом например, не понятно хранить или нет
Дмитрий Щербаков
я бы скролл не хранил, оверхед. Хотя опять же зависит от контекста/задачи
Дмитрий
Ну короче, супер критикал без спроса храним, остальное по жеданию заказчика
Виталя
Имхо, если хранить скрол, можно кидать юзеру окошко - желаете ли вы вернутся на прошлое место
Дмитрий Щербаков
вот пример вк. листаешь такой сообщения, F5 нажал - скролл слетел
Дмитрий Щербаков
и фб такж
Дмитрий
Можно то можно, но это дополнительные расходы, на которые например заказчику вообзе пох, но тебе кажется, что так правильней
Виталя
Ну да, ссылаемся на это
|