Программирование : Dart & Flutter по-русски
Evgenii Elchev
не надо все 10к слов матчить на всех юзеров
Evgenii Elchev
просто покидать их разные контейнеры по словам и все
Evgenii Elchev
дальше юзеры просто будут получать слова из контейнеров на которые подписаны
Evgenii Elchev
и не надо это все бд писать даже для каждого юзера
Alexandr Drobyshev
есть 10к сообений и 100к юзеров ка кне крути, вопрос что такое отправить сообщение юзеру? может там вообще пуш чрезе фаербейз, он сам это может делать, юзер прям там подпишется, а может надо в бд положить, кто знает?
Alexandr Drobyshev
и может по почте
Alexandr Drobyshev
надо больеш инфы о тз)
Evgenii Elchev
к может надо сделать что что бы нагрузки небыло?)
Alexandr Drobyshev
ну что такое контейнер ? это где то в озу? в редисе? в мускл иил другйо субд?
Alexandr Drobyshev
я говорю может надо просто юзер когда пв прилу зайдет читать
Alexandr Drobyshev
то можно тупо иметь связь мани ту мани в субд и все
Alexandr Drobyshev
и он сам дернет с пагинацией когда зайдет)
Alexandr Drobyshev
может надо сразу приписывать к ид юзера
Alexandr Drobyshev
тут прсото взять даже 10к строк в секнду в субд нужно еще посмотреть быстродейсвие)) смотря какой винт какой сервер и тд)) может там впс с хдд
Alexandr Drobyshev
винт сам по себе вообще успеет записать?)
Vitaliy Snitko
Отправить юзеру - персональная нотификация пост-запросом. Но этим уже будет заниматься другой сервис. В контексте текущей задачи не имеет значение каким образом будет отправка. Здесь важно решить - как оптимально отсортировать поток входящих по ключевым словам...
Alexandr Drobyshev
так а нельзя тем сервисом и сортировать? в фаербейзе развт нет подписки на топик? или там лимиты? или. не фаербейзом слать?
Alexandr Drobyshev
то етсь подписался юзера /topic/водка вы послали сообщение Водка зло в топики водка и зло
Vitaliy Snitko
Нет фаерйбейза. Есть сервис на Дарт + БД в Постгрис.
Alexandr Drobyshev
то есть у вас своя реализация пушь уведомлений?
Alexandr Drobyshev
ну вон етсь оперн соурс похоже проект) ни как не дойдут руки до него
Alexandr Drobyshev
[
{
"type": "link",
"text": "https://github.com/centrifugal/centrifugo"
}
]
Alexandr Drobyshev
даже не знаю пока что он может) пока ток слышал что есть)
Vitaliy Snitko
Ок ) Можно будет глянуть. )
Alexandr Drobyshev
у вас уже есть эти прилеты сообщений? если нет сделайте просто сркипт пару строк, который будет пистаь 10к сообещнйи в бд интересно сколько займет времени
Vitaliy Snitko
Сообщения в БД записываться не будут. В БД только хранятся Пользователи и их слова. Сообщения будут обрабатываться на лету и удаляться. Но скрипт генерации конечно будет. ) Для нагрузочных тестов.
Alexandr Drobyshev
то есть вообще и те что улетели юзера не будут? как доставка гарантиуется? или не важна доставка? юзер увидев пуш случайно закрыв с бека уже не сможет получить еще раз?
Alexandr Drobyshev
тогда прошще в озу все крутить)
Alexandr Drobyshev
и быстрее)
Vitaliy Snitko
А.. Кстати.. Те, которые будут отобраны для юзера будут тоже ложиться в базу. Будет формироваться недельная история для каждого юзера..
Alexandr Drobyshev
ну так может тогда все 10к и лягут)
Vitaliy Snitko
Не исключено... )
Alexandr Drobyshev
ток что проверил на маке с ссд которому два месяца, сгенерил файл с инсерт запросами 10 тыщ строк всталяю тупо текст 'Какой то текст немного еще текста и еще чуть чуть' для myisam 1 секнуда вставка для innodb 3
Alexandr Drobyshev
будет быстрей если одним инсервтом пачки вставлять
Alexandr Drobyshev
но все равно этот запрос еще на лету формировать же
Vitaliy Snitko
Т.е. в БД 10 тыс строк залетают за 1-3 сек? Не мало... На днях попробую этот же финт с Постгрес...
Alexandr Drobyshev
ну еще может влиять что мускл у меня возможно интел а проц амд) но все же, нужно учитывтаь что если 10к строк запистаь, то надо еще сгенерит запросы, а для них возмоно еще в связанные таблицы что то полетит и тд, а еще может что то делатся на том же сервере, и тд и тп) у нас для игровых серверов были сервера с одного дц чтоб по сети рядом стояли в одном шкафу) чтоб распределить нагрузку
Alexandr Drobyshev
ух ты, арм :D
Alexandr Drobyshev
так же еще мы перкону юзали она быстрей работала, ну и конфиг у меня стандартный, но в целом и запросы с одного файла простые) так что тут пофиг)
Vitaliy Snitko
Ок. Примерная картинка в голове сформировалась..
Ivan Dubchak
Привет) Может кто решает каты на Кодварс, может в групу?
Alexandr Drobyshev
при юзании ImagePicker иногда экран становится белым и просиходит октлчюение adb. С чем это может быть связано?
Alexandr Drobyshev
код простейший onTap() async { final file = ImagePisker.pickImage(source: IS.Gallery) }
Alexandr Drobyshev
1 строка
Alexandr Drobyshev
ошибок нет вообще в консоле
Alexandr Drobyshev
это все)
Alexandr Drobyshev
о так это проиходит до выбора фото) открывюа галерею и начинаю срколить, и чрезе пару сек пишет это
Alexandr Drobyshev
и дебагер отключается и потмо вбырть фото нельзя
Radomir Epur
Вроде сталкивался с этим. Должен быть issue, этот косяк только на эмуляторах, вроде.
Alexandr Drobyshev
я на хувей п30 тестирую
Alexandr Drobyshev
в иос эмуляторе да так, всегда было у меня, но в реале рабоатло, а сегодня началось прям часто) при чем именно если октрыть папку галарея
Alexandr Drobyshev
там 3к фоток пожет по этому
Alexandr Drobyshev
дургие папки по 200 фоток где номр все
Radomir Epur
а, если это на реальном девайсе, то странно
Alexandr Drobyshev
до вчера было такое редко) вчера началось вечером и вот сейчас вообще с галереи не могу выбрать ничего)
Алексей Гладков
Всем привет, есть проблема с флаттером заключающаяся в том, что у меня куча разных версий джава установлено и оно ругается на Unsupported class file major version 60 Я уже в project settings везде сменил на 1.8, но как-то не помогает. Есть идеи, где еще можно джаву поменять, чтоб он начал работать?
Alexandr Drobyshev
flutter pub get upgrade решил проблему ??
Alexandr Drobyshev
а можно как то иконеке тень сдлеать?) все тчо в голову пришло это делать Stack c двумя иконками разного цвета
Vadim Semenko
Ребят, может кто-то сталкивался с такой проблемой: билд любого приложение крашится в testflight, версия девайса ios 14.7.1. Xcode 12.5.1 - проекты запускаются и билдится без ошибок. При запуске через testflight - просто сразу вылетают
Vadim Semenko
может кто подскажет, в чем может быть причина, куда смотреть?
Bjorn
У меня когда что то не работает я смотрю в дебаг консоль, смотрю что за ошибка, если не знаю что она означает, тупо вставляю в гугл и ищу решение
Vadim Semenko
при билде нету ошибок
Vadim Semenko
падает в testflight
Bjorn
Ребят что быстрее будет SharedPreferences или Hive? Чтобы хранить одно bool значение которое проверяет если приложение запущено в первый раз?
Vadim Semenko
SharedPreferences
Denis Nadey
Доброе утро всем, вопрос про vscode и mac os . Только у меня все время vscode дергает обратно к себе когда переключаюсь между столами ?
Alexandr Drobyshev
ни разу не дергало, но я вырубил чтоб окна выносились вперед сами, бесило, может связано
Denis Nadey
и как реализовать ? что тыкуть и куда или json настройка
Alexandr Drobyshev
не решил) но реже стало) думаю с ОЗУ телефона что то
Alexandr Drobyshev
я снял первую галочку
Alexandr Drobyshev
это когда окно запустил како ето оно первое становится при пролистывании справо
Alexandr Drobyshev
я расставлю окна, а оно само сортирует) бесило, убрал, не знаю поможет ли)
Denis Nadey
реально помогло
Denis Nadey
И второй вопрос : после ошибки какой либо ( невозможно редактировать код не дает стирать или как то редактировать пока не выключу дебаг или не перезапущу его )
Виктор
[
"Привет всем. Подскажите, пожалуйста, что я делаю не так? Ставлю ",
{
"type": "code",
"text": "FractionallySizedBox"
},
", у которого не могу задать высоту. Если пишу ему ",
{
"type": "code",
"text": "heightFactor"
},
", то получаю ошибку \"",
{
"type": "italic",
"text": "BoxConstraints forces an infinite height"
},
"\". Я как-то упустил момент, после которого относительная высота перестала применяться, и воспроизвести ситуацию, когда все было ок, не выходит. Очевидно, что где-то у родителей этого виджета не задана абсолютная высота, но как и на каком уровне это исправить - ума не приложу. Родителем виджета со скрина является ",
{
"type": "code",
"text": "Column"
},
"."
]
Alexandr Drobyshev
ну он же в рпоцентах от родителя считает, видимо нет выосты и не от чего счиатть
Alexandr Drobyshev
попробуйте задать высоту или в expanded завренуть
Темирлан
Всем привет, использую Getx Делаю Get.toNamed(route, arguments: {any args}) Но когда делаю уже там внутри Get.arguments почему-то аргументы равны 0
Темирлан
Хотя везде работает, но в одной странице почему-то так
Yehor Altshuler
[
{
"type": "link",
"text": "https://pub.dev/documentation/glassmorphism/latest/"
},
"\nПривет. Этот пакет позволяет сделать контейнер с прозрачностью в стиле гласморфизм, но ему нужно обязательно указывать параметр высоты и ширины, а мне нужно чтобы контейнер адаптировался под размер контента внутри, подскажите пожалуйста как это сделать"
]
Bjorn
9 секунд первая загрузка и SharedPrefs и Hive :/
Bjorn
9 секунд потому что у меня ещё другие Hive боксы есть
Дмитрий Щербаков
Странно что так долго, наверно там на сериализацию из json уходит 8.9 сек и 0.1 на запись?)
Gaunter O’dimm
Сделай обертку на ним, которая будет считать нужные дименшены для либы и скармливать расчетные данные ей.
RgiN©
Причем тут json к hive?
Gaunter O’dimm
[
"Через медиа квери, если тебе надо опираться на ресайз экрана: ",
{
"type": "link",
"text": "https://www.codegrepper.com/code-examples/dart/flutter+dynamic+width"
},
""
]
Yehor Altshuler
Спасибо большое
Gaunter O’dimm
[
"Не за что. Вот ещё пример: ",
{
"type": "link",
"text": "http://5.9.10.113/65432565/dynamic-height-for-swiper-widget-in-flutter"
},
""
]
Дмитрий Щербаков
Ну не может в hive и шареды так долго писать там же не 1Tb наверн данных
Andrey
Hive быстрее существенно. Недавно нечто подобное как раз реализовывал, splash screen с circular progress indicator прям конкретно fps просаживал вместе с sharedprefs, с hive вообще ничего, никаких просадок
Denis Glukhov
всем привет, подскажите какой нить di плагин
.Pasha Kruzenshtern
.get_it?
Evgenii Elchev
какую проблему ты хочешь решить?
Denis Glukhov
хочу инжектить в репозитории определенные объекты, у которых свой скоуп
Denis Glukhov
в нативном андройде юзаю dagger2, есть ли для флаттера что то подобное?
Evgenii Elchev
это же не проблема, это процесс, зачем тебе инжектить?
Alexandr Drobyshev
меня вчера утут убедили что надо сдлеать свой класс
Alexandr Drobyshev
AppInj
Alexandr Drobyshev
и юзать)
Alexandr Drobyshev
так и сдлеал ) сутки прошли пока не жалуюсь)
Alexandr Drobyshev
30 лет программирую ни разу не пришлось что то подменить ??
Alexandr Drobyshev
вот ток если чесно так и не понял как из вне для тетсов что то можно подменить?) весь класс AppInj подменять?
Alexandr Drobyshev
посомтрел то видео что вы кидали по свифт юи, там была речь про анотации для подмены из вне0 я пропутсил то ибо я так понимаю к дарту это не отновится?
Evgenii Elchev
ну для тестов его прийдется подменять целиком да
Evgenii Elchev
по этому я использую di а не сервис локатор
Evgenii Elchev
ведь тогда все зависимости передаются через конструкторы
Alexandr Drobyshev
ну я и юзал преедачу чреез конструткор до вчера
Evgenii Elchev
и любому классу изи подкинуть моки вообще без контейнера
Evgenii Elchev
это удобно
Evgenii Elchev
а вчера почему перестал?
Alexandr Drobyshev
ну написали тчо я не правлиьно делаю тут и вы вроде как в том числе)
Alexandr Drobyshev
я юзал провайдер и задался вопрос какого черта у меня все в юи находится)
Evgenii Elchev
я сказал что get it не нужен если ты не поменяешь реализацию в рантайме)
Evgenii Elchev
я не писал что не надо передавать через конструктор)
.Pasha Kruzenshtern
[
".а если делать что-то в духе ",
{
"type": "code",
"text": "Class({Inj? a}): _a=a??sl () "
},
"?"
]
Evgenii Elchev
так тоже можно
Alexandr Drobyshev
[
"child: BlocProvider<>(create: (c)=> SomeBLoC(\n SomeRepo(\n SomeLocalDataSource(SomDAO(",
{
"type": "link",
"text": "context.read"
},
" )),\n SomeNetDataSource(",
{
"type": "link",
"text": "context.read"
},
")\n)\n)"
]
Alexandr Drobyshev
это ж треш какой то)
Alexandr Drobyshev
ну то етсь я имею ввиду что провайдер коок нетекту передает данные все
Alexandr Drobyshev
по моему это не врено)
Alexandr Drobyshev
я и пришел юзда с вопрос как тогда правлиьно)
Evgenii Elchev
это вот как у меня сделано во флаттере
Alexandr Drobyshev
а етсь гит репо? по видео чесно говря не удобно сомтреть
Denis Glukhov
а есть какой нить примерчик, хочу посмотреть?
Alexandr Drobyshev
да это фигня) я ищу пока другйо враинт, вон ща видео посмотрю евгения
Alexandr Drobyshev
я сделал просто
Alexandr Drobyshev
но это тоде не то что надо)
Alexandr Drobyshev
ну я так понимаю с ди все равнов се по контексту преедается, весь слой данных и логики
Denis Glukhov
есть что нить посмотреть на гите?
Alexandr Drobyshev
я делаю такие оберткипросто обзываю AppScope если надо не глобал то AuthScope и тд но громозжко выглядет из контекста все тянуть
Alexandr Drobyshev
а можно сделать так чтоб когад я собираю апп бандл релих - у меня один юрл апи был а когда запускюа кнопкой пуск - другой?
Alexandr Drobyshev
юзаю вскод
Sergey Hottabych
Можно флэйворы намутить через аргументы командной строки. Мы так делаем
Alexandr Drobyshev
то есть при собрке указыватаь что то после --reliase типа --url=https://...
Sergey Hottabych
DARTDEFINE=Flavor=Dev, типа такого
Daniil Kolyasnikov
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/foundation/kReleaseMode-constant.html"
}
]
Sergey Hottabych
Не, он принимает только DARTDEFINE
Sergey Hottabych
А в зависимости от флэйвора нужный URL
Sergey Hottabych
var flavor = String.FromEnvironment
Sergey Hottabych
Что-то типа того
Sergey Hottabych
Не у компа щас
Alexandr Drobyshev
о спс) вроде то что надо)
Sergey Hottabych
Но суть такая
Alexandr Drobyshev
да спс) вон кинули ссылку
Sergey Hottabych
Мой способ гибче. У нас 4 флэйвора. И можно их в конфиге VsCode перечислить
Sergey Hottabych
И одним кликом запускать
Sergey Hottabych
Можно аргументы в CI прописать.
Sergey Hottabych
Билдить сразу под нужный URL
Alexandr Drobyshev
ну а это не то же что выше кинули?
Daniil Kolyasnikov
Нет. kReleaseMode это константа флаттера, которая определяется во время компиляции. Если тебе для релиза другой url подставлять просто, то этого достаточно
El
Вообще флейворы только же к нейтиву относятся, не?
Alexandr Drobyshev
ну это понятно, но по аналогии я так понял String. fromEnvironment('API_URL', default: '') можно?
Alexandr Drobyshev
или я не так понял)
El
А дарт-дефайн к дарту, т.е. от флейвора независим
Daniil Kolyasnikov
var url = kReleaseMode ? releaseUrl: debugUrl.
Alexandr Drobyshev
[
"flutter run --release --dart-define=API_HOST=",
{
"type": "link",
"text": "xxx.xxx.xxx.xxx"
}
]
Alexandr Drobyshev
сработало)
Alexandr Drobyshev
всем спасбио) но навренео тут да константы той хватит
Daniil Kolyasnikov
А откуда env тянутся из области видимости при компиляции или в рантайме на устройсте ?
El
Из-за этого они должны быть конст
Alexandr Drobyshev
[
"я так понял можно тупо\nconst HOST = bool.fromEnvironment('dart.vm.product', defaultValue: false)\n ? 'prod url'\n : '",
{
"type": "link",
"text": "192.168.3.101"
},
"';\n?"
]
Alexandr Drobyshev
вроде компилятор не ругается, и запутсилось да все отлично
?
Всем здравствуйте, как сделать такой боттом навбар? вроде есть плагины, но я забыл как они называются
?
и такие, с изогнутыми краями
El
Вроде что-то с notchshape надо искать
El
FloatingActionButtonLocation + shape у bottomappbar
Alexandr Drobyshev
[
"миллиён плагинов \n",
{
"type": "link",
"text": "https://pub.dev/packages/fluid_bottom_nav_bar"
},
""
]
Alexandr Drobyshev
первый попавшийся
Alexandr Drobyshev
ищите по bottom navbar напрмиер словам
Mitai
[
{
"type": "link",
"text": "https://youtu.be/9LvO7xkueT4"
}
]
Evgen Fil // (=^.^=)
[
"Всем привет. Как я могу выбрать директорию из внутреннего хранилища для записи и читать/писать файлы там? Пишу под android.\n\n",
{
"type": "italic",
"text": "P.S. Да-да, кросплатформенный фреймворк, а привязываюсь к одной платформе, знаю, я потренироваться хочу."
},
""
]
Timur M.
Есть либа path в пабе
Evgen Fil // (=^.^=)
Это немного не то, но тоже пригодится. Мне нужно у андроида попросить выбрать директорию для сохранения файлов и потом в коде файлы из директории читать и записывать.
Timur M.
Нативно писать хочешь?
Evgen Fil // (=^.^=)
Не хочу, у меня цель потыкать флаттер, а не андроид) Хотя если придётся немного, то можно, не страшно
Timur M.
Ну так я тебе и говорю Бери либу, получай путь И далее делай что хочешь
Evgen Fil // (=^.^=)
А как я путь-то получу?)
Timur M.
Читай доки к либе
Evgen Fil // (=^.^=)
[
{
"type": "italic",
"text": "The path package provides common operations for manipulating paths: joining, splitting, normalizing, etc."
}
]
Evgen Fil // (=^.^=)
Где тут "выбрать папку из внутреннего хранилища"?
Dimitry K.
[
{
"type": "link",
"text": "https://flutter.dev/docs/cookbook/persistence/reading-writing-files"
}
]
Timur M.
[
{
"type": "link",
"text": "https://pub.flutter-io.cn/packages/path_provider"
}
]
Evgen Fil // (=^.^=)
[
{
"type": "mention",
"text": "@coderyan"
},
" ",
{
"type": "mention",
"text": "@ivTimur"
},
" спасибо, ",
{
"type": "code",
"text": "path_provider"
},
" похож на то, что мне надо."
]
Ibragim Abbasov
Кто-нибудь работал с webrtc?
Johongir
как исправить эту ошибку?
Johongir
пожалуйста, помогите мне
Илья Коваленко
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/53636255/flutter-is-not-recognized-as-an-internal-or-external-command"
}
]
Evgen Fil // (=^.^=)
[
"Вопрос актуален\nМне посоветовали ",
{
"type": "code",
"text": "path_provider"
},
", но там нет возможности выбрать директорию самому"
]
Dimitry K.
потому что там можно выбирать только из директорий которые тебе дает андройд
Dimitry K.
[
{
"type": "link",
"text": "https://www.youtube.com/watch?v=21o4tS7a2-U"
}
]
Evgen Fil // (=^.^=)
[
"В поисках нужной библиотеки наткнулся на ",
{
"type": "code",
"text": "file_picker"
},
", он предоставляет то, что мне нужно, но при попытке прочитать содержимое выбранной директории вылетает ",
{
"type": "code",
"text": "Permission denied"
},
". Вот и пытаюсь найти альтернативы."
]
Dimitry K.
Там вроде можно только из downloads и г драйв получать файлы
|