Программирование : Dart & Flutter по-русски
Dart & Flutter по-русски
Программирование : Dart & Flutter по-русски
pa5ca1
можно ли как-то непосредственно поменять просто слово
Roman Vasiliev
children это массив, думай в эту сторону. upd: ну или flex, да
l
Flex и непосредственно передать нужную ось, по которой элементы раскладывать
pa5ca1
блин, спасибо!! Flex как-то проскочил
Angry TaigaFox
Все виджеты ограниченны размером друг друга, не так ли? Тем более я бы не стал писать об Layout Builder, если не использовал его в случаях когда надо узнать размер родителя. Ну и вытаскивать размер родителя через ключ такое себе решение, по этому я отписался человеку о том, зачем он вообще нужен в стандартном случае.
S
[
"как в кнопку ",
{
"type": "link",
"text": "icon.menu"
},
" - поставить Drawer menu&"
]
Angry TaigaFox
Имеете ввиду поменять иконку по нажатию на Drawer?
Angry TaigaFox
Если да, то через состояние
Nikita Domnitskii
дефолтный аппбар открываете и смотрите
Angry TaigaFox
Хотя можно анимированные иконки использовать ещё
Angry TaigaFox
Посмотрите про AnimatedIcon
Sergey Salnikov
[
"ещё раз \n LayoutBulder даёт тебе узнать constraints, но никак размер родительского виджета\nпрям рекомендую ознакомиться ",
{
"type": "link",
"text": "https://flutter.dev/docs/development/ui/layout/constraints"
},
"\n\nключ в первую очередь для идентификации элемента в дереве и только во вторую - для стейтфул можно получить доступ к стейту"
]
Evgenii Elchev
есть там один виджет который позволяет получить размер, все никак его опробовать руки не дойдут)
S
в другом файле внутри scaffold поставил Drawer - и менюшка заработал)
Sergey Salnikov
подкинь инфы =)
Evgenii Elchev
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/widgets/CustomMultiChildLayout-class.html"
}
]
Evgenii Elchev
на самом деле он даже не один
Evgenii Elchev
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/widgets/CustomSingleChildLayout-class.html"
}
]
Sergey Salnikov
супер! да он позволяет родителя размер выяснить
Evgenii Elchev
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/rendering/CustomPainter-class.html"
}
]
Evgenii Elchev
в общем, вот три виджета, которые я точно знаю, позволяют оперировать конкретным размером
Evgenii Elchev
[
"и тут про него уже много раз упоминали, но все кто упоминал его не юзали) я читал доку, смотрел пример, и в целом это не шибко сложная штука, но я тоже каждый раз выбирал какой то другой путь решения) хотя знаю минимум один кусок в своем коде, который надо бы переписать на ",
{
"type": "bold",
"text": "CustomMultiChildLayout"
},
" )"
]
Nikita Domnitskii
Я пробовал, но потом подумал и переписал без него
Evgenii Elchev
аха) почему?)
Nikita Domnitskii
Без него проще выходило
Nikita Domnitskii
У него вообще весьма специфичные юзкейсы, как по мне
Nikita Domnitskii
в 90% случаев вполне без него можно обойтись
Evgenii Elchev
[
"тут еще вопрос на сколько там верстка универсальная выходит) у меня есть виджет который норм работает с теми данными что есть, но если данные изменятся надо будет переписывать, сделал бы на ",
{
"type": "bold",
"text": "CustomMultiChildLayout"
},
", оно бы не зависело от данных"
]
Evgenii Elchev
ну да, тут я не спорю
Evgenii Elchev
у верстки на флексах есть один чертов недостаток, он не позволяет в одном месте операться на размер какого либо виджета в другом месте
Evgenii Elchev
а такое бывает необходимо
Daniil Kolyasnikov
Можно пример ?
Andrew Ka
[
{
"type": "link",
"text": "https://youtu.be/9r5iE2KVUDo"
}
]
Dmitry Bubnenkov
Есть ли в Дарт инструмент\способ который показывает все типы исключений которые может кидать Либа?
Павел Середа
думаю что это излишне, должен быть инструмент для отлова произвольных исключений и документация к либам которая должна будет всё объяснить
Dmitry Bubnenkov
[
"Когда ",
{
"type": "code",
"text": "on"
},
" полезнее ",
{
"type": "code",
"text": "catch"
},
"?"
]
Nikita Domnitskii
когда хочешь разные исключения обрабатывать по разному
Dmitry Bubnenkov
типа когда содержимое объекта исключения нужно как-то напечатать\обработать а не просто знать что упало?
Nikita Domnitskii
он не исключает кэтч
Nikita Domnitskii
[
{
"type": "pre",
"text": "// обрабатываем DivisionByZeroException\non DivisionByZeroException {}\n// обрабатываем SomeOtherException биндя инстанс исключения к е\non SomeOtherException catch(e) { print(e.message); }\n// обрабатываем всё остальное\ncatch(e) {}",
"language": ""
},
""
]
Aleksandr
Всем привет. MacBookAir 13.3" Ноутбук Apple MacBook Air (MQD32RU/A) серебристый [1440x900, TN+film, Intel Core i5, 2 х 1.8 ГГц, RAM 8 ГБ, SSD 128 ГБ, Intel HD 6000 , Wi-Fi, BT, macOS для тестов и сборок подойдет?
Oleg
для тестов и сборок по идее пойдет
Aleksandr
"по идее" что значит))
Oleg
ну свою функцию выполнит, просто долго))
Арчи
Привет. Создаю диалоговое окно, указываю внешние оступы нулевые, а они устанавливаются только для вертикали, а по горизонтали не работает. Подскажите что делать, кто сталкивался с подобным.
Aleksandr
главное что бы выполнил)) на время пофиг (пока)
Roman Vasiliev
собирать будет весьма долго
Roman Vasiliev
два ядра это никуда
Aleksandr
весьма - 10минут тяжелый проект? 3 минуты counter?
Roman Vasiliev
У меня прошлый ноут был i7 U-серии на два ядра, не сказать, что даже без учета задач программирования я был им доволен
Sergey Salnikov
[
"кстати будет сказать кидать можно не только наследников Exception или Error\n\n",
{
"type": "pre",
"text": " try {\n throw 42;\n } catch(anyObject) {\n print(anyObject.runtimeType); // int\n }",
"language": ""
},
""
]
Sergey Salnikov
я попался где-то на этом - так и узнал =)
Evgenii Elchev
еще одна вещь которой мне не хватает в дарте, это явное обявление функций которые могут выбрасывать исключение, а какие нет. Сидишь ты такой пишешь код, он падает в рантайме потому что что то выбросило исключение и ты такой, да чьерт побери
Евгений
чего не хватает, говорите? ??
Evgenii Elchev
да врогде везде так раньше и было
Evgenii Elchev
я хз как вы на нем вообще пишете, на этом js)
Евгений
у него есть свои прелести
Кирилл Матросов
Пара ударов головой об клавиатуру и в продакшн)
Evgenii Elchev
не, я тогда когда то писал, ну как писал, почти все время я читал доку и смотрел исходники, что бы понять, что мне там вообще возрвщется)
Evgenii Elchev
и что надо туда передать)
Евгений
только через осмысленные переменные и комментарии ??
Evgenii Elchev
ну да, ровно одна, максимально быстро баги в прод поставлять)
Evgenii Elchev
тс не пробовал, ниче сказать не могу)
Евгений
как будто в других языках баги в прод в меньшем количестве лезут, бгг
Evgenii Elchev
ну серьезно, там ниче за тебя не проверяется, хот jopa напиши оно скомпилруется)
Евгений
ну так не пиши ??
Евгений
это бессмысленный спор, никто никогда этого не считал
Evgenii Elchev
ну я со swift зпбыл вообще что такое ошибки языковых конструкций
Evgenii Elchev
ошибки логики конечно никуда не делись
Евгений
в js ошибки языковых конструкций только у новичков лезут
Evgenii Elchev
но вот ошибок потому что там внезапно нул, не тот тип, исключение или еще какая шляпа которую забыли проверить такого нет вообще
Evgenii Elchev
потому что язык тебе физически не дает их допускать
Evgenii Elchev
при всем желании херни не напишешь)
Евгений
острые ощущения нужны
Evgenii Elchev
ну конечно)
Nikita Domnitskii
хорошая система типов решает 90% проблем при написании кода
Nikita Domnitskii
остальные помогает разрулить компилятор
Nikita Domnitskii
ошибки логики в расчет не берем
Евгений
я пишу без ts, с типами вот вообще проблем не возникает, как ни странно
Nikita Domnitskii
потому что от них ничего не спасёт
Evgenii Elchev
тесты помогают немного)
Nikita Domnitskii
тс это не хорошая система типов если что)
Evgenii Elchev
тут просто у всех разный опыт
Evgenii Elchev
и разные задачи
Евгений
на js серьезную бизнес-логику писать только даун будет
Кирилл Матросов
а мне не хватает аналога VarArgs/arguments
Evgenii Elchev
но опять же, одно из главных "за" слабой типизации, что так быстрее, но я могу на swift тоже очень быстро говнокодить, и все равно оно будет стабильнее чем со слабой типизацией)
Evgenii Elchev
это что такое, окуда?
Кирилл Матросов
доступ к аргументам функции как к списку
Nikita Domnitskii
ну про скалу кстати говорят что ощущается как динамический язык
Евгений
зато на swift ты под веб ничего не накодишь)
Евгений
js универсален - это его огромный плюс
Nikita Domnitskii
хотя там прям мощная типизация
Evgenii Elchev
о, хорошая тема, согласен. В swift такой штуки нет, но можно же список передать аргументом))
Evgenii Elchev
а зачем мне под веб кодить?
Evgenii Elchev
а так выходит js хорош только потому что у него альтернативы нет)
Sasha
На пхп нет типизации)
Evgenii Elchev
это называется не "хорош", а "использоваться все равно надо"
Евгений
не альтернативы нет, а универсальностью
Евгений
nodejs, react-native, web
Sasha
Точнее есть но строгости никакой
Evgenii Elchev
я знаю, писал на нем)
Кирилл Матросов
а если нужна универсальная функция заглушка?
Nikita Domnitskii
браузеры научились ещё что-то запускать?
Evgenii Elchev
в каком кейсе?
Евгений
алло, чуть ниже читай
Кирилл Матросов
значение по умолчанию чтобы не оставлять тех же null
Evgenii Elchev
зачем вообще кому то нужна универсальность? когда можно знать несколько языков
Daniil Kolyasnikov
Ну dartium же )
Peter Dmitrienko
ой да лан
Evgenii Elchev
ну и писать одновременно под веб и сервер
Nikita Domnitskii
ну так он загнулся так и не родившись
Кирилл Матросов
веб-формы))
Евгений
а еще можно шарить куски кода, прикинь!
Daniil Kolyasnikov
Это удобно. Шарить модели например
Evgenii Elchev
а можешь код показать? пока не понимаю
Sasha
Ты знаешь что на пхп можно через стринг вызывать функцию?
Evgenii Elchev
а что веб формы?
Daniil Kolyasnikov
Там еще и eval можно из строки браузера сделать. Но это скорее для библиотек вместо рефлексии
Evgenii Elchev
модельки, дата классы? их любой генератор нахреначит за 5 секугнд из свагера)
Evgenii Elchev
знаю, и класс и черта лысого
Daniil Kolyasnikov
Ну ты если на сваггере это делаешь.
Sasha
Угу, в общем на дарте можно похожее сделать?
Daniil Kolyasnikov
И не всем нравится то, что они генерируют
Evgenii Elchev
в objc кстати тоже можно) там даже не то что вызвать можно, там можно просто сказать json с сервера и собрать из него новый класс в рантайме, который вообще не описан был в коде)
Кирилл Матросов
[
{
"type": "pre",
"text": "void nothing(\n [Object obj1, Object obj2, Object obj3, Object obj4, Object obj5, Object obj6, Object obj7]) {}",
"language": ""
},
"\nClassName({this.onTap = nothing})"
]
Nikita Domnitskii
а в лиспах можно куски кода в переменных хранить
Nikita Domnitskii
где ваш жабаскрипт теперь
Кирилл Матросов
eval приходит на помощь
Evgenii Elchev
понял. я почему просто null туда не положить?
Nikita Domnitskii
ну это не то
Джахонгир Азимов
Ребят, тут проблема , андроид студио не видит телефон. Может ли это быть вызвано отсутствием драйвера?
Кирилл Матросов
почему? Записать код в переменную и при случае заэвалить
Daniil Kolyasnikov
А подсветка ?
Evgenii Elchev
для слабаков
Nikita Domnitskii
потому что строки
Evgenii Elchev
но вообще код в перменную положить сейчас где угдоно можно) замыкания спешат на помощь)
Кирилл Матросов
это же не языковая функциональность, а редактора напишем плагин всем миром ради такой полезной полезности)
Daniil Kolyasnikov
Ну, когда напишут, тогда вернемся к разговору ??
Daniil Kolyasnikov
На js проще с сервера скрипт подгрузить и в body вставить
Evgenii Elchev
в swift кстати есть такая штука как keyPath, типизрованный путь, до перменно или метода. class Some { func some() {} } let z: KeyPath = \Some.some с этой z что хочешь делай, храни в массиве, в переменной, а потом можно по ней вызвать метод у экзмепляра класса some)
Nikita Domnitskii
ну вы через регулярки такое писать будете?
Кирилл Матросов
именно у экземпляра? выглядит, как передача статика
Evgenii Elchev
можно даже так делать func anyFunction(keyPath: KeyPath ) { self.perform(keypath) }
Sergey Salnikov
ну тут либо шашечки, либо ехать дофигалион вопросов на SO и здесь - "чё это у меня жуйсон не парсится, а как десериализовать etc" берете openapi/grpc/graphql и пишете нужный код, а не (де-)сериализацией занимаетесь - profit =)
Daniil Kolyasnikov
Есть вообще теоретическая возможность, что в чате по дарту и флаттеру закончатся холивары на тему js,php, swift и kotlin ?
Andreu
Так все ж флаттер девелоперы пришли из нативной мобильной, вот и сремся)
Nikita Domnitskii
ну пока дарт не доведут хотя бы до состояния котлина
Igor
вероятность 50 на 50
Evgenii Elchev
именно у экземпляра, компилятор проверят, что бы кепат был именно от того класса на котором ты его применяешь, но суть в том что это просто грубо говоря именя перменной или метода. Любой перменнеой или любого метода
Daniil Kolyasnikov
Не все
Andreu
Ну большинство ведь
Daniil Kolyasnikov
Экономика рухнет, правительство и армия падет, и только пара человек будут спорить provider это архитектура или нет. Точка опоры вселенной, прям
Джахонгир Азимов
Ребят, тут проблема , андроид студио не видит телефон. Может ли это быть вызвано отсутствием драйвера?
Джахонгир Азимов
А как установить?
Nikita Domnitskii
что появилось раньше провайдер или архитектура?
Daniil Kolyasnikov
Я не уверен, надо хоттабыча призвать
Evgenii Elchev
ну а что еще делать? спорить же интересно) к тому же мы вроде культурно, не говорм что какой то язык говно)
Evgenii Elchev
вообще как показывает практика с последним холиваром умирает чат)
Evgenii Elchev
у нас в ios когда swift выходил все жило, кипело, сейчас просто перекати поле, потому что кажется уже все все выяснили и к одному мнению пришли, а если не пришли то типо какой смысл снова этот спор поднимать)
Daniil Kolyasnikov
Мне кажется, что в свифте, всё очень зарегулировано и обсуждать нечего. Есть один верный и рабочий путь. Это не так ?
Evgenii Elchev
нет конечно)
Evgenii Elchev
там наоборот куча путей)
Zoh
Есть у кого-нибудь проблемы с производительностью библиотеки flutter_html?
Dart Flutter
Всем привет, подскажите а как можно прикрутить айфон к макбуку с андройд студио для тестировки приложений?
Nikolay Korolev
Ребят подскажите, распарсил json, а там текст который был на русском превратился в кракозябры) как это пофиксить?)))
Nikolay Korolev
List parseClubs(String responseBody) { final parsed = jsonDecode(responseBody).cast
Dart Flutter
как то в режим разработки его перевести?
Andreu
дебагером чекал, входная строка еще нормальная?
Nikolay Korolev
уже входная была кракозябры
Nikita Domnitskii
в хэдере энкодинг не приходит
Andreu
ну тк проблема не в парсинге ведь тогда) нужно посмотреть заголовки, явно где-то не дослали кодировку
Nikita Domnitskii
[
"можно руками ",
{
"type": "code",
"text": "utf8.decode(responseBody)"
},
""
]
Nikita Domnitskii
[
"у респонса должен быть ",
{
"type": "code",
"text": "bodyBytes"
},
" или что-то такое"
]
Nikita Domnitskii
[
"вот его в ",
{
"type": "code",
"text": "utf8.decode"
},
""
]
Nikolay Korolev
сейчас гляну, спасибо ребят!!
Nikita Domnitskii
[
"и это уже в ",
{
"type": "code",
"text": "jsonDecode"
},
""
]
Nikita Domnitskii
но лучше с бэком разобраться, если есть возможность
Dart Flutter
ха. а аккаунт эпл разраба надо иметь?
Nikolay Korolev
дали тестовое задание, бэкеров не знаю( чисто API и всё )
Andreu
Пока не будешь пушить в стор
Andreu
у меня не прогрузился скрин на двух устройствах
Nikolay Korolev
странно в Postman загнал, там отлично отображаются данные, может это проблема на моей стороне?
Ruslan Kim
привет, подскажите как в sliver grid разместить широкие элементы без такого конского промежутка?
|