Программирование : Dart & Flutter по-русски
Comrade77
Я думал jQuery давно умер )
Yusuf Alexey
У меня другие задачи, поэтому приходится много чем пользоваться
tdesc
не зная ваших задач, вы хотите ответ о своем будущем услышать?
Shodmon | Wo
А где почитать о какой идее речь?
Yusuf Alexey
Я про свое будущее вопросы не задавал??
tdesc
это вам так кажется, на будущее флаттер вы никак не влияете
tdesc
несколько реализаций было
Yusuf Alexey
Ну если речь идет о виртуал дом, то кто запрещает использовать jQuery?
Bohdan
Как переубедить человека что флаттера луче реакта? Объясняю что во флаттера skia движок что гуд но не заходят такие аргументы)
Alexey Lepskii
Никак, у каждого свой путь
tdesc
реакт в его натив виде имеет брижд
tdesc
что убивает производительность
tdesc
и является неисправимым недостатком архитектуры
Yusuf Alexey
Сомнительное утверждение. Мне кажется не важно, что ты используешь, а как ты это делаешь, для чего, для каких задач. За 2 года работы Vue.js могу сказать, что он не идеален и у него много багов, которые приходится решать альтернативными способами. Главное, делать это разумно. Ваша логика примерно следующая: зачем ты используешь фреймворки, если ты все можешь отрисовывать на сервере, если используешь python
tdesc
[
{
"type": "link",
"text": "https://levelup.gitconnected.com/7-common-vue-js-mistakes-you-should-never-make-a9732f29dc9d"
},
"\n\n7. Using Vue.js and jQuery in Conjunction"
]
tdesc
думаю это не только мое мнение, это точка зрения всех в индустрии )
Roman Diachenko
Как получить всех listeners для одного конкретного стрима?
Дмитрий Щербаков
открываем страницу комментариев на хабре (где их больше 50) и ощущаем всю мощщщ жиэс как оно жрет памятть батарею и проц )
tdesc
потом этот перец уволится, кому то достанутся jQuery подарки )
Andrew Ka
[
"Признаюсь, я тоже извращенец. ?? ",
{
"type": "link",
"text": "https://habr.com/ru/post/330656/"
},
""
]
vasilich
Или вы имели ввиду RN?
tdesc
реакт не работает на мобайл, кажется этого достаточно
Artemiy Levy
Скорее всего человек имел ввиду React Native
Илья Максименко
А он это понял
Илья Максименко
Некст сообщения читай
Илья Максименко
и является неисправимым недостатком архитектуры
Илья Максименко
Не уверен конечно
Bohdan
Конечно реакт нейтив в споре
Илья Максименко
Но сомневаюсь что в рн можно так же просто писать ui как в флаттере
Илья Максименко
Вообще как-бы в этом плане флаттеру нету равных
George Wiseman
Тут сложно аргументировать, пока не попробуешь Как человек 3 года писавший на RN могу сказать что ну видимо пока не потрахаешься с бесконечными проблемами RN - не поймешь. Идиллию которую рисует Facebook сложно перебороть аргументами, но дьявол в деталях, и выясняется что это все попросту не работает как ожидалось, и чем больше требований к качеству UI, тем превосходство Flutter заметней
George Wiseman
Уровни проблем такие, что, например, в RN в Android при холодном старте могут не работать диплинки. Мать его, проекту 5 лет, а до сих пор все не работает как надо. Вроде поправили, но такого рода "недоделки" будут всплывать постоянно и при реальной работе заметную часть времени занимает не RN разработка а возня с косяками платформы
George Wiseman
Второй момент - "брендированный" дизайн. Например - дизайнер хочет красную тень. Ее попросту не сделать на Android по макетам, поотому что на Android есть elevation, а не shadow. Вообщем если дизайн на 2 платформы, то лучше Flutter, чтобы не упираться
Alexey Korzhavin ?
ночью писал. уже сонный был. пришел на работу. только сейчас заметил что у меня лишний виджет
Yusuf Alexey
Такое сплошь и рядом??
Roman Vasiliev
Никак, жабоскриптеры колются, но продолжают жрать кактус. Куда только свое любимое поделие запихнуть не готовы
George Wiseman
Ну вот это неправда - уже JSI в мастер ветке и библиотека reanimated2 которая работает без бриджа, дальше больше. Проблемы есть, но они другие - скорее просто качество RN и библиотек. Apple Pay прикрутить -уже проблема. Карты - глючат и фиговые. Хорошего BottomSheet попросту нет (появилось пара библиотек за последние несколько месяцев, их не пробовал, но вряд ли прям прорыв)
Andrew Ka
[
{
"type": "link",
"text": "https://youtu.be/z_1UU_K08tI?1234"
}
]
Bayishbro
Всем привет, я создал 3 виджета и в каждом по 1 кнопке перехода на след. виджет выгядит примерно так 1->2->3, но когда на 3 виджете делаю назад он переходит на 1 виджет 3->1 игнорируя 2, как это исправить?
Roman Vasiliev
Нужно пофиксить баг, тогда все станет ок
Anatoliy Razumov
Смотря как ты переходил на третье
Bayishbro
ну если повесить на кнопку то ок работает, но я через андроидоскую кнопку хочу
Bayishbro
а точнее через жест назад
David Kasumov????
Добрый день народ! Хочу у вас узнать, в чем смысл юзать дарт на фронте, если он всеравно будет скомпилирован в js, или он не для этого используется?
Павел Середа
в том что отдельно от мобильной аппки отдельный веб писать будет не обязательно(и наоборот)
Семён undefined
в чем смысл использовать тс, если он будет интерпретирован как жс?
Anatoliy Razumov
Кто подскажет в чем дело? При заполнении текстовой формы вылетает исключение: "Looking up a deactivated widget's ancestor is unsafe." Ничего не менял и до сегодня было всё норм
DK
у тебя в момент компиляции будут типы
DK
в js не будет ситуации когда вывалиться undefined
David Kasumov????
Так в этом и вопрос. Зачем дарт, когда есть тс?
Bohdan
Лол человек не жабаскриптер А я жабаскриптер и мне флаттерок нрав
Урусай
Затем, что флаттер в вебе использует дарт так же как и в мобилке
Урусай
Чисто дарт без флаттера в браузере не используется
Урусай
Исключение из правил. Просто попытка отвязать ангуляр от гнилой жс экосистемы
David Kasumov????
А флаттер, это как реакт нэтив, чтоб создавать мобильные приложения?
Урусай
Не только мобильные, но и веб и декстоп
Урусай
Ну и фуксия естественно, для которой можно только на флаттере писать
David Kasumov????
Но флаттер круче, быстрее чем реакт нэтив?
Урусай
Все говорят что да, но я не в курсе. Наверное
Vladimir Avramov
Конечно используется. Не вводите в заблуждение.
Вадим Резниченко
на чем лучше верстать приложения?
tdesc
оно когда до продакшн 1.0 версии доберется, тогда и будем говорить что там есть что то
Олжас Сулеймен
эм дарт компилируется в жс как в веб так и для ноды
Олжас Сулеймен
жля ноды только обертки не в сдк а отдельно в пабе лежат
Олжас Сулеймен
флаттер не обязательно
Урусай
Я тебе могу что угодно в жс скомпилить, но это не значит что это что угодно будет применяться в браузере
Олжас Сулеймен
по моему 30 40 процентов кода на дарте это веб приложения
Олжас Сулеймен
так одно из применении дарта веб приложения, полное веб апи + аудио и gl
Roman Vasiliev
dart2wasm не готов вроде как еще
Yaroslav
[
"Всем привет. Подскажите как в DateTime получить время начала дня. Есть что-то вроде ",
{
"type": "link",
"text": "DateTime.now"
},
"().beginingOfDay()?"
]
Alexey
datetime(now().year, now().month, now().day)
Yaroslav
[
{
"type": "link",
"text": "now.day"
},
" возвращает 00:00 дня?"
]
Alexey
инициализируешь датувремя без времени
Yaroslav
Использую .fromMillisecondsSinceEpoch()
Yaroslav
там без времени не выйдет
Alexey Korzhavin ?
ребят, подскажите как у ListTale сделать поменьше отступы и чтобы контейнер со списком не выходил за границы и остался прокручиваемым
Michael Bazilique
[
"Привет ребят.\nЕсть кастомный провайдер.\nМожно как-то засунуть в child каллбэк из билдера кроме как перерывать его нарушая DRY? \n",
{
"type": "pre",
"text": "Widget build(BuildContext context) {\n return ArchModelWidget (\n model: SessionBLoC(fetchArgs(context), Provider.of(context),\n Provider.of(context), Provider.of(context)),\n builder: (context, bloc, child) {\n bloc.loadData();\n return WillPopScope(\n onWillPop: () => _requestPop(bloc),\n child: _SessionDetailsLifecycleAware(bloc: bloc, child: child));\n },\n child: TopBar.withBack(context, trigger: bloc.method??), // send sync start callback there\n );\n }",
"language": ""
},
""
]
Илья Максименко
Лучше будет если сам напишешь такой икстеншн
Илья Максименко
Или свою модельку
Yusuf Alexey
Не подскажите, а как-то можно посмотреть, что из себя представляют сами виджеты? Ну что-то типа панели разработчика, когда нажимаем F12, зажимаем ctrl+shift+c и смотрим HTML элементы
Roman Vasiliev
Перейти в документацию в исходном коде
Семён undefined
[
{
"type": "link",
"text": "https://flutter.dev/docs/development/tools/devtools/overview"
}
]
Yusuf Alexey
Не много не понял, я имею ввиду, вот у меня экран и я на нем хочу понять, где какой виджет, чтобы разобраться, кто, что делает. Потому что читаю книжку флуттер на практике, пока что тяжело идет
Roman Vasiliev
DevTools в таком случае
Roman Vasiliev
Можно еще накостылить контейнер закрашенный)
Илья Максименко
Не знаю как это в вскоде делается
Илья Максименко
Но в андроид студии есть менюшка справа сбоку вверху
Илья Максименко
А в ней голубой квадратик
Илья Максименко
Дев тулс запускается в браузере
Илья Максименко
А это не всегда удобно
Семён undefined
не обязательно
Семён undefined
можно настроить и встроенный
Илья Максименко
Через плагины?
Семён undefined
через настройки
Семён undefined
плагина флаттер
Yusuf Alexey
Если пришлете скрины в андроид студио, буду благодарен
Yusuf Alexey
Потому что в вскоде посмотрел, как-то не удобно
Evgeny Cherkasov
[
{
"type": "pre",
"text": "extension DateTimeExtension on DateTime {\n\n DateTime beginOfDay() {\n return DateTime(this.year, this.month, this.day);\n }\n\n DateTime beginOfWeek() {\n // The week is starting from Sunday\n return (this.weekday == 7) ? this : this.subtract(Duration(days: this.weekday));\n }\n\n DateTime endOfWeek() {\n // The last day of the week is Saturday\n return this.beginOfWeek().add(Duration(days: DateTime.daysPerWeek - 1));\n }\n\n DateTime beginOfMonth() {\n return DateTime(this.year, this.month);\n }\n\n DateTime endOfMonth() {\n return (this.month < 12) ?\n DateTime(this.year, this.month + 1, 0) :\n DateTime(this.year + 1, 1, 0);\n }\n}",
"language": ""
}
]
Farid
в настройках vs code и android studio поищите "embedded" devtools
Maksim Zdanchuk
[
"всем привет! Наверняка, очень простой вопрос, но мне нужна помощь. Как выровнять текст в кнопке по вертикали? textAlign: ",
{
"type": "link",
"text": "TextAlign.center"
},
" - выравнивает только по горизонтали, но сам текст находится у верхней границы кнопки"
]
Evgeny Cherkasov
С помощью экстеншенов как нибудь можно сделать конструктор?
Maksim Zdanchuk
в такои случае кнопка растягивается на весь экран, но текст все еще у верхней границы
Maksim Zdanchuk
пробовал уже
Урусай
А кнопка есть что? RaisedButton?
Maksim Zdanchuk
а как стоит написать?
Maksim Zdanchuk
я совсем недавно пишу во флаттере и на дарте. Пока слабо разбираюсь
Урусай
А, ну тогда у тебя и так текст должен быть по центру
Илья Максименко
Вкладка называется flutter inspector
Урусай
Тебе column скорее всего её на верх суёт
Урусай
[
"Напиши mainAxisAlignment: ",
{
"type": "link",
"text": "MainAxisAlignment.center"
},
""
]
Maksim Zdanchuk
в какой строке?
Урусай
Или mainAxisSize: MainAxisSize.min
Maksim Zdanchuk
получилось) спасибо огромное
Yaroslav
Всем привет. Долго ресерчил, но так и не нашёл как сделать следующий кейс: есть флаттер апп для логина + реги, отлично подключается в любой андроид апп, переходится на логин страницу. Проблема начинается, когда я хочу вытащить Токен с локального хранилища флаттер аппа - как сделать запрос из нативного, кто знает?
tdesc
если флаттер это только ui на отдельной активити, то все данные должны быть в нативе
Yaroslav
Нет, это полноценный апп для логина, реги, восстановления пароля
Daniil Kolyasnikov
MethodChannel заюзай
Max
А как ты из флаттера запускаешь основное приложение? Там параметры передать нельзя?
Yaroslav
Я в основное приложение подключил флаттер как модуль
Yaroslav
И он в идеале должен решать мои аус делишки
Yaroslav
Но Токен в основу получить не могу
Max
Тогда этот модуль должен возвращать тебе значение каким-то образом
Yaroslav
Вот именно каким) method channel на активити ток
Yaroslav
Или я ошибаюсь на его счет
tdesc
канал имеет 2 конца, один в нативе, один в дарте
Dmytro Bondarchuk
А где сохраняете токен? В shared preference? Там пекедж добавляет «flutter.” К ключам.
Yaroslav
Это хэндлит флаттер и на иос и на андроид по разному
Dmytro Bondarchuk
В флаттер аппе как сохраняете токен?
tdesc
[
{
"type": "link",
"text": "https://flutter.dev/docs/development/platform-integration/platform-channels"
}
]
Yaroslav
Через flutter secure storage
Yaroslav
Тут вызов из флаттера
Max
И это гарантирует невозможность другого приложения добраться до него напрямую)
Yaroslav
А нужен method handler на стороне флаттер
Yaroslav
Ане прям отдельное приложение
tdesc
вы не понимаете как работают каналы
Max
Я знаю. Я про технологию хранения.
Art
HI. Почему я не могу использовать ?
Art
[
{
"type": "link",
"text": "https://pub.dev/packages/sound_generator/install"
}
]
Yaroslav
Я понимаю, я не могу найти пример метод хэндлера на стороне флаттер
Max
А как твоё приложение называется?)
Alexey Korzhavin ?
ListView обрезает тени дочерних виджетов. кто-нибудь сталкивался?
Alexey Korzhavin ?
может кастыли есть?
Урусай
Не костыли а вокрэраунд
tdesc
на стороне флаттер будет только вызов с вашим токеном
Урусай
padding внутри listview
tdesc
на стороне клиента канал получит результат
Alexey Korzhavin ?
неплохо)
Art
А ето имеет значениа ?
tdesc
[
{
"type": "link",
"text": "https://github.com/flutter/flutter/blob/master/examples/platform_channel/lib/main.dart"
}
]
Max
Если оно называется sound_generator, то имеет)
Art
Ne podumal chto eto budet imet znachenia
Yaroslav
Но тут опять же флаттер вызывает наивный код. А я уже в флаттер аппе залогинился и вернулся в свой наивный апп, и такой хочу запрос с токеном выполнить, который в флаттер остался)
Max
Нужно из флаттера его было отдать, и прикопать в приложении.
Max
Правда это всё равно выглядит, как большая дыра в безопасности. Если флаттер отдаёт токен наружу - как гарантировать, что он отдаёт его только тому, кому нужно?
Yaroslav
Этот вариант рассматривался, но есть ещё token Refresh, который надо вызвать он экспайр
Yaroslav
У внешних аппов нет доступа в мой модуль
Max
Ну, значит, дёргать флаттер каждый раз, когда нужен токен
Yaroslav
Как его дёрнуть без юай?
Yaroslav
Это и есть мой вопрос
Max
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/50187680/how-to-call-methods-in-dart-portion-of-the-app-from-the-native-platform-using-m"
}
]
tdesc
ты должен по получению во флаттер токена, прокинуть его в натив по каналу
tdesc
не надо дожидаться “закрытия” флаттер активити
Yaroslav
А потом ещё нужно рефрешнуть Токен
tdesc
в примере есть 2 канала
tdesc
[
"static const MethodChannel methodChannel =\n MethodChannel('",
{
"type": "link",
"text": "samples.flutter.io/battery"
},
"');\n static const EventChannel eventChannel =\n EventChannel('",
{
"type": "link",
"text": "samples.flutter.io/charging"
},
"');"
]
tdesc
что значит потом рефрешнуть
Yaroslav
Когда нативка получит Токен экспайр, надо дёрнуть метод в флаттер - refresh token
Yaroslav
И получить новый
tdesc
у тебя нет флаттер активити
Yaroslav
Нельзя инитить канал без активити, так ведь
Yaroslav
Без engine который в активити
Yaroslav
Это ресерч проект, цель делать общие модули типа авторизации, оплаты на кросс платформе) и юзать в продуктовых аппах
|