Программирование : Dart & Flutter по-русски
Anatoliy Dvoryashin
[
{
"type": "bot_command",
"text": "/stat@combot"
}
]
Combot
Total messages: 269859
Madi
Подскажите как сделать, чтобы при зажатии одной из кнопок значение постепенно увеличивалось либо уменьшалось. Сейчас работает только одноразовое нажатие для изменения значения
Ivan
У гестура есть такие коллбеки, которые помогут тебе понять когда палец лежит на кнопке и когда его убрали, а там под капотом через таймер можешь выполнять инкремент
Yevhen Ivanov
Изучил Provider, Bloc, Shared Preference. Подскажите, какие ещё пакеты нужно освоить, чтобы устроиться на работу?
Comrade77
Вместо Shared Preference сейчас используют Hive
Дмитрий Щербаков
Как там пишут то ща 3-4 лет на котлине свифте и 50 приложений в проде + доступ к исходникам (нет)
Comrade77
[
"А на счет работы читайте тут ",
{
"type": "link",
"text": "https://t.me/dartlang_jobs"
},
""
]
Trump
Скорей бы уже китайцы захватили свою долю на рынке, глядишь одни язык будет под их платформу
Дмитрий Щербаков
По факту - понимание такое стримы, понимание как работают изоляты и все - можно пилить любую хню
Дмитрий Щербаков
Ну в ffi ещё упороться для всяких pos-решений
Урусай
И как я раньше жил без Intrinsic виджетов ??
Боренька
Если вы можете сделать условный прогноз погоды или тудушку то смело начинайте искать работу. На собесе подскажут куда копать, главное самому спросить :)
Илья Максименко
а может кто-то дать примеры хорошего тестирования?
Илья Максименко
меня интересуют кейсы с приватными методами, protected методами
Илья Максименко
смотрел как тестирует феликс, но там нет тех кейсов которые нужны мне
Мария
[
"Привет ???? нам в команду требуется ",
{
"type": "hashtag",
"text": "#разработчик"
},
" \n\nFull-Stack developer\nAppropriate dart/flutter cross-plat apps development experience \nExperienced in Node.js/Mongo development\n\nIoT development (MQTT protocol knowledge) would be a plus\n\nОтвет пиши в личку ",
{
"type": "mention",
"text": "@vlad_vityaz"
},
""
]
Comrade77
[
{
"type": "link",
"text": "https://t.me/dartlang_jobs"
}
]
Kylych
а плагин hive к чему ближе SPrefs или sql ?
Kylych
в чем он хранит данные? там по размеру нет ограничений, в SP вроде есть ограничение на размер файла
Comrade77
[
{
"type": "link",
"text": "https://www.youtube.com/watch?v=R1GSrrItqUs"
}
]
Aleksey
Кстати, этот Hive как то связан с Apache Hive? (может тоже основан на MapReduce и hdfs) ?
Comrade77
Большие файлы нет смысла хранить в Hive, это не хранилище а NoSQL база
Comrade77
Как заверяют разработчики самая быстрая на данный момент
ilx13
Добрый вечер ребята. Как генерировать и сохранить пдф локально? я пробовал несколько плагинов с примерами чето не сработал. кто нибудь делал такое?
Stanislav Eremenko
Шо такое ffi?
Chingiz Mamiyev
Foreign function interface
Stanislav Eremenko
Посмотрю, спасибо
Roman Lezhnin
Кто-нибудь разрабатывает в Android Studio на Mac с 8гб ram? Полёт нормальный или 16гб необходимый минимум?
Anton Zheltov
с эмулятором будет мало, без нормально
Anton Zheltov
16 конечно лучше
Sergey Lobanov
Кто-нибудь покупал бушный МакБук? Собираюсь купить, но страшно, что попадётся с "сюрпризом"
Урусай
Всем привет в этом чати. Накинул на текстинпут LengthLimitingTextInputFormatter 6 символов, после достижения 6 символов жму кнопки дальше, они конечно не появляются, но когда начинаешь стирать то символы не стираются, ибо то что я вбивал выше 6 символов записывается в какой-то буфер, который стирается при стирании. Как быть?
Dart Flutter
от правляю данные на сервер используя bloc подскажите как повесить на вьюху индекатор который бы крутился пока не закончилась отправка данных на сервер?
Roman Vasiliev
По стейту смотришь и отображаешь индикатор
Dart Flutter
я же отправялю данные а не принимаю
Урусай
При отправке меняй стейт
Andrew Shalaev
Нормальный
frikadelka
Имхо проще взять новый хакинтош совместимый, если на макбук денег не хватает
Dart Flutter
тоесть в блоке процедура примерно следующая. делаю стейт (какой нить) -> отправляю данные -> делаю новый стейт
Урусай
Аха, и в этом стейте записывай что ты ждёшь, либо пиши инфу о том что ты ждёшь в переменную в stateful виджете, а по завершению процесса кидай из блока ивент отдельный, который ты должен заранее начать ждать в bloclistener
Урусай
фелингер такую уебанскую реализацию блока сделал
Dart Flutter
и причём это лисинером всё ловить? сука а он пример нигде не выложил такой хери?
Урусай
По его затее что бы принимать данные из блока тебе нужен BlocListener
Dart Flutter
ну там есть и билдер и консьюмер по его затеям)))))))
Урусай
Ну консьюмер это тоже самое вроде
Dart Flutter
консьюмер в нём мона использовать и блок лисинер и блок билдер
Dart Flutter
а этот пример ты где видел?
A Kuper
Роман ястреб, на Ютубе глянь , подробный гайд по покупке бу мака
Dart Flutter
ага. Спасибо! запилил только что так же
Dart Flutter
спасибо! помог!
Dart Flutter
хахахах не хотел но помог)) чё такое тоже бывает
Урусай
Сейчас бы помогать пользоваться этим убожеством
tdesc
в блоке в виде библиотеки
Урусай
У том что реализация от фелингера кусок говна
tdesc
в том что он не нужен
tdesc
реализация блока на стриме делается за 0 усилий
tdesc
это что сразу +146 к карме?
Урусай
Пишешь тонны бойлерплейта, а взамен получаешь неудавшуюся (её и не удаться реализовать на дарте по нормальному) стейтмашину и неполноценные стримы (блок подразумевает плотную работу со стримами, но реализация фелангера убивает всё на корню)
tdesc
что и что? если используются «библиотека» абсолютно бессмысленно
Урусай
Соедини мне два блока(стримы) в один стрим
Muso Verda
подскажите - что такое подкласс?
tdesc
будешь мерж мерж мерж делать?
tdesc
логика отсутствует)
Muso Verda
[
"нашел - ",
{
"type": "link",
"text": "https://metanit.com/dart/tutorial/4.3.php"
},
""
]
tdesc
не хочу иметь помоешный поток из 5 блоков
tdesc
если данные разных типов
tdesc
ну короче такое себе
tdesc
на каждый раздел приложения
tdesc
вы кажется немножко быдлите с матом, тут в чате почти 5к человек
tdesc
легко и непринужденно селекторами
tdesc
идите просто лесом )
tdesc
что там за стримы в редаксе просвети?
Урусай
Что-то у меня не работает
tdesc
глупость вас красит мне кажется
tdesc
стрим в редаксе используется для доставки actions до редюсеров
tdesc
и никак не наоборот
tdesc
библиотека не той системы )
Roman Vasiliev
В последней версии стримить блоки запрещено
Урусай
По моему и раньше было запрещено, на гитхабе есть ищью, где фелингер говорит используйте вложенные блокбилдеры ))))
Урусай
Обычные пустые блоки
Урусай
Не проходят тайпчек, а результат Merge - null, хотя начальные стейты очевидно есть
Урусай
А что, все стейты нужно от одного наследовать что бы тайпчек нормальный получить?
Урусай
А впрочем, какая разница, даже если от одного наследовать то всё равно кастить придётся
tdesc
изменений прев/некст
tdesc
прилетел экшн, применили его в редюсере и отдали в стрим новый стейт
Урусай
Причём тут ООП? Мне не нужен общий родитель для всех стейтов в приложении
tdesc
стор ничего не мержит
tdesc
он хранит состояние
Урусай
Я хочу получить два стейта отдельно, очевидно же
tdesc
у вас возраст старше 16?
tdesc
с детишками не хочется ругаться )
Урусай
Тоже самое получится
Илья Максименко
а можно именно пример в коде как это делается?
Урусай
Массив из нетипизированных стейтов, да ещё и без текущих значений, а обновлённых только после пуша в стрим
Урусай
Я тебе говорю что два блока скормленных в combileLatest2 дают nullы
Урусай
Ну так сделай мне по красоте, я посмотрю и обрадуюсь
Урусай
Но нет, скорленные combineLatest2 два блока дают нуллы
Урусай
И ничего в этим не поделаешь
Урусай
Если бы ты поглядел под капот блока от фелингера ты бы это не отрицал
Roman Vasiliev
Ого, стрим не хранит последнее значение
Roman Vasiliev
Какая досада
Урусай
Да вроде бы хранят
Урусай
Покрайней мере если скормить rxу обычные дартовские стримы то всё будет тип топ
Урусай
Для этого combineLatest вроде бы и нужен - что бы получить *последние* значения
Muso Verda
подскажите - а как это правильно понять - что dart - не различает?
Урусай
Ну ты можешь унаследоваться от интерфейса, или заимплементить класс
Roman Vasiliev
В dart нет слова interface
Roman Vasiliev
Для этого используется abstract class, который implements в объявлении наследника
Muso Verda
да??!! фигасе - я привык, что в ts - есть ((
Урусай
В ts он есть только в компайл тайме, а рантайме интерфейсов тоже нету
Muso Verda
ну это да, верно
Andreu
Так в рантайме их почти нигде нету
Урусай
У дартовских стримов тоже нет, но комбайнлатест работает
Andreu
Я не готов сейчас говорить за какие-то конкретные языки, но ведь большинство языков переводит интерфейс в абстрактный класс без реализации
Урусай
И что с того? Если абстрактный класс без реализации, это значит рантайм типа нету что ли?
Урусай
Почти все языки знают об интерфейсах в рантайме
Урусай
Если я хочу слушать блок, зачем мне добавлять в блок данные?
Урусай
Перенеси add перед слушанием - и будут nullы
Урусай
А всё почему? Потому что у фенлингера кривые стримы
Урусай
Какой ещё бродкаст. Посмотри под капот. Фелингер решил совместить входящие и исходящие стримы в одном блоке(который стрим), в этом и причина
tdesc
фелангельский блок на фелангельских стримах это верх совершенства. больше не надо ничего
Урусай
Сам блок не стрим, он лишь пушит в исходящие стримы входящие данные
Урусай
Поэтому при попытке чтения текущего значения ничего нету
Урусай
Ага, а ещё я слышал что такое стрим, и что если в стрим были запушены данные то они должны быть в нём, но их нет
Урусай
В том то и дело, что трансформятся они тупо
Урусай
Это не отменяет того факта что твои предыдущие варианты в виде mergestreams и combinelatest провалились, а так же то, что тому кто слушает стрим не важно когда были или будут запушены данные, ему нужны последние
Урусай
Мне стрим со стейтами нужен, а не сам стейт. Ты вообще читал определение блока?
Roman Vasiliev
Stream.value(bloc.state) Держи брат
Урусай
Мне не костыли нужны, а стримы
Урусай
О, костыли станоятся толще
Muso Verda
чета как-то запутано получается - по крайней мере - синтаксис:
Урусай
Кстати, как мне получить следующие стейты когда блок обновится?
Урусай
Ещё утолщить костыль?
Roman Vasiliev
Что-то мне подсказывает, что при использовании имени предка в названии класса, ты хотел от него extended написать
Урусай
По твоему тостаточно толстый костыль? Сможешь ещё толще сделать?
Урусай
Да я вроде и не начинал
Урусай
В блоке нет проблемы
Урусай
Есть проблема в реализации блока фелингером
Урусай
Я против блока ничего не имею
Урусай
Я обычный блок использую, не от фелингеров
Урусай
Мне лишний бойлерплейт не нужен
Урусай
Ну в обычном блоке мне не нужно писать бойлерплейт
tdesc
блок в 1 стрим пишется
tdesc
минут за 1 например
tdesc
и инхеритед виджет для проброски по контексту
tdesc
ну как бы трансформ и на 1 стриме работает
tdesc
[
"Stream > get _sportStream => _liveTopicSubjects.transform(\n StreamTransformer.fromHandlers(handleData: (BuiltSet data, EventSink> sink) {\n final sinkSet = ",
{
"type": "link",
"text": "data.map"
},
"((LiveBlock block) {\n return block.gameId;\n }).toSet();\n\n sink.add(sinkSet);\n }),\n );"
]
tdesc
трансформируется в другой
Muso Verda
о! только сейчас узнал о такой возможности! вообще темная тема какая-то - странно и непонятно, зачем оно такое нужно )) хотя - нужно наверное, раз сделали-включили в язык )
tdesc
а еще ниже там вообще байтики выделяет вм
tdesc
так что это запрещено?
tdesc
если мне не надо трансформить )
tdesc
то и хватит sink.add
tdesc
отлично можно все сделать
tdesc
еще раз, для блока достаточно одного стрима
tdesc
куда можно сливать готовые модельки
tdesc
стрим в классе который называется MyBloc
Roman Vasiliev
А что у тебя вызывает эмит данных?
Roman Vasiliev
Просто интересно
|