Программирование : Dart & Flutter по-русски
Vyacheslav
Уровень джава 1.5. но менее стабильно
Исмаил
Я сужу только по этому, + реакт натив вполне может попросить нативный код
Vyacheslav
Никогда не думал, что буду делать глобальные функции в 2019 году. А приходится
First Last
У некоторых вообще нету енамов Свитч как свитч Паттерн матчинг не всем завезли Не юзаю наследование совсем и вполне хорошо живу
Andrey
unity? имхо c++ забыли для игр
Vyacheslav
Я не про некоторых.а про требования к языкам в 2019 году
Максим
Вот в Котлине свитч так свитч, а здесь..
First Last
А напомни ка хоть один популярный язык со всем, что ты выше назвал :)
Andrey
в защиту дарта, а вы сами можете написать язык который будет транслироваться в js и компилироваться в native для пары платформ?
Vyacheslav
Если язык не понимает, что switch bool { case true: return true; case false: return false; } Это полноценная пробежка по всем вариантам, то извините
Vyacheslav
Ну swift и Раст. В десятый раз тут уже это пишу. Даже сиплюсплюс, который я не очень люблю, всё это умеет
First Last
В смысле умеет? Ты видел что у тебя получается на с++? Про swift я вообще молчу , это самое худшее что я видел
First Last
Я сказал популярных
First Last
Ибо я могу вбросить про хаскелль , а толку?
Vyacheslav
Что из выше перечисленных моментов не работает в тех 3 языках?
First Last
Что значит не работает, подожди
First Last
Ты хочешь сказать, что это - не работает?
Vyacheslav
в дарте это не работает омг
Sergey ?
О, языковый срач, интересно ??
Vyacheslav
уже предлагали. омг.
Vyacheslav
прочитай, там есть
Vyacheslav
вот вчера было. удалил переменную с именем image
Vyacheslav
и вот этот кусок кода собирался:
Vyacheslav
[
"new Container(\n width: width / 3,\n height: height / 3,\n alignment: ",
{
"type": "link",
"text": "Alignment.center"
},
",\n decoration: new BoxDecoration(\n image: DecorationImage(\n image: image,\n fit: BoxFit.scaleDown\n ),\n ),\n)"
]
Vyacheslav
а падало в рантайме так:
Vyacheslav
[
{
"type": "mention",
"text": "@misteraleph"
},
" скинул пример"
]
Andrey
возможно косяк инкрементальной сборки
Andrey
пробовали пересобрать с 0?
Vyacheslav
пробовал. не помогло
Vyacheslav
в конце концов какая разница
Vyacheslav
у меня проект не работает на note 9 + android 9. У заказчика тупо белый экран
Исмаил
Ну да, в дарте свитч принимает только число строку или булеву, и да звучит даже бредово
Vyacheslav
а я до этого затирал про мультиплатформенность
Исмаил
Ппц, любовь к флаттеру умирает
Vyacheslav
меня реально бомбит от этих косяков
Исмаил
Я от кордовы отказался именно по таким косякам) думал тут их не будет
Sergey ?
Заведите багу на трекере ) у меня проект на флаттере работает на Note 9
Vyacheslav
закроют с флагом as intended. Я тут с Вячеславом на эту тему говорил. Ответ такой: у команд очень мало времени, у них много задач.
Andrey
можно массово зайти и написать и у меня тоже
Vyacheslav
note 9 я наконец получу на следующей неделе, я надеюсь, чтобы можно было бы отладить
Sergey ?
Ну смотрите, если би проблема было в самом фреймворке то не работал бы любой флаттер проект на Note 9
admin
Там очень много переменных
Andrey
[
"а если добавить в проект ",
{
"type": "link",
"text": "https://github.com/flutter/sentry"
},
" ? и посмотреть логи"
]
Исмаил
Скорее всего какой то виджет не отрабатывает просто, нужно попробовать запустить хеллоу ворлд
Vyacheslav Egorov
Это кажется так и должно работать - инкрементальный компилятор игнорирует некоторые синтаксические ошибки во имя «hot reload». Есть собирать в релизе то это будет ошибка времени компиляции, а в дебаге из этого делается ошибка времени исполнения.
Vyacheslav
спасибо, добавлю. но мне надо девайс
Andrey
я не спорю с тем фактом, что девайс лучше, но все устройства не купишь
Vyacheslav
так я о том же.
Vyacheslav
не удивлюсь, что это где-то ещё не работает. я хотя бы тут причину узнаю.
Andrey
я бы развел оффтопик, а много клиентов с нот9, а много они генерят бабла..., потом выяснится что для работы нужны права, а пользователь их не дал...
Vyacheslav
спасибо, понял. Но это опять какое-то недокументированное сакральное знание)
Andrey
я бы посоветовал добавить CI которое делает сборку с 0, без hotreload
Vyacheslav
это какая-то тулза? это что-то родное? или самому надо колхозить?
Andrey
[
{
"type": "link",
"text": "https://codemagic.io/"
}
]
Vyacheslav
спасибо, посмотрю
Andrey
возможно у меня enterprice головного мозга, что я собираю кучу логов. и обмазываюсь CI/СD облаками и докерами
Sergey ?
Это должно быть много где
Andrey
делаешь ты статический сайт, ну собирается оно в статику.... в CI в докер контейнере, и доставляется на сервер через CD в mounted volume docker контейнеру с nginx...
Исмаил
ну для статичных может не совсем надо, но все равно это же впринципе конфиги один раз задал и все, просто команду запустить
Roman
Добрый день, задавал уже вопрос раньше, но может сейчас кто-то знает ответ =) Можно ли каким-либо образом заставить firebase работать нормально в оффлайн режиме? Я имею в виду, на бумаге firebase поддерживает offline first подход, но если залогиниться через firebase с включенной сетью, потом отключить сеть и попробовать открыть приложение - логин срабатывает через раз
Кирилл Адещенко
Как в ExpansionTile засунуть ListView.builder?
Анатолий
Через раз срабатывает логин, а каждый второй раз что происходит?
Roman
с логином проблему решил. Использовал GoogleSignInAccount user = googleSignIn.currentUser; И он нулевой в оффлайне. Нужно было использовать FirebaseAuth.instance.currentUser()
Roman
[
"но осталась проблема с апдейтом данных в оффлайн режиме\nНапример, у меня такой кусок кода\n\nQuerySnapshot querySnapshot = await Firestore.instance.collection('/users/${user.uid}",
{
"type": "bot_command",
"text": "/planned_workouts"
},
"')\n .where('",
{
"type": "link",
"text": "programDayDefinition.id"
},
"', isEqualTo: ",
{
"type": "link",
"text": "day.id"
},
")\n .limit(1)\n .getDocuments();\n\n await querySnapshot.documents.first.reference.setData({'completed': true}, merge: true);\n\nЕсли выполняю в онлайне - все ок, данные в таблице изменяются \nЕсли в оффлайне - то ничего не происходит и при появлении сети\nЯ что-то неправильно делаю?"
]
Roman
В смысле, есть ли какой-то способ модифицировать данные в firebase, чтобы при появлении сети - данные были добавлены в БД на сервере гугла
Анатолий
Я точно знаю что логин сохраняется, про апдейт не вкурсе
Anatoliy Dvoryashin
Здравствуйте! Я новичок забыл вот что. Точнее не помню что искать. На экране Аватарки, имена, checkbox, все пытаюсь падингом подогнать, но я понимаю что это не эффективно, если имя длине, то все к чертям слетает. 1) как размер шрифта для имени подобрать в зависимости от длины имени. 2) как задать расположение имени, времени, Аватарки, чекбокса, адоптивно. Сильно не ругайтесь
Roman
проблема пофикшена в последней версии cloud_firestore. Сам спросил, сам ответил ??
Анатолий
?? по крайней мере теперь все знают на 100% что оно работает
Анатолий
[
{
"type": "link",
"text": "https://flutter.dev/docs/development/ui/layout"
}
]
admin
[
"На медиуме ещё было очень классная статья ",
{
"type": "link",
"text": "https://link.medium.com/liJJ7mzw8U"
},
""
]
admin
Rebyata u menya problema s Firebase Real Time database
admin
ka ya mogu ispolzvat StreamBuilder
Daniil S
Ребят, есть варинт как можно decoration в контейнере проанимировать?
Boris Glebov
посмотри в сторону еще AnimatedContainer
Daniil S
я могу через анимейшнбилдер сделать
Daniil S
но мне хочется декорацию абстрагировать
admin
[
{
"type": "mention",
"text": "@Belokotov"
},
" спасибо я нашла проблема надо использовать Stream"
]
Dmitry Lvov
[
"всем привет! А подскажите пожалуйста - я создал ",
{
"type": "code",
"text": "MethodChannel"
},
" , он отработал как нужно - мне его нужно после этого деактивировать, или он не кушает ресурсы? Как это сделать?"
]
Dmitry Lvov
по аналогии с докой, переменную создал вот так
admin
Кто нибудь пользуется flutter graphql?
admin
подскажите, что эти скобки делают?
Igor Katsuba
вызывают функцию на месте
admin
спасибо теперь понял
DVS (Read The F.ng Manual) Studio (NoHello)
это типа генератора получается?
Dmitry Lvov
ребят, а есть у флаттера примеры готовых приложений на гитхабе? От гуглов в смысле? Ну, или еще какие то толковые примеры - очень нужно.
tdesc
ну и awesome flutter
Dmitry Lvov
а, я че т туплю
DVS (Read The F.ng Manual) Studio (NoHello)
Stack или не Stack, вот в чем вопрос Достойно ль смиряться под ударами фронта иль надо оказать сопротивленье И в смертной схватке с дизайнером больным Column впилить? Commit, Revert, Erase all!
DVS (Read The F.ng Manual) Studio (NoHello)
утро?! УЖЕ?!
DVS (Read The F.ng Manual) Studio (NoHello)
~Что б я еще раз делал кастомный UI без четкого стайл-гайда~
Исмаил
все норм, я тоже только спать иду)
DVS (Read The F.ng Manual) Studio (NoHello)
а.. тогда не всё потеряно
DVS (Read The F.ng Manual) Studio (NoHello)
Поспи за меня тоже, в ср-чт сдавать проектище, а готово только на половину
Олжас Сулеймен
В дарте нельзя слушать лог файл на добавления в конец файла через openRead transform utf transform lineSplitter
Андрей
Доброе утро, может кто знает как сделать одну вещи, при возврате с другого экрана на первый мне нужно вызвать один метод, это нужно делать при помощи AppLifecycleState или можно другим способом?
admin
Есть ли интенсивность роста flutter-вакансий?
admin
И подкиньте информации как работает VM дартовский, и почему с ним сложнее дебажить (например Reveal его не детектит) и что по безопасности
(;?_?) Ivan Zhuravlev ???>?
[
{
"type": "link",
"text": "https://mrale.ph/dartvm/"
},
" ?"
]
Anatoliy Dvoryashin
Что то пока не особо сильно много
Anatoliy Dvoryashin
Есть ли интенсивность возраста flutter-вакансий?
Anatoliy Dvoryashin
Ой без вопроса
Кирилл Матросов
что такое интенсивность возраста?
(;?_?) Ivan Zhuravlev ???>?
наверное роста? тогда это хоть какой-то смысл имеет
Кирилл Матросов
в таком случае в начале января (по Москве) было 2 вакансии с упоминанием flutter в тексте вакансии, сейчас их 12, половина содержит flutter в заголовке
Anatoliy Dvoryashin
Грёбаный непрерывный ввод
(;?_?) Ivan Zhuravlev ???>?
600% =)
Anatoliy Dvoryashin
Надо отключить
Leo Li
Hello everyone, I created a flipper sdk and redux inspector plugin for flutter, Now you can view the redux actions on the flipper.
Leo Li
[
{
"type": "link",
"text": "https://github.com/blankapp/flutter_flipperkit_plugins/tree/master/packages/flipperkit_redux_middleware"
}
]
admin
нубский вопрос, но Flutter вообще использует UIKit на айосе, или просто рисует все на Skia почти однотипно? И везде ли, где заводится Skia, заведется и флаттер?
Igor Katsuba
Флатер рисует на skia всегда и везде где работает skia. И умеет косить под нативные элементы iOS и Android, но это лишь убедительная имплементация системного UI
Igor Katsuba
в теории можно подсунуть любой движек вместо Skia
Igor Katsuba
и судя по комитам уже есть сборка под web, провда половина методов классов dart:ui выбрасывают UnimplementedError
Igor Katsuba
ну и если постараться можно заморочиться над имплементацией dart:ui под web
Igor Katsuba
Но если только по фану
admin
если говорить о платформах, которые не в саппорте, то я бы выбрал Десктоп)
Igor Katsuba
Я думаю команда Flutter расскажет нам чуть больше на Google I/O про все платформы
Анатолий
а когда он будет?
Igor Katsuba
с 7 по 9 мая
Анатолий
норм, не долго ждать
admin
ох, он прям как WWDC с датой
(;?_?) Ivan Zhuravlev ???>?
можно же собрать. есть руководства
Анатолий
там пока что адища
(;?_?) Ivan Zhuravlev ???>?
ну я собирать не пробовал. только репу на гитхабе смотрел
Artyom Nesterenko
WWDC с 3 по 7 июня в этом году.
recvec
Всем привет! Есть ли какая-то возможность изменить дату создания файла в Flutter? Из документации о File нашел только возможность модификации даты последнего изменения и доступа к файлу. Спасибо.
Анатолий
Для начала спроси есть ли у флаттера возможность доступа к файлам которые ты хочшеь менять
recvec
Изображение, которое было создано с полученных из сервера байтов.
Анатолий
ты хочешь его создать и потом изменить?
Анатолий
а где сохранять хочешь?
recvec
Пока в папке программы
Анатолий
[
{
"type": "link",
"text": "https://api.dartlang.org/stable/2.2.0/dart-io/File/setLastModified.html"
}
]
recvec
Да, но хотелось изменить именно время создания. Сейчас будут рыть в сторону exif-стандарта Под Linux есть невероятная утилита exiftool, которую я когда-то использовал для изменения метаданных изображений
(;?_?) Ivan Zhuravlev ???>?
ну это же тоже метаданные, а не дата создания
Анатолий
Ты можешь удалить его и создать заново
Анатолий
Дата создания предполагает создание файла
(;?_?) Ivan Zhuravlev ???>?
ну... этим он только в большую сторону может изменить =)
First Last
Зато можно красивую функцию сделать
First Last
С двумя сайд эффектами :)
(;?_?) Ivan Zhuravlev ???>?
можно. но зачем?
First Last
Функции - наше все
(;?_?) Ivan Zhuravlev ???>?
???>? вот с этим не поспорить
Ilya
доброго времени суток, есть container на весь экран , при клике на контейнер мне надо hide/show информацию, это напоминает функционал когда кликаешь на фотку в галереи (типа показывать или скрывать инфу) подскажите плз как это сделать, меня интересует иммено дерево виджетов
Анатолий
[
{
"type": "link",
"text": "https://unix.stackexchange.com/questions/102691/get-age-of-given-file/102692#102692"
}
]
Анатолий
Это по поводу даты создания, говорят что это все вымысел )
(;?_?) Ivan Zhuravlev ???>?
gestureDetector?
(;?_?) Ivan Zhuravlev ???>?
а дальше что-нибудь типа showDialog
Ilya
нее, наверное я плохо объяснил, мое видение это stack, в нем два элемента :1) мой контейнер обвернут в gesturedetector 2) контейнер с моей инфой
northelks
про стейт читал?)
Ilya
да, теперь такой момент, а если внутри будет контейнер с видео, то значит контейнер с видео перерендериться
Ilya
для видео есть controller, поулчается мне этот контроллер надо хранить при изменении стейта?
(;?_?) Ivan Zhuravlev ???>?
создай контроллер в контейнере с gesturedetector и передавай в стейте в контейнер с видео, не?
Ilya
+- как я и думал, спасибо)
admin
А почему на флаттер так мало пул реквестят и так много ишьюсов?
admin
This error might indicate a memory leak if setState() is being called because another object is retaining a reference to this State object after it has been removed from the tree. To avoid memory leaks, consider breaking the reference to this object during dispose().
Ilya
потому что в офф релизе он относительно недавно
admin
то есть он раньше не был в попен сорсе?
admin
[
{
"type": "mention",
"text": "@keepmepls"
},
" U meny est bug kogda firebase onValue izmenyaets"
]
admin
можешь дать ссылку на ишьюсь с подробным описанием?
admin
[
{
"type": "mention",
"text": "@keepmepls"
},
" DataService.getInstance.orgReference.child(widget.organization.Name).onValue.listen((val) {\n Map dict = val.snapshot.value;\n Organization org =Organization.fromDict(dict);\n\n if (org !=null)\n setState(() {\n this.orga = org;\n print(orga.AmountDonated);\n });\n \n });"
]
admin
[
{
"type": "mention",
"text": "@keepmepls"
},
" E/flutter (29442): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: setState() called after dispose(): _DetailOrganizationState#df7c1(lifecycle state: defunct, not mounted)\nE/flutter (29442): This error happens if you call setState() on a State object for a widget that no longer appears in the widget tree (e.g., whose parent widget no longer includes the widget in its build). This error can occur when code calls setState() from a timer or an animation callback. The preferred solution is to cancel the timer or stop listening to the animation in the dispose() callback. Another solution is to check the \"mounted\" property of this object before calling setState() to ensure the object is still in the tree.\nE/flutter (29442): This error might indicate a memory leak if setState() is being called because another object is retaining a reference to this State object after it has been removed from the tree. To avoid memory leaks, consider breaking the reference to this object during dispose().\nE/flutter (29442): #0 State.setState. \npackage:flutter/…/widgets/framework.dart:1095\nE/flutter (29442): #1 State.setState \npackage:flutter/…/widgets/framework.dart:1121\nE/flutter (29442): #2 _DetailOrganizationState.initState.. \npackage:charity/pages/detailOrganizationView.dart:38\nE/flutter (29442): #3 _rootRunUnary (dart:async/zone.dart:1132:38)"
]
admin
[
"я не очень знаю дарт, но здесь происходит кложер ",
{
"type": "code",
"text": " setState(() { "
},
", да?"
]
admin
типо добавление функционала в функцию
admin
извините за нубские вопросы
???????
[
"Позвольте глупый вопрос.\nКакой тут тип должен быть?\n\n",
{
"type": "pre",
"text": "Тип? a = () {return ''; };",
"language": ""
},
""
]
???????
var не предлагать
???????
Тобишь я в функции хочу указать функцию
???????
[
"Тобишь хочу тут избавиться от повторения:\n",
{
"type": "pre",
"text": " var a = () {return ''; };\n\n // обойдем картинки\n document.getElementsByTagName('img').forEach((Element ele) {\n String src = ele.attributes['src'];\n if (src.startsWith('/upload'))\n src = 'https://infostart.ru$src';\n else if (src.startsWith('//'))\n src = 'https:$src';\n else\n int a = 0;\n ele.attributes['src'] = src;\n return ele;\n });\n\n // обойдем ссылки\n document.getElementsByTagName('a').forEach((Element ele) {\n String src = ele.attributes['src'];\n if (src.startsWith('/upload'))\n src = 'https://infostart.ru$src';\n else if (src.startsWith('//'))\n src = 'https:$src';\n else\n int a = 0;\n ele.attributes['src'] = src;\n return ele;\n });",
"language": ""
},
""
]
Кирилл Матросов
вызываешь setState в уже убитом виджете, такое бывает, когда setState завязан на асинхронную операцию
???????
[
"Вроде разобрался, это так записывается:\n",
{
"type": "pre",
"text": "String Function() a = () {return \"\"; };",
"language": ""
},
""
]
Кирилл Матросов
[
"есть еще уже определенный алиас ",
{
"type": "pre",
"text": "typedef VoidCallback = void Function();",
"language": ""
},
""
]
Олжас Сулеймен
Ну тут не войд, можно ещё typedef String FuncTypeName();
who
как думаете убъет флаттер реакт нейтив или шансов мало?
Анатолий
Не убьет, фронтендщики ленивые чтоб учить новый язык
Анатолий
Ну это правда, тут ниче не поделаешь
Анатолий
+ синтаксис им ближе будет у рн чем у флаттера
Анатолий
Виджет(виджет(виджет(виджет(виджет(виджет)))))
Vyacheslav
Ближе к чему ?
Анатолий
Ближе чем у флаттера
|