Программирование : Dart & Flutter по-русски
Andrew Ka
Я проверил, на девайте такой же эффект. Эмулятор не виноват :)
Юджин Баладжахе
[
"Пишут что можно, но нужно использовать SelectableText, копируется ли он в буфер (была проблема) - нужно проверять. ",
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/5422"
},
""
]
Stanislav Ilin
Ребят, всем привет! Подскажите, пожалуйста, на чем оплату в приложение вкручиваете , кто вкручивает ?
Roman Diachenko
Нужно в AppDelegate внести настройки
Александр
Ну я внёс какие то, но почему-то на ios приходит через раз, я так понимаю это связано с тем, что я перелогиниваю юзеров и пущи не приходят, а потом сами начинают приходить. Не знакома ситуация ?
Stanislav Ilin
О, спасибо ! А там какие средства оплаты интегрированы ?
Stanislav Ilin
Ребят, а ещё такой вопрос. Кто-то под ipad билды делал ?
Stanislav Ilin
Есть отличия с айфонами ?
Денис
Блин как я пропустил мимо ушей non-nullable experiment?) так сразу удобно стало, как в свифте) точно уверен что нулл не выскочит нигде)
Денис
[
"только возник вопрос как из List после удаления null сделать List. я сделал \n",
{
"type": "pre",
"text": "list.removeWhere((e)=>e==null);\nfinal newList = list as List;",
"language": ""
},
""
]
Денис
но что-то не радует меня такое решение
Vyacheslav
а где посмотреть?
Денис
посмотреть как включить или просто как работает?)
Денис
[
{
"type": "link",
"text": "https://dart.dev/null-safety"
}
]
Денис
[
"включить в pubspec.yaml \n",
{
"type": "pre",
"text": "environment:\n sdk: \">=2.9.0-8.0 <3.0.0\"",
"language": ""
},
"\nи в analysis_options.yaml\n",
{
"type": "pre",
"text": "analyzer:\n enable-experiment:\n - non-nullable",
"language": ""
},
""
]
neikist
Ну думаю в стандартную библиотеку добавят что то вроде removeNulls.
Денис
правда в готовом проекте сразу 1000+ варнингов) но это решаемо
neikist
filterNotNull могу представить, но если именно удалять из существующего списка то только кастить.
Денис
надо потестить нужно ли удалять null или просто можно закастить)
Денис
хмм он вообще не кастится
Dmitriy Orteney
[
"можно не удалять а просто отфильтровать например)\n",
{
"type": "code",
"text": "final newList = list.whereType ().toList();"
},
""
]
admin
Hi, When we use Bloc pattern, Don't need to use FutureBuilder or Stream builder. Yes?
Roman Vasiliev
You can still use whatever you want
Денис
[
"кстати не хватает фишки из свифта \n",
{
"type": "pre",
"text": "if(x !=null){\n//x внутри ифа non-nullable\n}",
"language": ""
},
""
]
Денис
приходится ! знаки расставлять)
Sofya Noskova
Всем хорошего дня. Изучаю graphql_flutter, не получается сделать subscription из-за того, что SocketClientConfig не воспринимает initPayload. Может быть, кто-то подскажет, что неверно в данном коде?
Dmitriy Orteney
хз вроде работает. твой x мутабельный поди?
Dmitriy Orteney
ну сделай final :D
Sergey Hottabych
В Дарте эта фишка есть
Урусай
А при наведении на подчёркнутое красным слово, ide не говорит в чём проблема?)
Денис
блин это не решение он же не просто так мутабельный)
Денис
с мутабельными не работает
Dmitriy Orteney
ну в котлине тоже не работает с мутабельными. делаешь функцию в которую передаешь параметр или перекладываешь в иммутабельную переменную перед своей логикой
Урусай
pattern matching бы лучше завезли, много бы проблем перекрылось, да и больше подходит к декларативности
Sergey Hottabych
Ну делай проверки
Sergey Hottabych
А почему знаки ! расставляешь? Это бэд стайл Надо через ?.
Sofya Noskova
The argument type 'Map >' can't be assigned to the parameter type 'FutureOr Function()'. Добавляю (), чтобы это была функция, но возникает другая ошибка.
Денис
если я только что проверил что он не null зачем мне ?.
Урусай
1) Ты из функции ничего не возвращаешь. У тебя сейчас syntax error
Ihor Levchenko
мне интересно кто именно свитчается на флаттер ) если есть советы какие еще пункты добавить в опрос - я бы пересоздал опрос чтобы охватить максимальную аудиторию))
Урусай
2) Сделай функцию async
Sofya Noskova
Уже пробовала... )
Урусай
А теперь ошибку синтаксиса поправь. return { 'headers': {'Authorization': token}};
Урусай
Ждём недостаток разрабов бека в ближайшее время?)
Денис
там в конце х лишний)
Урусай
И что это значит? Неочевидно вообще
Денис
то есть никогда не null
Oleg Pchelkin
В котлине кстати работает с переменными, если это локальная переменная внутри функции.
Урусай
nullable by default - пережиток прошлого
Dmitriy Orteney
ты ж понимаешь что конструкция if let x = x, создает ненулабл переменную в скоупе?) что тебе мешает так же сделать в дарте)
Sofya Noskova
Спасибо, поняла!
neikist
В котлине понятно, многопоточность + конкурентность. В дарте в принципе могли бы и для мутабельных наверно сделать, по крайней мере если нет async вызовов внутри (что конечно не всегда можно проверить, но в простых случаях можно).
neikist
Угу, собственно по причине что я описал. Проводится какой то анализ что она не шарится с другими потоками.
Sergey Hottabych
Я с Unity пришёл. Но я тут вроде один такой)
northelks
а чем юнити не нравится?)
Ihor Levchenko
я удивлен что много бекендщиков
Ihor Levchenko
я думаю в основном мобайлеры переходят
Michael Bazilique
[
{
"type": "pre",
"text": " if (vm.isSynchronized != null) {\n if (!vm.isSynchronized) {} \n}\n\n",
"language": ""
},
"можно использовать ли какой-то shorthand что-бы не колхозить вот такой иф на Null?"
]
Sergey Hottabych
Платные ассеты и баги, которые не фиксятся годами
neikist
vm.isSynchronized == false же
Michael Bazilique
[
{
"type": "mention",
"text": "@neikist"
},
" у меня бывают неизбежные кейсы когда этот флаг приходит нуллем. Если так будет - крашит. По-этоу я проверяю не пришел ли нуллем"
]
neikist
Пока выборка недостаточно репрезентативна.
Maxim Gora
а если нулл - значит фолс?
Michael Bazilique
нет, нуль значит нуль в моем случае
neikist
Не будет крашить если будешь писать не !var.something а var.something == false
neikist
Потому что null не равен false
Michael Bazilique
ты прав. Спасибо ??
Michael Bazilique
[
{
"type": "mention",
"text": "@neikist"
}
]
Sergey Koshelnyk
Как сделать чтобы элемент выбора даты выглядел нативно на иос и нативно на андроид? то есть привычно для пользователей платформ
Sergey Koshelnyk
куда копать?
Денис
Вызывай разные datePicker
Денис
по флагу Platform.isAndroid
Sergey Hottabych
Ошибка? Имел в виду if (vm != null) ? Тогда if (vm != null && !vm.isSynchronized)
Sergey Hottabych
Дарт умный, если первое условие не выполнится, он дальше не пойдёт
Michael Bazilique
нет, у меня именно isSynchronized иногда приходит нулем (мапируя раньше)
Sergey Koshelnyk
спасибо. я вот только начинаю пробовать флаттер. дизайнер задал вопрос о возможности так сделать. есть какая-то дока чтобы разобраться в этом вопросе? а то я не нагуглил ничего толкового
Денис
ну ты будешь вызывать диалог по нажатию кнопки
Sergey Hottabych
Тогда ты крайне криво именуешь переменные. isSomething должно возвращать true/false
Денис
просто проверь какая платформа и вызывай тот который тебе нужен
Sergey Hottabych
Он может быть либо синхронизирован, либо нет, какой нафиг нулл?
Michael Bazilique
из-за того что я не нарушая DRY юзаю этот виджет в другой фиче, где isSynchronized не приходит, по-тому что там нету этой логики
Michael Bazilique
то есть я хочу обслужить этот единственный кейс проверкой. Соглашусь, это колхоз
???? ???????
У меня тут такой странный вопрос. Возможно тут его уже спрашивали
???? ???????
Какой самый оптимальный вариант тестинга аппки для iOS, если у меня линуха
???? ???????
У меня есть айфон. Вот только usb debugging не хочет работать :/
Юджин Баладжахе
Неофиты хотят серебряную пулю. Опытные понимают что ее нет )
Roman Vasiliev
vm?.isSynchronized == false
Michael Bazilique
[
{
"type": "mention",
"text": "@Aqluse"
},
" то есть сначалa проверяю на ноль vm?"
]
toTheMoon??
делаю курс от максимилиана столкнулся с ошибкой код всегда прерывается на throw error и не доходит до момента on HttpException catch(error) я уже все повторил по новой потом просто пробовал копипастить всегда тоже самое
toTheMoon??
в душе не представляю где налажал
Roman Vasiliev
Скорее возвращаешь его, без вызова проперти (если null)
Roman Vasiliev
null != false
Michael Bazilique
класс. Спасибо
Dmitriy Orteney
наверное во вкладке Run стоит галочка
Pavel @iosdeveloper
ребят подскажите какая комбинация клавиш для android studio покажет мне параметры виджета на mac устройстве? я знаю что на windows contr+q
Dmitriy Orteney
settings -> keymap -> Quick Documentation
Pavel @iosdeveloper
ну там куча всего
Pavel @iosdeveloper
всех сочетаний
Pavel @iosdeveloper
если у windows contr+q то на mac что никто не знает?
Yaroslav
Зажимаешь cmd и наводишь на класс
Pavel @iosdeveloper
превосходно
Pavel @iosdeveloper
то что нужно
Pavel @iosdeveloper
спасибо
Pavel @iosdeveloper
только как теперь скролить
Pavel @iosdeveloper
если параметры не помещаються в эран
Pavel @iosdeveloper
простое нажатие на скролл двумя пальцами закрывает окно
Pavel @iosdeveloper
и стрелка вниз тоже
Sergey Salnikov
catch без on ловит всё - вывод у тебя бросается не HttpException, а что-то ещё - смотри что у тебя в error для инфы – в дарте можно бросать любой объект, например throw 42
DVS (Read The F.ng Manual) Studio (NoHello)
[
{
"type": "italic",
"text": "ставь лайк если тоже при непонятной ошибке кидаешь throw 42;"
},
" )))"
]
Чел...
Ребят, у кого-то встреяалась ошибка с firebase плагинами при билде? Не сразу, а иногда после 3-4 билда
Roman Vasiliev
Можно кинуть функцию, которая кидает ошибку, словить функцию и вызвать ее)
Sergey Hottabych
throw 666 — fatal error;
Sergey Hottabych
А есть еще http респонс "Я чайничек"
DVS (Read The F.ng Manual) Studio (NoHello)
ммм 418
Чел...
Первых пару раз билдит, но потом после 3-4 раза - ошибка из за плагинов firestore. Приходится новый проэкт создавать и всё работает, снова 3-4 билда
Чел...
иногда после перезагрузки проходит
Alexey
flutter clean? в студии если file - invalidate cache&restart?
Alexey
какую ошибку при билде дает, гуглил?
Чел...
конечно. Щас скину
Eugene Kostyuk
Привет! Кто-то сталкивался с поведением когда приложение крашит с сообщение Lost connection with device и происходит это при попытке получить фокус на text field? Сам Text filed примитивный в пару проперти, краш просиходит именно при клике на филд
Денис
Кто слышал что нибудь насчет non-nullable? когда beta?
Денис
не все либы хотят переходить на non nullable
Timur Karimov
может быть из-за того что textfield внутри stateless виджета
Vyacheslav
Если кому-то интересно, проблему пока решил только через flutter build apk --no-shrink То есть при минификации кода R8 что-то лишнее вырезает ?? Пробовал настроить ProGuard, но сдался. Разница в размере 2 мб
Eugene Kostyuk
Ну я его описал внутри _LoginFormState, так что не думаю
Eugene Kostyuk
А я не совсем в теме, как это влияет? Для общего развития)
Timur Karimov
не знаю, я просто видел в доке что textfield нельзя пихать в stateless виджеты
Eugene Kostyuk
Прикольно, интересно потом разобраться
Vyacheslav
Запусти билд с опцией --stacktrace и посмотри что пишет
Чел...
flutter run --release --stacktrace <- верно?
A Kuper
[
"ребят, ",
{
"type": "link",
"text": "pub.dev"
},
" лежит?"
]
Чел...
нет, всё хорошо работает
Vyacheslav
Не запускал не знаю) но тебе пишет подсказку, как посмотреть
Eugene Kostyuk
Если интересно, нашел вот такую тему, помогло To fix it we need to change attribute "autocorrect" of TextField, TextFormField to "false". Хз почему, но теперь не крашит)
Timur Karimov
интересно, спасибо
Roman Vasiliev
[
"Попробуй такие добавить\n\n",
{
"type": "pre",
"text": "-keep class io.flutter.app.** { *; }\n-keep class io.flutter.plugin.** { *; }\n-keep class io.flutter.util.** { *; }\n-keep class io.flutter.view.** { *; }\n-keep class io.flutter.** { *; }\n-keep class io.flutter.plugins.** { *; }",
"language": ""
},
""
]
Vyacheslav
Добавлял, не помогает
Vyacheslav
Я потом ещё из регистранта смотрел названия плагинов, по очереди их добавлял/убирал
Vyacheslav
[
"вот мой ",
{
"type": "link",
"text": "proguard-rules.pro"
},
"\n",
{
"type": "pre",
"text": "#Flutter Wrapper\n-keep class io.flutter.app.** { *; }\n-keep class io.flutter.plugin.** { *; }\n-keep class io.flutter.util.** { *; }\n-keep class io.flutter.view.** { *; }\n-keep class io.flutter.** { *; }\n-keep class io.flutter.plugins.** { *; }\n-keep class com.google.firebase.** { *; }\n-keep class com.mr.flutter.plugin.** { *; }\n-keep class com.lazyarts.vikram.cached_video_player.** { *; }",
"language": ""
},
""
]
Andrew Ka
[
"Посмотрите, у вас дергаются строчки текста при масштабировании? Я угорел уже на анимации ??\n\n",
{
"type": "link",
"text": "https://gist.github.com/comerc/1ba71b7ce7aa60116b635830143fa83f"
},
""
]
Andrew Ka
Так это ацтой! Я не могу поверить своему счастью. День убил на поиски решения ??
Шахзод Джураев
бывало ли у кого нибудь с пакетом flutter_downloader на IOS зависает на сплеш скрине без каких либо ошибок ? на андроид все гуд.
Шахзод Джураев
без какого либо кода, просто установил пакет и все. на андроид пример с гита работает
L
У меня одного адово тормозит vscode при включенном симуляторе? Иногда копирование срабатывает с задержкой в несколько секунд. Как это фиксить? Макбук 2015, i7 2.3, 16 gb
Andrew Ka
[
{
"type": "link",
"text": "https://youtu.be/6QQdaDGMV5Q"
}
]
Sergey Salnikov
ты это серьёзно? upd чёт я молчал молчал, и не вытерпел FutureBuilder в stless нельзя, теперь TextField нельзя, что ещё нельзя? =))) Center? Text? Padding?
les forest
а кто запрещает в стейтлес поместить хоть стримбилдер
Sergey Salnikov
неделю назад было обсуждение )
Sergey Salnikov
а кто запрещает спросить надо у тех кто в доке это видел
Урусай
Есть кстати библиотека getx, включающая в себя state-management. Ну так вот её концепция основана на stateless-widgets-only
Sergey Salnikov
без Tickerа ты анимации не сделаешь, всё равно придётся stful юзать с тикер провайдером
L
а я без тикера делаю, есть же AnimatedOpacity всякие
L
[
{
"type": "link",
"text": "https://pub.dev/packages/simple_animations"
}
]
Урусай
В документации к getx написано что это исключающие случаи, когда нужен stful )
DVS (Read The F.ng Manual) Studio (NoHello)
shouldRepaint => oldPainter.x != x
Sergey Salnikov
ну тут и в документацию getx ходить не надо, я просто уточнил
DVS (Read The F.ng Manual) Studio (NoHello)
ясно-понятно.. кодеротбога не читает комменты и в лс не ходит ))
Sergey Salnikov
ключевое слово simple
Sergey Salnikov
не утруждай себя
DVS (Read The F.ng Manual) Studio (NoHello)
да я уже смирился.. иду дальше проект свой делать
Sergey Salnikov
я не понял
Dmytrij Okladnoj
[
"Всем привет!!!\n\nПарни, а кто знает есть ли альтернатива гугл таблицам (",
{
"type": "bold",
"text": "spreadsheets"
},
") в плане упрощенной БД для считывания/записи данных...\n\nНе хочу использовать всякие Firebase SQLite и т.д. чтобы мог любой обыватель без знаний программирования модифицировать таблицы с данными... \n\nГугл таблицы для этого подходят, но лишь для чтения, а если организовать программную запись из приложения, то нужно специальные скрипты добавлять в таблицу... а это увы слишком сложно будет для людей со знаниями ",
{
"type": "bold",
"text": "microsoft excel"
},
""
]
Андрей Козак
у тебя какая задача?
les forest
вот кстати хороший вопрос
Dmytrij Okladnoj
работать с не структурированным простым списком слов, который можно будет обновить не только зайдя в таблицу, но и с телефона
Андрей Козак
тебе обязательно гугл таблицы использовать?
Timur Karimov
пардон, оказывается text editing controller нельзя, а text field можно в stateless хранить
Андрей Козак
так то это кошмар, там хоть и есть скриптовые аналоги js, но как ты данные будешь с екселя вгружать в приложение, не совсем понятно
Dmytrij Okladnoj
нет. любую таблицу до которой можно добраться с помощью АПИ
Ivan Dembicki
С удовольствием посмотрел бы что-нибудь на тему создания своего кодогенератора. Есть у вас такое?
Sergey Salnikov
виджеты сами по себе это всего лишь конфигурация дерева элементов сам элемент уже хранит ссылку на виджет и на рендер обжект и во врмея ребилда проверяет такой же виджет ему подсунули или другой
Dmytrij Okladnoj
для записи тоже
Timur Karimov
там текст очищатся будет при ребилде в text field тогда
Андрей Козак
ну ты можешь взять Postgesql или любую другую базу, накидать схему данных, написать Crud сервис (его можно даже сгенерить)
Андрей Козак
ну и дергать crud с мобилки и с вебфронта, и отрисовывать таблицу
Maxim Gora
ну не в билде же их создавать
Sergey Salnikov
нет =) сам TextField statefull и если ты не дашь ему контроллер он сам создаст
Timur Karimov
я не знаю, у меня была проблема такая, я ее решил просто поменяв stateless на stateful
Maxim Gora
Ну это если у тебя родительский виджет ребилдится, тогда да
Sergey Salnikov
предположу что ты создавал контроллер в stless - тогда да будет каджый ребилд новый
Timur Karimov
да, там поле просто было и присвоение сразу)
Dmytrij Okladnoj
там после публикации таблицы получается очень удобный джейсон!) Но он увы только для чтения(((
Андрей Козак
ну вообще хз, если умеешь в бекенде - пиши лучше сам
Андрей Козак
crud сервис на многих языках в две строчки пишется
|