Программирование : Dart & Flutter по-русски
Hellomik
ну Stream Controller понятно, а что на счет обычного стрима
DVS (Read The F.ng Manual) Studio (NoHello)
ну как то же они в этот стрим попадают )
Hellomik
а этот стрим сохраняет все ответы ? даже те которые были до этого ?)
DVS (Read The F.ng Manual) Studio (NoHello)
Stream - это FIFO структура. раз получил данные, больше не получишь. те которые были до того как ты начал его слушать, если его слушал кто-то другой, тем более
Hellomik
Все пасиб) теперь последний вопрос
Hellomik
почему есть фунция elementAt
Hellomik
или это типа для будушего когда придет елемент индексом 7 к примеру ?
DVS (Read The F.ng Manual) Studio (NoHello)
[
{
"type": "link",
"text": "https://dart.dev/tutorials/language/streams"
}
]
DVS (Read The F.ng Manual) Studio (NoHello)
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/dart-async/Stream/elementAt.html"
}
]
DVS (Read The F.ng Manual) Studio (NoHello)
[
{
"type": "code",
"text": "Stops listening to this stream after the indexth data event has been received"
}
]
Hellomik
Офигеть тема теперь я прозрел
DVS (Read The F.ng Manual) Studio (NoHello)
YaW )
Иван
Всем привет, мне нужно реализовать метод, который вернет true, как только переменная изменится, не подскажите, как это реализовать?
Roman Vasiliev
Метод не может возвращать "как только", только Future и Stream так могут. Ну и Notifier'ы всякие, но это уже не метод
Иван
Я не правильно выразился, мне как раз и нужно через Future
Socrat
Future try() async { if () { return true; }
DVS (Read The F.ng Manual) Studio (NoHello)
[
{
"type": "pre",
"text": "String _yourVar;\nvar _yourVarController = StreamController ();\nString get yourVar => _yourVar;\nset yourVar(String newVal) {\n _yourVar = newVal;\n _yourVarController.add(_yourVar);\n}\n\nFuture retAfterChange() async {\n await _yourVarController.stream.first;\n return true;\n}",
"language": ""
}
]
DVS (Read The F.ng Manual) Studio (NoHello)
чо то такое?
Kitsu
[
"А можно ли как-то получить размеры для текущего контекста, а не всего экрана. Пробовал ",
{
"type": "code",
"text": "MediaQuery.of(context).size"
},
", но почему-то на выходе тоже самое, если виджет засунуть в контейнер с margin"
]
Roman Vasiliev
(context.findRenderObject() as RenderBox)?.size Если память не изменяет
Sergey Hottabych
Есть ли во Флаттере такой виджет: вытягиваюшаяся снизу панель? Как в Яндекс.Такси
Roman Vasiliev
Правильно, пока не нарисовался ничего не будет
Constantine
кто тут развлекался с кастомными имейдж пикерами? ?? хочу сэкономить пляску с бубном и нативкой ) вдруг наработки какие есть, нужно только под айос )
Socrat
на сколько помню это можно только колбеком
Roman Vasiliev
Вызывай в WidgetBindings.addPostFrameCallback
Socrat
что требуется, зачем размер?
Roman Vasiliev
Может отступ для OverlayEntry хочет сделать)
Kitsu
Адаптивную верстку хочется, чтоб виджет в фулскрине и в окошке норм смотрелся, чувствую придется Expanded использовать
Roman Vasiliev
Скорее всего нужен LayoutBuilder, вернее что он передает
Roman Vasiliev
Если честно даже не представляю что бы дало знание размера
Kitsu
отступы между виджетами вычисляю в зависимости от размера окошка
Roman Vasiliev
Размер виджета показывает только что уже нарисовано
Socrat
так окошко у тебя уже имеет размер
Kitsu
но есть же макс размеры, где впринципе можно рисовать
Kitsu
они то в любом случае должны быть
Roman Vasiliev
LayoutBuilder как раз это и дает
Roman Vasiliev
И мусора в коде будет меньше
???????
Более того, это есть в офф мане флатера
???????
И раздел так и называется "адаптивная верстка"
Kitsu
посмотрю окей, спасибо
???????
[
{
"type": "link",
"text": "https://flutter.dev/docs/development/ui/layout/responsive"
}
]
???????
Тут весь фокус в контексте
???????
Разноси на более мелкие виджеты-классы
???????
[
"Если не умеешь нормально верстать, а всеже хочется таким образом использовать контекст, есть ",
{
"type": "code",
"text": "Builder()"
},
""
]
Roman Vasiliev
Я кстати забыл, а у билдеровского контекста есть собственный рендербокс?
???????
Как вариант оформляешь геттер и возвращаешь подписку на стрим. Таким макаром по сути работает веб и тот же ангуляр.
Roman Vasiliev
Что-то заинтересовал вопрос, но врубать и проверять лень
???????
Стримы суть итерации растянутые во времени. Также стоит отличать броадкаст стримы и сингл сабскрипшен. В случае броадкаст стрима в дарте - покс что было когдато там до момента подписки. В случае синглсабскрипшена - в момент подписки получишь все что было в него помещено.
???????
Эм, такая запись не сработает)
???????
Низя оператор распространения в тернарном условии таким образом использовать же
DVS (Read The F.ng Manual) Studio (NoHello)
поправил. задумался о двух вариантах, написал хрень
???????
А сейчас, если это отсылка к dart 2.3, то там, вроде, синтаксис не предусматривает else
Kitsu
Да, то что нужно, спасибо
DVS (Read The F.ng Manual) Studio (NoHello)
намана. работает как и должно
DVS (Read The F.ng Manual) Studio (NoHello)
как раз сейчас написал
???????
У тебя на неравно это какойто плагин стоит?
???????
Или дарт воспринимает этот спецсимвол?
???????
Не геморно ставить если так?
Fearless Cry
Это лигатуры
Fearless Cry
настройка шрифта
???????
Чуть поподробнее плиз
???????
[
"Ведь ",
{
"type": "code",
"text": "!="
},
" это два отдельных символа"
]
Fearless Cry
тот знак тоже
???????
Расскажи, плез. Я сча убегаю, приду, прочту.
Roman Vasiliev
это что-то вручную настраивать / галочка / плагин?
Artur
В настройках IDE найди лигатуры и включи
Artur
Шрифт должен поддерживать
Roman Vasiliev
Consolas не поддерживает, ну ок
Fearless Cry
да я просто показал где включается
Hellomik
Так можно немного по понятней пожалуйста
Roman Vasiliev
у меня такой стоит, я в этом смысле
???????
Убегаю. Но стрим это смесь iterable и future
Fearless Cry
короче если удалить первый символ - удалится !
Fearless Cry
если второй то =
Fearless Cry
синк это у контроллера
Hellomik
Ну тип в обоих можно добавить данные через функцию add
Hellomik
Зачем их поделили так?
Roman Vasiliev
чтобы не подслушивали наверное)
Roman Vasiliev
ну а как sink слушать?
Roman Vasiliev
где не надо, там не будут слушать стрим
Roman Vasiliev
только добавлять
Hellomik
Ну окей, ну все равно это прояснилось почему их в streamcontroller есть функция add которое делает тоже самое, как и в sink
Roman Vasiliev
дак класс контроллера включает в себя sink
Roman Vasiliev
а поле sink дает доступ только к своему функционалу, там даже в описании к нему так написано
Roman Vasiliev
контроллер как бы объединяет это все в себе, но можно ограничиться тем или другим, если целый контроллер нет необходимости таскать
Fearless Cry
чтобы ты синк мог кидать другим объектам
Fearless Cry
вместо того чтобы кидать весь контроллер
Sergey Hottabych
Имхо, лучше создай небольшой метод buildImageCatalog, который тебе возвращает Column с виджетами
???????
StreamController Stream StreamSubscription
???????
Вот основные типы для реактивщины в дарте
Dmitriy Zubov
Всем привет! Где можно взять flutter sdk 32bit?
Dima
А такое же со switch-case можно?
Nikolay Plotnikov
Ну не знаю. Есть Laravel тоже, в нем API из коробки. Джанго возможно, но вроде там отдельный модуль.
Павел
Вроде в FAQ запрещены холивары
Павел
[
{
"type": "link",
"text": "https://w3techs.com/technologies/overview/programming_language"
}
]
Павел
Для каждой задачи свой инструмент. У меня на фронте флаттер - на бэке php
Nikolay Plotnikov
все сам делаешь?
Nikolay Plotnikov
я вот тоже сам хочу все, а на PHP используешь что-то типа Laravel?
Nikolay Plotnikov
я вот тоже к такому стеку склоняюсь. Проблем не возникает?
Nikolay Plotnikov
есть пример такого приложения из маркета?
Павел
Это лучшее что есть из бэка. Symphony сложнее намного
Павел
По фронту пока был на RN, только сейчас перехожу на флаттер
Nikolay Plotnikov
А по взаимодействию с мобилой, все гуд стыкуется?
Nikolay Plotnikov
Воо... я сначала смотрел в сторону РН. И как по ощущениям?
Nikolay Plotnikov
Переход
Павел
А бэку какая разница ? Мобила или Сайт. Бэк отдает по АПИ базу. Как видишь подустал от РН и ухожу на флаттер
Evgenii Elchev
Это конечно громкое заявление)
Павел
Ощущения пока не готовы, потому что не написал. Но первая аппа уже в бете. Небольшая. Пока только позитив
Nikolay Plotnikov
ну то есть Флеттер тебе больше нарвится ?
Evgenii Elchev
Тогда ок) но симфони тоже крутая, просто для других задач)
Павел
Однозначно лучше. Ближе к нативу намного
Nikolay Plotnikov
Слышал что Андроид разрабу даже не так сложно переучиться под Флеттер
Павел
Симфони наверное это как натив по сравнению с флаттером
Павел
Не привык голословно кричать
Павел
[
{
"type": "link",
"text": "https://s3-ap-south-1.amazonaws.com/eww-wp/wp-content/uploads/2019/07/31103058/PHP-Framework-Usage.png"
}
]
Павел
Написал простейшую аппу за 2 недели (не hello world). С андроида натива ушел года 3 назад
Nikolay Plotnikov
Еще про КодеИнжинер слышал. Что он прост
Nikolay Plotnikov
И на нем апи тоже просто писать
Yerassyl Maikhanov
люди не фоткайте экран, используйте обменники кода
Yerassyl Maikhanov
так проще для всех
Tagir
как можно выключить работу геопозиции в проге? с включением его я разобрался использую плагины geolocator и location_permissions
Evgenii Elchev
Нет никакой разницы в сложности натива и флаттера
Evgenii Elchev
Популярный не значит лучший) в симфони удобно делать крупные проекты на до которыми большая команда работает. Ларавел удобнее пилить соло проекты)
Константин Буланов
Ну меня потоки напрягают. Если их во flatter нету интересно как приложение работает на нескольких ядрах. Или реально только на одном :(
Stanislav Sagan
Здравствуйте, мне пришло вот такое письмо что мой закрытый ключ засветился в открытом репозитории на гитхабе (я запушил)
Stanislav Sagan
И ссылается на комит, но разве ключ от гугл карт секретный?
Stanislav Sagan
Да и не могу же я этот файл не пушить... Это даже не конфиг вроде как. подскажите
Валерий
Когда счёт на несколько тысяч долларов прилетит за использование апи задумаешься является он секретным или нет) это публичный репозиторий, за приватный ниче не сказали бы
Stanislav Sagan
Хмммм, ну наверное это замечание имеет смысл... А нельзя разве с таким же успехом вытащить ключ из бинарного apk?) Если захотеть? Был приватный репозиторий, для резюме сделал публичным.. Есть советы как с публичным репозиторием поступать? Ключ перевыпущу - понятное дело
Константин Буланов
Наверное через переменную из другого файла его нужно инклюдить в код. И тот файл с ключем не выкладывать.
Валерий
Можно сказать чтобы подставили свой ключ, или отдельно им его приложить, а в коде как обычно написать YOUR API KEY
Stanislav Sagan
[
"Так всегда и делают... что-то вроде ",
{
"type": "code",
"text": ".env\n"
},
"но это просто xml файл) Хех)"
]
Stanislav Sagan
Ок, спасибо Пока что пусть будет невалидный ключ, либо пустой ключ.. А там, если кто предложит лучшее решение для публичных репозиториев - будет хорошо
Павел
Не так наверное сравнил) Просто если надо написать проект для двух платформ - то берут флаттер. так и в ларавеле. Можно взять симфони и писать в 2 раза дольше, делая больше шагов
Константин Буланов
Вряд-ли будет лучшее решение. Вы приватный ключ пытаетесь сделать публичным. Тут хоть что придумывай.
Stanislav Sagan
На сколько я понял у ключа должно быть ограничение на то чтоб использовался он только моим приложением.. т.е. можно публиковать...
Stanislav Sagan
Ладно, что-то придумаю) Или не придумаю) Спасибо)
Валерий
Я сейчас не вспомню к чему там привязка, к ID приложения или к sha1 но если её их специально не указать то привязки нет по умолчанию
Mitai
dart_to_js_script_rewriter вот этот пакет из перваой части дарта был заменен каким?
Evgenii Elchev
Тут согласен)
Stanislav Sagan
Понял, будет желание - попробую поковыряться в настройках. Но сервисы от гугл просто сделаны не для людей. Нихрена не интуитивно не понятно
Evgenii Elchev
Так правильно, они же интерпрайз на бизнес рассчитаны, а не людей))
Radomir Epur
А че не выделить один файл для секретных данных(типа api ключей), и этот файл указать в .gitignore?
Radomir Epur
По-моему это легче чем потом ломать голову и доказывать кому-то что данные, которые ты выложил, не такие уж и секьюрные.
Radomir Epur
[
"Тэк, ребята. Задача: построить дендограмму(или иерархическую диаграмму, по-другому) на flutter web.\nВопрос: какие инструменты(пакеты и виджеты) лучше для этого использовать?\nP.S. Естественно, она должна быть динамической(то есть, сама дендограмма и ее представление зависит от выбранных пользователем значений в фильтрах). В готовых либах на ",
{
"type": "link",
"text": "pub.dev"
},
" дендограмм не нашел.\n\n",
{
"type": "link",
"text": "http://900igr.net/up/datai/66063/0008-002-.png"
},
""
]
Stanislav Sagan
Хах ?? ??
Anton Zheltov
Кто-нибудь в маркет выкладывал за последнюю неделю обновления? Выложил новое приложение 31 марта, до сих пор висит на проверке.
Павел
они ж сами писали про неделю. у меня лежит в релизе, но в маркете пишет ранний доступ
Павел
проверки прошло быстро, день макс
Anton Zheltov
Готовится к публикации Обработка обновления…
Anton Zheltov
вот что у меня
???? ???????
Кто-нибудь может подсказать хорошие ресурсы по работе с сокетами во флаттере?
Sergiy Vergun
context: dirty = true. Что значит dirty и что на него влияет?
admin
Приветствую. Подскажите, плз,как можно уменьшить размер приложения в дебаге ? 100мб занимает стандартный шаблон
Roman Vasiliev
Собрать релизное
Aleksey
пересобери в релиз
Константин Буланов
И кстати дебжный apk руками не ставиться
Evgeny Cherkasov
Это как посмотреть. Сервисы Amazon например, на мой взгляд гораздо хуже по юзабилити.
???????
А чего там работать то
???????
Просто берешь и делаешь
???????
Не найдешь готового на флатере, спокойно можешь сделать либой на JS
Radomir Epur
А не подскажешь как это делается? Есть может быть где-то статейка?
???????
Ну ты можешь либо встроить html как виджет, либо сделать интеропы к js коду если решишь портировать функциональность.
Radomir Epur
Понял, спасибо, попробую.
???????
[
"Встроить html элемент можно через \n",
{
"type": "code",
"text": "ui.platformViewRegistry.registerViewFactory(...)"
},
""
]
???????
Ну ему не иерархический список, а именно дендрограму. Не то чтоб я искал нечто подобное, но штука довольно специфичная.
???????
Если есть готовое во флатере и обладает достаточными фичами - супер.
Radomir Epur
Какой список с деревом из примеров?
Radomir Epur
В одной js либе нашел такое представление иерархического графика. Это мне тоже вполне подойдет. Да и реализовать это, как понимаете, намного легче дендограммы.
Radomir Epur
Спасибо, но это совсем не то. Легче сделать с нуля, чем "доделывать" эти плагины)
???????
Это иерархические списки, это совсем не то
Kitsu
[
"А можно как-нибудь сказать ",
{
"type": "code",
"text": "flutter format"
},
" пропустить форматирование блока?"
]
Константин Буланов
Коллеги а где задается имя (приложения) файла который отображается под иконкой?
Rudi
com.example.my_first_app
Rudi
на стадии создания проекта
Константин Буланов
А если хочу по русски чтоб подписывалось. Но флаттер не даст такое создать!
Александр Саньков
[
{
"type": "link",
"text": "https://flutter.dev/docs/deployment/android"
}
]
Александр Саньков
[
{
"type": "link",
"text": "https://flutter.dev/docs/deployment/ios"
}
]
Константин Буланов
Спасибо. Как я понял это делается уже на этапе публикации и релиза.
Александр Саньков
Можешь сделать, когда захочешь
Davron Asrorov
В Manifest и info.plist
Davron Asrorov
А это к нему никак не относится
Rudi
а к чему это относится?
Davron Asrorov
Ну это bundle, а то LaunchName
Nikolay Plotnikov
какую IDE используете?
Moby Polo
Доброго дня, уважаемые участники, не холивара ради, хотел бы услышать кто какой стейт менеджер использует, почему и есть ли у кого уроки по ним на русском? Сам попробовал мобх, видимо в силу начальности знаний - работает он как то не так )
|