Программирование : Dart & Flutter по-русски
Дмитрий Щербаков
У нас таргет 16 Ms (60 фпс)
Дмитрий Щербаков
Хотя я упарывплся и для 120
Дмитрий Щербаков
Т. Е. Каждые 16ms дерево должно успеть отрендериься
tdesc
у меня 90 фпс девайс, видел уже на руках 120
tdesc
надо сразу в 8 целить
Дмитрий Щербаков
Ну я ща вот на poco x3 гоняю интернет магазин
Дмитрий Щербаков
С кучей сливеров и стримбидеров
Jeka
то есть если я буду использовать Example это даст больше перфоманса чем text()?
tdesc
нет никакой разницы
Дмитрий Щербаков
Открой сорцы Text)
tdesc
ещё раз надо с рендеринга смотреть до зачем виджету стейт и кто будет его setState дергать
Jeka
ну дак в чем проблема тогда выносить такое в функцию?
Jeka
типо новый класс не говнокод, а функция в пару строчек да?
tdesc
проблема вами не озвучена
tdesc
не знаю чего добиваетесь)
Jeka
ну чел писал, что функция которая возвращает виджет = говнокод
tdesc
функция которая возвращает виджет это просто функция
tdesc
во флаттер все функции и даже виджеты
tdesc
другое дело что виджету можно ключ поставить
Дмитрий Щербаков
Все есть object ??
Дмитрий Щербаков
Кроме dynamic
Илья Высоцкий
подскажите, есть ли такой виджет, в который можно картинку положить и она принудительно уменьшится? У меня библиотека выдает иконки определенного размера, а мне надо поменьше.
Владислав
FittedBox подгонит под любого родителя
d
Смотря с какой версии дарта
Sergey Riabinin
А что сделать, чтоб приложение запускалось на айфоне после того, как вытащил провод из него? Вроде раньше приложение вполне себе запускалось с телефона просто. А сейчас не хочет.
Sergey Riabinin
Только пока подключен к компьютеру работает.
Sergey Riabinin
Э.. не понял. Это мне нужно сначала какой-то промежуточный файл создать и его запустить уже?
d
flutter run ... --profile
Sergey Riabinin
А.. понятнее да. А вместо ... нужно что-то подставлять или это и есть команда?
d
типа -d
я не помню точно какой там флаг
d
можно посмотреть через flutter devices
Sergey Riabinin
Спасибо, работает. При подключенном устройстве можно просто: flutter run --profile
Nikita Pushkar
ребят кто может простенькое приложение сделать на флаттере? если в двух словах - открытие страницы github.
Sergey Riabinin
[
"Это в вакансии: ",
{
"type": "link",
"text": "https://t.me/dartlang_jobs"
},
""
]
Сергей Тимшин
Всем привет! Кто-нибудь использовал PaginatedDataTable в проектах? По нашему апи данные приходят частями(первая страница, вторая и тд), можно нажимая вперед/назад догружать данные или обязательно весь пулл данных получать с сервера?
Yakov K.
Количеством кода и скоростью же :) Нотифаеры справятся с этой задачей не хуже
Kirill Aparin
[
{
"type": "bold",
"text": "Для тех кто шарит в swift\n\n"
},
"Кто знает можно ли сюда добавить ",
{
"type": "code",
"text": "completion handler"
},
"? (Идея в том, если пользователь вызвал этот метод, и не выбрал никакое приложение, то мы делаем ",
{
"type": "code",
"text": "А"
},
", а если выбрал приложение и перешёл в него, то ",
{
"type": "code",
"text": "B"
},
")\n\n",
{
"type": "code",
"text": " if ([@\"share\" isEqualToString:call.method]) {\n NSString *shareText = arguments[@\"text\"];\n NSString *shareSubject = arguments[@\"subject\"];\n\n if (shareText.length == 0) {\n result([FlutterError errorWithCode:@\"error\"\n message:@\"Non-empty text expected\"\n details:nil]);\n return;\n }\n\n [self shareText:shareText\n subject:shareSubject\n withController:[UIApplication sharedApplication].keyWindow.rootViewController\n atSource:originRect];\n result(nil);\n }"
},
""
]
Дмитрий Щербаков
В плане произодительности я бы поспорил ;) давай сделаем тест. Условно у нас 30 элементов на экране. Пусть это будут изображения которые грузятся либо с локального Кеша либо показывают прогресс загрузки если изображения нет в кеше
Дмитрий Щербаков
[
"Блин промазал ",
{
"type": "mention",
"text": "@purplesoop"
},
""
]
Roman Kaygororodcsev
Подскажите пожалуйста, как сделать второй экран чтобы при его открытии свурху оставалась небольшая часть, которая не отсится к этому экрану.
Dmitrij Kuznetsov
что скажете по поводу хранения параметров приложения в singlton объекте
Yakov K.
[
"Ну яж делал тест с рисовалкой :) \n\n",
{
"type": "link",
"text": "https://t.me/rudart/408683"
},
""
]
Yakov K.
Но вообще я за ещё один тест сделать, вполне :)
Дмитрий Щербаков
Но это кейс не тот что я предожил)
Дмитрий Щербаков
У меня в проде ща прост вот как раз со стримами кейс и все ок
Дмитрий Щербаков
Когда с кешем
Дмитрий Щербаков
Т. Е. Есть живой пример а не каунтер))
Дмитрий Щербаков
216 стримов на экран в пике
Yakov K.
Отлично, отправите код на стримах в лс? Переведу на нотифаеры
Дмитрий Щербаков
До компа доберусь скину) у меня пятница уже
Дмитрий Щербаков
Там обычный стейтлесс который возвращает стримьилдер)
Yakov K.
Да норм, KISS жы
Ivan
[
{
"type": "link",
"text": "https://pub.dev/packages/modal_bottom_sheet"
}
]
Roman Kaygororodcsev
Спасибо
Roman Kaygororodcsev
Большое
Roman Kaygororodcsev
Очень долго искал
Ivan
[
{
"type": "link",
"text": "https://jamesblasco.github.io/modal_bottom_sheet/#/"
},
" вот тут можешь поклацать эту либу"
]
Roman Kaygororodcsev
Спасибо
kk boomer
а там точно, закодированный текст?
Константин Бобров
как сделать, чтобы левый блок по высоте выравнивался?
IB Akhrorov
[
{
"type": "link",
"text": "https://medium.com/@skyart450/how-to-parse-data-in-big-flutter-projects-c5b22ccca6f4"
}
]
IB Akhrorov
Привет, я только что написал свою первую статью. Надеюсь, это поможет вам писать чистый код)
Isfun
Здравствуйте. Такой вопрос: Есть StreamBuilder stream внутри динамичный, меняется в зависимости от того, есть ли текст в строке поиска. Так вот, при одном условии я передаю не Stream , а CombineLatestStream>, и когда я делаю это при пустой строке поиска, всё работает, а когда я в поиск что-то набираю, выдаёт ошибку
MiT
[
{
"type": "link",
"text": "https://t.me/flutter_rus/72566"
}
]
Isfun
Expected a value of type 'Stream ', but got one of type 'CombineLatestStream>'
Вот эта ошибка
Isfun
Хотя StreamBuilder и так получает тип CombineLatestStream >, ошибка вызывается только когда я ввожу что-то в поиск, и возвращается фильтрованный CombineLatestStream>
Kudaibergen Dauken
Всем привет
Kudaibergen Dauken
Кто нибудь работал с firebase analytics?
Kudaibergen Dauken
Почему то при вызове logEvent, у меня событие в консоли с events не показывается
Kudaibergen Dauken
ни ios ни android
Владислав
Только добавил analytics или работало раньше?
Kudaibergen Dauken
Только добавил
Kudaibergen Dauken
То есть в streamview я вижу это ивенты, а во вкладке events их нет
Владислав
24 часа подожди, должно появится если правильно отправляешь
Kudaibergen Dauken
Так, а в debugview они должны появляться?
Владислав
хз не пользовался
Kudaibergen Dauken
А есть какой нибудь способ проверить, правильно ли я отправляю? Тип если они в streamview есть, то все ок ведь?
Kudaibergen Dauken
Ок, спасибо за помощь
El
Да, но там через адб дебаг мод включать надо
jora
Всем привет) Подскажите плиз, первый цикл не работает, что не так?
Yakov K.
От того что вы помещаете строку в массив она не разбивается на буквы :)
jora
А что посоветуете? я пока просто учусь)
Yakov K.
Разбить на буквы :))
Yakov K.
И при инкременте через ++ не надо присваивать ничего :)
jora
А каким оператором это можно сделать?
Yakov K.
А ещё для тренировки можете попробовать этот алгоритм вообще без переменных реализовать :)
Sergey Riabinin
а в какой из манифестов добавлять запрос на разрешение пользователя?
Sergey Riabinin
Последний?
Vadym Pankiv
Ребят подскажите пожалуйста как можно добавить ефект нажатия для SvgPicture.asset?
Vadym Pankiv
да, но тогда этот ефект получается под картинкой
Maxim mongugay
А нужно чтобы как ?
Vadym Pankiv
в том смысле что его не видно
Maxim mongugay
у InkWell onTap реализован ?
Жаркынбек Батыров
"строка".split(""); Array.from("строка"); На счёт второго не уверен
Danila Manila
а что пытаешься сделать?)
jora
Может знаете задача «робот» Где надо посчитать количество клеток, в которых робот был учитывая его передвижения L - влево R - вправо S - на месте
Danila Manila
задачу такую не знаю, но интересно) Сам хочешь решить?
Никита
[
{
"type": "link",
"text": "https://github.com/avdosev/habr_app/blob/master/lib/widgets/html_elements/quote_block.dart"
},
"\n\nВот попробуй, это примерно то, что нужно, если судить по картинке, но необходимо слегка адаптировать"
]
Amin
Здравствуйте, подскажите пожалуйста русскоязычные материалы для быстрого вхождения во flutter для не начинающего програмиста
Maxim mongugay
[
{
"type": "link",
"text": "https://www.youtube.com/c/LearnDartFlutter/videos"
}
]
Yakov K.
для не начинающего – VSCode и клавиатура
Amin
Спасибо, очень полезный ресурс для начинающих
Anna Datzenko
Привет! Подскажите пож-та можно ли локализировать иконку приложения в App Store, чтобы пользователи из разных стран видели разные иконки в App Store? Спасибо
Constantine
Подскажите пожалуйста название виджета
Павел Середа
[
{
"type": "link",
"text": "https://developer.apple.com/forums/thread/77531"
}
]
Constantine
и с вот таким прогрессом сниз
Павел Середа
[
{
"type": "link",
"text": "https://pub.dev/packages/im_stepper"
}
]
Павел Середа
вы можете ограничивать доступность приложеньки по странам, соответственно можно сделать копии приложений для каждой группы стран своя, со своей иконкой
Yakov K.
[
"К чему существует ",
{
"type": "code",
"text": "dart(mixin_inherits_from_not_object)"
},
"? Зачем эта ошибка стоит по умолчанию и её надо выключать ручками?"
]
Dmitriy
ребята почему print(2) выводится раньше чем print(1) заранее благодарен
Evgeniy Yurchenko
В блоке try у вас await вероятно из-за этого
Dmitriy
А как добиться того чтобы дарт дождался await
d
Ждать await не надо Ждать надo Future с помощью await
d
[
{
"type": "mention",
"text": "@purplesoop"
},
" а Вас правда кикнуло или Вы удалили сообщение? ??"
]
Dmitry Demchenko
Судя по коду падает ошибка Appwrite не с кодом 401, из-за чего и проходит дальше и печатает 2
Dmitriy
Блин точно, спасибо большое)
Jamshed Rakhmonov
[
"Ребят не работает setstate внутри таббар вью ",
{
"type": "pre",
"text": "IconButton(\n icon: Icon(\n Icons.close,\n color: Colors.red,\n size: 18,\n ),\n onPressed: () {\n setState(() {\n DBProvider.db.deletePost(widget.posts.id);\n });\n },",
"language": ""
},
""
]
Миша
Почему мне постоянно флаттер выдает ошибку _TileLayerState#36f23(tickers: tracking 15 tickers) was disposed with an active Ticker, когда в диспосе я пишу: _timer.cancel(); super.dispose();?
Миша
я же сначала вырубаю таймер, а потом делаю диспос, не должно же ошибок быть
Jamshed Rakhmonov
пост удаляется но страница не обновляется
Миша
так обнови функцией, лично я так решил подобную проблему, но с ListView
Миша
т е ты вызываешь сетстейт, а потом по обновленным данным снова загружаешь все
Jamshed Rakhmonov
использую futurebuilder и внутри него listview
Миша
ааа, тогда другой разговор
Nikolya.Y
Сколько в $ нормальная ЗП для trainee flutter? А то у меня спрашивает работодатель мои ожидания, а я не знаю
Jamshed Rakhmonov
вопрос, какой разговор?
Jamshed Rakhmonov
можете код скинуть попробуй
Миша
не знаю?????>? Я все делал просто с ListView.builder, без futurebuilder
Daniil Kolyasnikov
80-110 килорублей
Serge Shkurko
можно зайти на hh и посмотреть среднюю
Daniil Kolyasnikov
Тренированный разработчик. Верно ?
Daniil Kolyasnikov
Аа. Мне кажется, что стажёры бесплатно
Daniil Kolyasnikov
Потому что либо можешь писать, либо учись писать и приходи, когда сможешь писать
Said-Amalkhon
ребят а как сделать так что бы у меня AppBar появлялся только тогда когда я прокрутил страницу
Sergey Hottabych
Скорее, джун.
Said-Amalkhon
то есть проверить isAppBarcollapsed
Michael Lazebny
чёё, джун 80 баксов?
Daniil Kolyasnikov
Килорублей
Daniil Kolyasnikov
Написаноже
Michael Lazebny
типо 80000?
Daniil Kolyasnikov
Да. В мск
Michael Lazebny
в целом да
Daniil Kolyasnikov
За сколько продашься за столько и купят. На какую позицию продашься на той и будешь работать
Жаркынбек Батыров
Sliver app bar посмотри
Said-Amalkhon
я и так на нем написал
Жаркынбек Батыров
Ааа да сорян)
Said-Amalkhon
можно как то проверить сделал ли я скрол или нет?)
Daniil Kolyasnikov
Ну а зачем ? Это работать придётся
Daniil Kolyasnikov
Палкой бить такой менеджмент
Dmitry Bannikov
Что нужно знать чтобы устроится джуном , за 80 кило рублей ?
Dmitry Bannikov
Какой стек
Dmitry Bannikov
Про него читал только
Dmitry Bannikov
Спс за совет , будет качать блок
Daniil Kolyasnikov
Ну щазже
Daniil Kolyasnikov
Для начала нужно хорошо понимать как строить приложение на ваниле
Daniil Kolyasnikov
А после этого учить либу под нужны компании
Andrey
kb, много подвсе выучить займет времени
Dmitry Bannikov
Ванила не такая и сложная если через провайдер зайти
Daniil Kolyasnikov
Ванилла без провайдера
Andrey
у всех комп-й либы разные будут
Dmitry Bannikov
SetState не очень удобно юзать
Daniil Kolyasnikov
Про ValueListenable слышал ?
Dmitry Bannikov
Одно дело хотел его взамен консумера поставить но потом передумал
Dmitry Bannikov
Он только в рамках виджета работает
Daniil Kolyasnikov
Расшифруй что ты имеешь ввиду ?
Daniil Kolyasnikov
Поэтому нужно быть гибким и обучаемым
Dmitry Bannikov
Если значения на другой странице то уже сложновато его использовать
Daniil Kolyasnikov
Почему ?
Daniil Kolyasnikov
И зачем ?
Dmitry Bannikov
Знал бы использовал
Dmitry Bannikov
Какую информацию проще найти как лисенером пользоваться
Dmitry Bannikov
Или гайд по провайдеру
Daniil Kolyasnikov
ValueListenable - классический Mvvm
Dmitry Bannikov
Что первое попалось то и освоил
Daniil Kolyasnikov
Освой стандартную библиотеку. Она шире и сложнее провайдера, но это нужнее
Dmitry Bannikov
Ок спасибо за совет
Daniil Kolyasnikov
А по поводу стейт менеджента - лучше не париться. В любом случае ты придёшь в компанию и там придётся подстраиваться под нужный компании пайплайн и подходы к разработке
Daniil Kolyasnikov
4 собеса прошёл. Ни на одном не спросили про блок. На одном спросили про гетх. Брр. Мерзкие чуваки
Dmitry Bannikov
Учусь на готовом коде , к сожалению примеров по ListenBildery не нашел . В доках часто обрывки информации
Yakov K.
С точки зрения галер действительно есть смысл наверно по менеджмерам попрыгать :)
|