Программирование : Dart & Flutter по-русски
Evgenii Elchev
Это был просто вопрос из интереса. Как часто такое случается и как вы на андроиде это фиксите
tdesc
смотрим лог в крашлитикс, фиксим, релизимся, смотрим
Evgenii Elchev
И да, ты спросил я ответил. У нас не бывает девайсо зависимых крашей. По крайне мере я не сталкивался.
tdesc
там есть система тикетов
tdesc
но у нас свои в жире
tdesc
если проблема в плагине - форкаем чиним
Evgenii Elchev
Так что фиксите то? если ошибка из за девайса, а не вашего кода
tdesc
такого в жизни не бывает. я в магию за 20 лет моб. разработки не верю.
(;?_?) Ivan Zhuravlev ???>?
да, вы ответили, я понял вашу позицию, ваша позиция похоже "мы не пилим под андроид". ну такая тоже может быть
(;?_?) Ivan Zhuravlev ???>?
в другой конторе пилили для внутренних нужд приложение с помощью которого делают фотоотчеты
Evgenii Elchev
Какую позицию? Я iOS разработчик, естественно я не пилю под андроид.
(;?_?) Ivan Zhuravlev ???>?
в процессе разработки столкнулись что куча приложений, написаных с помощью (навру щас, я тогда особо не лез что там у них в свифте и прочем) эпловского свифт плагина работы с камерой, падает после ±300 фотки
(;?_?) Ivan Zhuravlev ???>?
и проблема была именно в эпловском свифт плагине
Evgenii Elchev
Так вот и я о том же. И какие обычно не Осаки приводят к крэшам?
(;?_?) Ivan Zhuravlev ???>?
в итоге кусок рабты с камерой переписывали на обжектив си и более низкий уровень абстракции
(;?_?) Ivan Zhuravlev ???>?
а вы говорите "проблемы в вашем коде"
tdesc
в айос у нас пострянно сыпится сокет.ио
(;?_?) Ivan Zhuravlev ???>?
???>?
tdesc
часто крэши в биометрии
Evgenii Elchev
И я уверен что эта ошибка была на всех девайсах. В не только на на каком нибудь iPhone 7+
(;?_?) Ivan Zhuravlev ???>?
эта ошибка была везде где использовался этот эпловский плагин работающий с камерой
tdesc
все платформенно и версио зависимо
(;?_?) Ivan Zhuravlev ???>?
там где он не использовался - ошибки не было
(;?_?) Ivan Zhuravlev ???>?
???>?
tdesc
также background/foreground
tdesc
натив или флаттер вопроса магии не вижу
(;?_?) Ivan Zhuravlev ???>?
???>? "вы просто под айос не пилили"
tdesc
подо все существующие моб. ос я что то пилил
Evgenii Elchev
Да блин. Ребята. Ну камон. Я интересовался андроид работкой. Нативной. Конкретно как так оно падает на каких то определенных девайсах и было интересно как из за чего и как чинят. Мне просто было интересно) вместо просто ответа мне рассказали что iOS тоже фигя, что я наехал на андроид и про плагины во флаттере))
tdesc
падают гугл сервисы
tdesc
если они нужны а их нет
(;?_?) Ivan Zhuravlev ???>?
так я же сразу ответил, разные прошивки
tdesc
падает кривые чипсеты на которых не стартует скиа
(;?_?) Ivan Zhuravlev ???>?
надеюсь "разные прошивки" не звучит для вас как "что-то на китайском"?
tdesc
и куча зоопарка адроид девайсов
(;?_?) Ivan Zhuravlev ???>?
вы же понимаете что в ведроид стане девайсы могут работать под разными прошивками содержащими свои разные баги?
Evgenii Elchev
Ты продолжаешь гнать негатив
tdesc
Все как в нативе! Флаттер ни при чем.
Evgenii Elchev
И что делаете если сервисов нет и скипа падает?
tdesc
вопросы по дебагу андроид крашей лучше в профильном чате поинтересоваться или у гугла
(;?_?) Ivan Zhuravlev ???>?
нет, я просто ни разу не работал так, что бы "ошибка в моем коде. больше нигде её быть не может". я большую часть времени проработал фуллстек вебдев. и я очень много сталкивался с разным поведением на разных девайсах/браузерах/версиях
(;?_?) Ivan Zhuravlev ???>?
ну и как бы. ошибка может быть на каком угодно уровне и причин может быть 100500.
(;?_?) Ivan Zhuravlev ???>?
и либо есть решение, которое можно применить на уровне "я сделаю хак в приложении" либо "ну печальбеда, тут это не поддерживается"
(;?_?) Ivan Zhuravlev ???>?
и да, бывают ошибки когда "да, это ошибка в моем коде" но точно так же бывают "этот плагин на этой версии ос не работает" ???>?
tdesc
с самим флаттер фреймворком была лишь однажды проблема с Quallcom чипсетом 6-какимто не стартовала скиа в каком то коммите сломали, быстро поправили и все.
(;?_?) Ivan Zhuravlev ???>?
и либо тебе везет и производитель делает обновление ос которое закрывает этот баг, либо надо смириться и оценить на сколько этот девайс+ось критичны
tdesc
ничего не мешало откатиться
IB Akhrorov
У всех гитхаб не работает ?
Alexander Vinogradov
Ботает
Alexander Vinogradov
Не надо так пугать
Olexandr Smagliy
найс скриншот)
Roman Cinis
Наши там несколько призов отхватили кста
IB Akhrorov
При пуше 500 ошибка ( Ща все работает вроде
Hellomik
NIS или русские ?
Roman Cinis
Из СНГ в смысле :)
Hellomik
Круто просто ты записан как tsNIS
Hellomik
и я чуть офигел, подумал что ты один пацан из моей школы
Roman Cinis
Ну я тоже приз отхватил. Но фамилию из за этого менять не буду, сорян :D
Lester Enzo
cделал приложуху которая парсит тайминги и показывает слова вместе с песней с ютуба, как караоке
Lester Enzo
медаль мне теперь
Lester Enzo
есть плагин AutoSizeText. мне кажется его в любом случае везде лучше использовать. а то у меня например на смартфон шрифт выставлен большой и многие приложения даже с гугл плэй с обезанными буквами часто.
Lester Enzo
можно прикопаться, что "ну это твои проблемы, нам насрать", но я не один такой. и лучше уж сделать чтобы везде всё влезало.
Lester Enzo
и зрение у меня до сих пор 100% от того что буквы везде большие
Davron Asrorov
Надо что бы карта не скролилась?
Sasha
На оборот чтоб карта скролилась
Davron Asrorov
Боюсь что тут особо ничего не сделаешл
Davron Asrorov
Проще карту вынести
Davron Asrorov
В отдельный таб например
Sasha
Не, я и так от дизайна не много от талкнулся, не могу таким образом решить
admin
Не могли бы вы помочь мне решить проблему??????
Alexander
Не помогу но спрошу что за иде?)
admin
Я просто хочу отправить информацию в Firebase
Валерий
судя по ошибке вы не авторизованы, либо неправильно инициализирован firebase
Gorohov Valeriy
Конфликтующая прокрутка - это Bad UX, т.к. поведение для пользователя не однозначное. Думаю тут самое то, что бы отойти от дизайна.
Gorohov Valeriy
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/54280541/google-map-in-flutter-not-responding-to-touch-events"
}
]
Gorohov Valeriy
Может поможет
Sasha
+++++++++++++++ сработало)))))
Gorohov Valeriy
Но над дизайном все же подумай. Такой дизайн - это не хорошо. Я встречался с сайтами, где половина контента страницы игнорировалась, из-за того, что посередине страницы карта, которая на себя забирает скролл, и пользователи считали что это конец страницы (ведь так и делают адекватные разработчики, карта с адресом внизу всего контента).
CrazyAlarmClock
О, мы похожую аппу делаем :D
Sasha
Я вот думаю, может добавить кнопки показать и скрыть
ilx13
как перейти на другое окно если я хочу перейти из метода. в нем нету context. Navigator требует же контекст.
ilx13
auth(){ ... //тут нужно перейти на другой скрин }
Nick Sizykh
самый простой ответ - это передай его через параметры. Но это пагубная практика. Лучше auth отдельно, переход после успешного auth().
Nick Sizykh
onTap: () async { await auth(); Navigator.of(context).push(...); }
Angry TaigaFox
Спасибо за наводку ??
Олжас Сулеймен
у меня у одного шрифты подключенные через link в html не работают с весами, только 400, хотя в ссылке указаны нужные
Max
А ты точно подгружаешь всё семейство, а не один regular?
Олжас Сулеймен
да, c google fonts, на обычной страничке работает
Кирилл
Парни, привет. Кто-нибудь может кинуть в меня ссылкой на примеры, как сделать авторизацию через гугл, Фейсбук в флаттер, без участия firebase Сколько туториалов, смотрю, везде Firebase пихают. Желательно бы пошаговый какой-то туториал, т.к. в основном делал стандартную авторизацию через емайл, пароль всегда и то в вебе, а сейчас надо через соц.сети сделать здесь и склеить паззл не могу в голове. Заранее благодарю ??
Кирилл
И данный токен получается я уже буду отправлять на свой сервер, чтобы сервак понял, что за персонаж пришел за данными, верно???
Кирилл
Ясно) благодарю за ответ))
Rinat Kurmashev
как сделать blocBuilder для alertdialog content?
Rinat Kurmashev
ругается что не тот контекст
Bogdan Lukin
Провайдится по поддереву виджетов, а диалог это новое поддерево (любой роут в навигаторе отдельное поддерево) Так что тебе нужно, либо выносить провайдер выше текущего навигатора, либо прокидывать в диалог блок вручную
Rinat Kurmashev
спасибо, получилось)
Кирилл
Парни, а есть либа для авторизации с помощью ВК? Чет смотрю есть только для андроида пакет.
Дмитрий Щербаков
Так используй ее через ffi
Sergey Lavinov
[
"Привет, есть кто с iOS бэкграундом? \nкак в XCode можно нормально открыть плагин? Пока что единственный найденый способ - открывать example и через него находить файлы плагина в ",
{
"type": "code",
"text": "Development Pods"
},
""
]
Rinat Kurmashev
[
{
"type": "link",
"text": "https://github.com/kyuqw/flutter_vk_sdk"
}
]
Rinat Kurmashev
вы все ссылки просматривайте от гугла всё-таки)
Кирилл
Спасибо большое! Я чет не встречал эту либу, мне попадалась одна либа, которая работает только с Android и как-то это печалило меня, походу не внимательно гуглил.
ilx13
FlutterError (Navigator operation requested with a context that does not include a Navigator. The context used to push or pop routes from the Navigator must be that of a widget that is a descendant of a Navigator widget.)
ilx13
при переходе на другой скрин выдает такую ошибку.
ilx13
Navigator.push( context, MaterialPageRoute(builder: (context) => Dashboard()), );
Andrew
Добрый день! Начал изучать Flutter. Хочу попробовать его на небольшом проекте. И сразу возникло несколько вопросов: 1) Нормально ли работает плагин Яндекс карт? Можно ли с помощью него прокладывать маршруты? 2) можно ли сделать так, чтобы приложение постоянно работало и не выгружались? Цель – постоянно передавать местоположение смартфона. Можно ли сделать это по времени, например с 10 до 15 часов? Спасибо!
Yurii
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/44004451/navigator-operation-requested-with-a-context-that-does-not-include-a-navigator"
}
]
Andrey Gaysin
[
"Могу подсказать по второму вопросу. У меня есть задача каждые 15 минут делать синхронизацию данных с бэкэндом, для этого мне помогла библиотека ",
{
"type": "link",
"text": "https://pub.dev/packages/workmanager"
},
""
]
ilx13
не помогает. не можете описать в чем проблема?
Gorohov Valeriy
Вызываешь где?
Валерий
Можно ли у TextField убрать верхний и нижний отступы стандартные? decoration отказывается помогать, а из за этих отступов контейнер тянется сильно
ilx13
[
"child: RaisedButton(\n child: Text('Авторизация'),\n onPressed: () async{\n //print('Клик! Кнопка авторизации. '+login.text.toString());\n await authCheck(login.text, password.text);\n if (ok == 'lvl_2'){\n print('object');\n Navigator.of(context).pushNamed('",
{
"type": "bot_command",
"text": "/dashboard"
},
"');\n }\n },\n ),"
]
Yurii
ну как они пишут, нужен контекст от MaterialApp
ilx13
в переменный ок присваивается lvl_2 в методе authCheck
Yurii
или где то дерево оборвали, или наоборот берете контекст парента MaterialApp-а
Gorohov Valeriy
Это тут вообще не относится к делу.
ilx13
[
"import 'package:farovon_1/main.dart';\nimport 'package:flutter/material.dart';\nimport 'package:http/http.dart' as http;\n\nclass LoginScreen extends StatefulWidget {\n ",
{
"type": "mention",
"text": "@override"
},
"\n _LoginScreenState createState() => _LoginScreenState();\n}\n\nString ok;\n\nclass _LoginScreenState extends State {\n final TextEditingController login = new TextEditingController ();\n final TextEditingController password = new TextEditingController ();\n ",
{
"type": "mention",
"text": "@override"
},
"\n Widget build(BuildContext context) {\n return MaterialApp(\n routes: {\n '",
{
"type": "bot_command",
"text": "/dashboard"
},
"': (BuildContext context) => new Dashboard(),\n },\n title: 'Login',\n home: Scaffold(\n body: Container(\n child: ListView(\n children: [\n Padding(\n padding: const EdgeInsets.only(top: 30.0, left: 20.0, right: 20.0, bottom: 50.0),\n child: Center(\n child: Text('Фаровон',\n style: TextStyle(fontSize: 20.0),\n ),\n ),\n ),\n Center(\n child: Text('Логин')\n ),\n Padding(\n padding: const EdgeInsets.only(left: 70.0, right: 70.0, bottom: 20.0),\n child: TextField(\n controller: login,\n ),\n ),\n Center(\n child: Text('Пароль')\n ),\n Padding(\n padding: const EdgeInsets.only(left: 70.0, right: 70.0, bottom: 40.0),\n child: TextField(\n controller: password,\n obscureText: true,\n ),\n ),\n Center(\n \n child: RaisedButton(\n child: Text('Авторизация'),\n onPressed: () async{\n //print('Клик! Кнопка авторизации. '+login.text.toString());\n await authCheck(login.text, password.text);\n if (ok == 'lvl_2'){\n print('object');\n Navigator.of(context).pushNamed('",
{
"type": "bot_command",
"text": "/dashboard"
},
"');\n }\n },\n ),\n ),\n ],\n ),\n ),\n ),\n );\n }\n}\n\n\n\nauthCheck(String login, String password) {\n http.get('",
{
"type": "link",
"text": "http://192.168.0.13/eywa/api.php?login='+login.toString()+'&password='+password"
},
").then((response) {\n //print(\"Response status: ${response.statusCode}\");\n print(\"Response body: ${response.body}\");\n if (response.body == 'lvl_2'){\n ok = 'lvl_2';\n }\n }).catchError((error){\n print(\"Error: $error\");\n });\n}"
]
Yurii
поднимите MaterialApp в мейн, если есть такая возможность
Yurii
void main(), вот там где runApp(//сюда MaterialApp(home: ваш виджет));
ilx13
сделал. запускается. У меня там просто runApp(LoginScreen) был без MaterialApp. из этого такая ошибка?
Yurii
у вас контекст был build метода виджета, в котором вы создавали MaterialApp, который и не знал что у вас есть материал, потому что контекст парента(build-a)
Yurii
а вам нужен контекст, у которого парентом является MaterialApp или его чайлды по дереву виджетов
ilx13
MaterialApp( home: LoginScreen( ),
ilx13
это в мейне не зовет окно LoginScreen
ilx13
или внутрь Scaffold-a обернуть?
Dmitry Bubnenkov
А были опыты скрещивания flutter и html? Мне хочется верх страницы на flutter сделать
Dmitry Bubnenkov
С веб. Сайт делаю
Gorohov Valeriy
[
{
"type": "link",
"text": "https://dartpad.dev/b6409e10de32b280b8938aa75364fa7b"
},
"\nПример правильного формирования MaterialApp"
]
Evgeny Cherkasov
Вроде на каком то из недавних Flutter event'ов показывали как встраивать Flutter web app на веб страницу.
???????
iframe или новенький object тэги
???????
[
"Или как то так из кода (в тч левые элементы из флатера):\n",
{
"type": "pre",
"text": "ui.platformViewRegistry.registerViewFactory(id,\n (int viewId) => IFrameElement()\n ..width = width\n ..height = height\n ..src = url\n ..style.border = 'none');",
"language": ""
},
""
]
Dmitry Bubnenkov
Про object не знал, спасибо
Dmitriy
Всем привет, в колонке стоит выравнивание по центру но один чайлд, должен быть слева, обернуть его Align ?
Dmitriy
[
"еще вопросик по TextFormField, есть ли безкостыльный способ изменить цвет фона всего поля при попадании в фокус пока, что придумал такое решение ",
{
"type": "code",
"text": "widget.focusNode.hasFocus ? Colors.white : widget.fillColor,"
},
" также стоят слушатели на focusNode в которых меняется стейт."
]
Dmytro Bondarchuk
в MaterialTheme переопредели цвет активного TextField
Андрей Янусов
Всем привет! Есть ли какая-нибудь фича, которая позволит во Flutter-приложении просканировать окружающие WiFi-сети и вывести их MAC-адреса? Сталкивался ли кто-нибудь с аналогичной задачей? Хочу реализовать тип такого (скрин в сообщении)
Dima
[
"может это хз, ",
{
"type": "link",
"text": "https://github.com/alternadom/WiFiFlutter"
},
""
]
Nire Виктор
Игры на дарте стоит делать для андроид/иос?
Renat Fakhrutdinov
Стоит!)
Денис
Стоит только ради процесса и страгла))
Денис
посмотреть что будет)
Ленар Махмутов
Подскажите плиз как сделать grid view чтобы элементы в нем перетаскивать можно было?
Андрей Янусов
можно ли через flutter обращаться к низкоуровневым свойствам платформ? Мол, в Xamarin можно обращаться непосредственно к фичам Android, iOS Если нельза, то можно ли написать самописные модули на Kotlin/Swift и интегрировать их с приложением на flutter?
Evgeniy
Хелло гайз, есть тут, кто может разработать приложение под Андроид и iOS Бюджет 250к руб Разработка по договору ИП/ООО Приложение с пушами и картой yandex, по большей степени crud. Есть макеты и тз. Напишите в личку, кто магет
Nick
[
"да, на последнем GDG Spb был доклад от Евгения Кота про flutter channels, запись можно глянуть тут:\n",
{
"type": "link",
"text": "https://youtu.be/UGyIE-VSCFo?t=648"
},
""
]
Georgii Solovev
Помогите плиз. Как похожее поведение во флаттере сделать. есть виджет А: constraintStart_toStartOf= parent, paddingStart=48 а виджет Б: constraintEnd_toStartOf="A"
Georgii Solovev
Т е именно у А должен быть фиксированный отступ от левого края экрана, а Б к нему слева прилепляется
Evgenii Elchev
Подскажите. Какими виджетами можно этого добиться. 1) есть три копки в строке (row) 2) во круг активной кнопки есть рамка 3) как только активной становится другая кнопка, рамка переезжает на неё и при этом меняет размер. То есть по сути мне надо создать рамку не у кнопки, а просто рамку, поместить ее поверх кнопок (stack) и дальше как то менять ее размеры и позицию согласно активной в данной момент кнопке.
Max
Если не graphic intensive - то почему нет? Но Unity я бы всё таки рассмотрел в качестве альтернативы.
Gorohov Valeriy
Прям движение рамки нужно?
Evgenii Elchev
В этом вся суть, иначе я бы просто скрылрамку у первой кнопки и показал у второй.
Evgenii Elchev
Вот так как то
Evgenii Elchev
Тут правда не кнопки, но суть думаю ясна
Денис
так есть такой виджет) или ты просто хочешь свой сделать?)
Evgenii Elchev
Мне надо рамку таскать от элемента к элементу) это тривиальная задача на нейтиве)
Evgenii Elchev
А тут я пока не представляю как это сделать)
Денис
я бы сделал стак) и просто херачил бы по нему эту рамку)
Денис
а сверху прозрачные кнопки)
Олжас Сулеймен
и дарте ))
Evgenii Elchev
А размеры и позицию ты как устанавливал?
Олжас Сулеймен
если заданные то проще некуда
Олжас Сулеймен
а если динамика то ройте контекст
Gorohov Valeriy
Можно поговнокодить: Stack ( Row(Spacer, Spacer, Flexible (Frame)), Row(button, button, button) ) Первый Row, анимированно добавляет/удаляет Spacers
Олжас Сулеймен
можно получить позицию и размеры любого виджета
Олжас Сулеймен
относительна центра и глобально
Evgenii Elchev
И рамке их жёстко воткнуть?
Evgenii Elchev
Это ок решение? Звучит в целом как то что я хотел
Олжас Сулеймен
я брал размер виджета и позизицию и на канвасе на фоне рисовал динамичный фон
Evgenii Elchev
Ок, буду копать в эту сторону
Денис
а почему бы просто не переделать CupertinoSlidingSegmentedControl так как ты хочешь
Олжас Сулеймен
мое решение gestureDetector в нем хватаем контекст и ищем renderobject от него далее что нужно
Денис
судя по его содержимому они очень долго ковыряли его
Evgenii Elchev
Мне интересно решить задачу)
Денис
ну flutter разрабы решили ее в 1041 строку) если чисто ради процесса, то весьма интересная задача) но если на работе то кажется не рациональным)
Evgenii Elchev
Ну блин. Мало ли какую мне задачу прийдется решать. Вдруг завтра там не три кнопки в строку будут, а 9 кнопок матрицей?)
Fearless Cry
а по контексту можно получить рендер обжект другого виджета разве?
Олжас Сулеймен
или они будут разбросаны по экрану ))
Fearless Cry
или вы изнутри самого виджета это делали
Fearless Cry
или через глобал кей?
Олжас Сулеймен
мне надо было отловить толко саму кнопку
Олжас Сулеймен
не у всех они есть так что вверх по дереву как помню
Fortune's Desire
Ты там такую игру делаешь чишо
Evgenii Elchev
Нет. Я просто тренируюсь делать тоже что делал на нейтиве
Evgenii Elchev
Вот это я например на работе делал
Evgenii Elchev
Но тут все просто. У всех элементов есть фрейм, и координаты. Нажал на кнопку, получил координаты кнопки. От них высчитал координаты рамки.
Alexey
Симпатично выглядит! Как рисуются границы кнопок при переходе?
Evgenii Elchev
Это нативный iOS. Если интересно расскажу
Alexey
а... ну может быть позже, когда я соберусь с силами опять начать изучать нативный айос)
Alexey
как на флаттере планируешь это сделать?
|