Программирование : Dart & Flutter по-русски
Сергей
Похоже то, что нужно, спасибо??
amanov
Всем доброго дня, может кто нибудь сталкивался с проблемой что приложение с кода запускается хорошо то есть на дибаге, но при сборке то есть на рилизе многие виджеты не показывает
Egor Gorbachev
Кто знаком с null safety, объясните пожалуйста почему нужно использовать восклицательный знак в этих случаях? Я ведь уже выполнил проверку, что переменная != null. Это называется сужение типов (type narrowing в TypeScript) и очень странно, что это не работает в Дарте
Andrew Vasilevskii
Ну тут пока туповат компилятор )
S R
Вот такая ошибка при скачивании, я знаю что это связано с прокси , но его никак не исправить , так как у нас в стране все ВПН и прокси блокируются
S R
Вообщем хочу сделать apk , а в итоге вот что:
Anton Nadtoka
а если попробовать по ссылке скачать?
S R
Скачал, но что дальше??
S R
Надо же его куда то вставить
S R
В настройках указываю путь, но он всеравно пытается скачать его заново
Anton Nadtoka
я имел ввиду что по ссылке выше нет блока на домен и др
S R
Но при клике скачивается zip архив
Anton Nadtoka
[
"попробовать по ссылке из гугла - ",
{
"type": "link",
"text": "https://stackoverflow.com/questions/27467155/could-not-install-gradle-distribution-from-https-services-gradle-org-distribu"
},
"\nкак вариант еще распокавать самому и положить куда нужно (можно найти) а потом синхронизировать"
]
Alexandr Drobyshev
[
"кто нибудь юзает ",
{
"type": "link",
"text": "https://pub.dev/packages/crop_your_image"
},
" ?\nфризит дико UI в момент когда сам виджет Crop должен отрисоваться"
]
Alexandr Drobyshev
набросал тестовую версию, тупо черный экран секунд 5
Alexandr Drobyshev
то есть после FILE READ COMPLETE. и до того как виджет отрисуется
Alexandr Drobyshev
я думал долго чтение байтиков, вынес в изолят но толку нет, оно мгноверно проходит, фризит именно уже после того как loading false станет
Alex Tikhonov
доброго бобра. погружаюсь в dart, ковыряю Hive, есть проблема которую не понимаю. простое описание вызова и работы с HIVE:
Alex Tikhonov
при этом, попытка упростить работу с hive приводит к таким ошибкам
Alex Tikhonov
подскажите куда копать
Nikolay Korolev
да выноси не выноси в изолят не поможет, т.к. это вроде изолят выполняется в UI threade , поэтому только ставить loading )
Alex Wow
Метод put был вызван на нуль
Alex Wow
Пользуйся дебагом И увидишь где у тебя ноль
Alex Wow
В этом нет ничего постыдного отдалиться )
Илья Высоцкий
а как мне проверить что в текстфилд работает paste? я копирую в эмуляторе номер, захожу в приложение , а как теперь инициировать paste?
Alexandr Drobyshev
Так экран чёрный после loading = false
Alexandr Drobyshev
Ещё 5-10 сек
Alexandr Drobyshev
При чем тупо весь экран а не только место кропа. Даже тулбара нет
Alexandr Drobyshev
Хотя он выше на два ыиджета
SlavikG
loading ? ProgressBar : Container()
Alexandr Drobyshev
Я ещё раз говорю
Alexandr Drobyshev
После того как loading станет фальш
Alexandr Drobyshev
Потом вся беда
Alexandr Drobyshev
Пока лтадинг тру все крутить
Alexandr Drobyshev
А потом тупо фриз когда уже бар убран
Nikolay Korolev
с кропом не работал, но судя по коду _croppedData где сетапится, есть ощущение что во время сетапа _croppedData и происходит эта вся бага
Nikita Kanunov
[
"Добрый день, как правильно использовать json_serializable для множество классов связанных с одним?\n",
{
"type": "link",
"text": "https://pastebin.com/ru0en9nj"
},
""
]
Alexandr Drobyshev
Она всегда нулл она не при чем пока речь до нее
Alexandr Drobyshev
Кропдата юзает уже после обрезки
Alexandr Drobyshev
Сейчас тупо null
Eldar
Ребя ListView.builder преобразовать в List
Jeka
привет как через NumberFormat, добавить символ процента в конце? число приходит как 100, а не как 1
Alex Wow
Как в первом классе говорят ,поставить %
Alex Wow
[
{
"type": "link",
"text": "https://pub.dev/documentation/intl/latest/intl/NumberFormat-class.html"
}
]
Jeka
Спасибо, но я уже смотрел, я не могу понять как паттерн написать, что писать вместо значения звездочку?
SlavikG
print(NumberFormat.percentPattern(languageCode).format (60.23));
Jeka
мне 100 приходит, а не 1, такой способ вернет мне 6,023%
SlavikG
наверное стоит математикой воспользоватся
Jeka
я думал есть какой-нибудь элементарный способ добавить процент в конце
SlavikG
Выводить как строку
Jeka
дак проблема в том что я график использую(Syncfusion) и я не могу напрямую обратится к тексту на оси, я могу его только форматировать через NumberFormat
Халилилло
Привет всем! Как сделать уведомление новых сообщений как в телеграмм? Можно ли это сделать без сокета? Спасибо большое!
SlavikG
А как в телеграм?
Халилилло
Приходят же push уведомления когда есть новые сообщения
Халилилло
Flutter local notifications вы имеете в виду?
Халилилло
Я это сейчас пробую. Не получается отправить респонс каждый час. Отправляется один раз и это значение крутится каждый час:)
Халилилло
Помогите пожалуйста с этой проблемой
SlavikG
[
"Самое простое ",
{
"type": "link",
"text": "https://pub.dev/packages/firebase_messaging"
},
""
]
SlavikG
Но нужно и на сервере подключить
sergey moskvitin
господа проконсультируйте чайника
Халилилло
То есть отправлять запрос на мой бэк энд через firebase и оттуда ссылать уведомление?
sergey moskvitin
Вопрос по размещению и обновлению приложения в apple store написанного на flutter. На сколько это трудоемкий процесс?
Vasily Laushkin
Ничем особенно не отличается от обычных ios-приложений
SlavikG
Так же через xcode
sergey moskvitin
Я заказчик. НАм сделали приложения и говорят что каждое размещение/обновление занимает минимум 3 часа.
sergey moskvitin
Приложение из 5 экранов
SlavikG
Если приложение уже в апп сторе, такое может быть, проверка эпл, если тест флай, то там быстрее около часа максимум
sergey moskvitin
Просто у нас еще куча задач по этому приложению. Пытаюсь понят с какой периодичностью выпускать релизы.
SlavikG
Смотря какой график работ
SlavikG
Если три месяца, раз в неделю можно в тестфлай отправлять
SlavikG
Если всего три недели, раз в пару дней
Nikolay Korolev
кто знает можно ли с Matrix4 данных нарисовать прямоугольник ?)
sergey moskvitin
Господа, а может кому интересен проект. Нужна поддержка и развитие мобильного приложения для жильца МКД.
SlavikG
[
{
"type": "link",
"text": "https://t.me/dartlang_jobs"
}
]
sergey moskvitin
У нас сервис для автоматизации УК и ТСЖ. Пишем к нему мобильное приложение. В целом все задачи это получать что то из сервиса через api и отображать.
Vyacheslav
Всем добрый день! Подскажите по Navigator 2, есть такая проблема: когда делаю переключение темы, происходит перестроение всего дерева виджетов, то есть снова уходит на первую страницу в списке пейджей... А мне нужно оставить приложение там же, откуда переключил тему. Вопрос вот в чём: это неправильная реализация с моей стороны, или всё таки Navigator 2 так и работает?
Vitalii Ishkevych
Какая замена для устаревшего FlatButton?
Michael Lazebny
TextButton
Сергей Переходов
textbutton
r
подскажите пожалуйста, как из этой точки переключить пользователя на логин страницу, когда еще нет контекста
r
Сессия может отгнить в любой момент, хочется одно место, в котором мы разлогиниваем пользователя.
Alexandr Drobyshev
Ну значит вам нужено тут ка кто достать навигатор, можете попробовать создать кей через который будите обращаться типа if (navKey.currentState != null) navKey.currentState!.pushNamed
Alexandr Drobyshev
но раз вы хотите управлять навигатором то конект уже должен быть
Alexandr Drobyshev
а значит просто можете поместить ваш код туда где етсь навигатор)
r
Уже разобрался, спасибо
Alexandr Drobyshev
мое первое сообщение прочтите) про != null
Alexandr Drobyshev
я бы добавил)
Alexandr Drobyshev
! - говрит что вы уверене что он етсь, а вы же сами скзаали что еще нет) вдруг нет? нафига ошибки)
r
[
"а так \nnavigator.currentState?.pushNamed(\"",
{
"type": "bot_command",
"text": "/login"
},
"\");"
]
Alexandr Drobyshev
ну можно и так)
Alexandr Drobyshev
суть в том тчоб не было нулл точнее если был то не было ошибки)
Aleksandr
есть какой нибудь эмулятор помимо avd?
Aleksandr
поставил genymotion, а он изображения не рендерит и зависает
Aleksandr
а avd вообще синий экран раз в 30 минут вызывает))
Evgeny Sedanov
[
"Кто-нибудь знает как ограничить влияние ",
{
"type": "code",
"text": "AutomaticKeepAliveClientMixin"
},
"?\n\nPageView\n ",
{
"type": "code",
"text": "TabBarView"
},
"\n Widget\n\nУ Widget есть ",
{
"type": "code",
"text": "AutomaticKeepAliveClientMixin"
},
", но при этом PageView тоже не перестраивает TabBarView."
]
Andrey
я бы не сказал, что это сильно напрягает, т.к. кодогенирация происходит в фоне, автоматически, гораздо важнее, что общая концепция весьма удобна и понятна
Семён undefined
проще navKey.currentState?.pushNamed тогда
Alexandr Drobyshev
Так и написано ниже
Yakov K.
Видимо, не работали в больших проектах где модели на фризед и стейт-менеджмент на MobX :) Это больно
Michael Bazilique
[
"ку-ку ребят. \nХочу подключить Sign-in with Apple. \nНа Firebase проекте логин включен. \nПри запуске: \n```\n",
{
"type": "code",
"text": "final appleCredential = await SignInWithApple"
},
".",
{
"type": "italic",
"text": "getAppleIDCredentia"
},
"l",
{
"type": "code",
"text": "(\n scopes: [\n AppleIDAuthorizationScopes.email,\n AppleIDAuthorizationScopes.fullName,\n ],\n nonce: nonce,\n)"
},
";\n``` получаю такой диалог, а в логах ексепшн: \n",
{
"type": "bold",
"text": "[core] Authorization failed: Error Domain=AKAuthenticationError Code=-7022 \"(null)\""
},
""
]
Michael Bazilique
может я где-то ключ не засунул? в XCODE capability есть:
Andrey
пробовал только на маленьких проектиках :)
Alexandr Drobyshev
Кодогенерация круто) пока автор её не бросит поддерживать ) вон у меня либы в проекте 2 в 18 году заброшенные) на нулл сафети сам переносил. А ечди б фризед забросили я б уволился)
Yakov K.
Во фризед терпимо, в mobx её слишком много)
Egor Gorbachev
[
"Вот завезут метапрограммирование - не нужна будет кодогенерация: ",
{
"type": "link",
"text": "https://github.com/dart-lang/language/issues/1482"
},
"\n\nКодогенерация - вынужденная мера для Дарта. Обычный браузерный Mobx просто использует прокси для свойств и методов"
]
Yakov K.
Я работал с MobX в TS, да :) Не было бы кодогенерации – только его бы и юзал
Sergey Riabinin
А почему доктор показывает одну версию флаттера, а в нижней строке vscode показывается другая?
Bolat
кто-нибудь знает как сделать TableRow onTap?
Dima Kotlyarov
Обернись в гестурдетектор
Bolat
там только его виджеты можно оборачивать, я их все обернул, не работает
Anton kk
Всем привет, кто-нибудь юкассу подключал, они вроде выкатывают нативные сдк? Есть необходимость лезть в натив, или есть какое-то решение
Бекзод
Всем привет, как можно хэндлить действие, когда юзер свайпает чтобы вернутся назад?
I V ?-N
Наверное нужно чекать lifecycle
I V ?-N
Аля onPause, onFinish... Не помню методы
Бекзод
а можете пожалуйста ссылку отправить ?
I V ?-N
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/widgets/WidgetsBindingObserver-class.html"
}
]
Халилилло
Всем привет! Уже 2-ой день не могу решить проблему с уведомлениями:( С бэкенда приходят список кандидатов, нужно сделать так что бы приходило уведомление если в список добавятся новые сотрудники. Как могу это реализовать? В fcm получается только в ручную отправлять
Dmitry M
Обернуть в WillPopScope, вроде так
Бекзод
пробую но никак не вызывается метод onWillPop
Dmitry M
Сегодня юзал, работало, скинь код
I V ?-N
Слушать сервер и открывать локальные пуши
Халилилло
Как слушать сервер когда приложение закрыто/свернуто? Можно ли слушать сервер через firebase?
Ivan
С бэкенда тогда пускай отправляют пуши
I V ?-N
Можно попробовать через firebase function, но насчёт этого я не знаю
Халилилло
Я думал что только через firebase можно отправлять пуши
I V ?-N
Создавать сервисы, которые будут слушать твой бэк
Ivan
Если твой бэкенд - фаербейс, то как написали выше, пиши в функциях
I V ?-N
Да вроде с бэка можно пуши отправлять
Халилилло
К сожалению бэк не фаербейс:(
Dmitry M
Ну у тебя тут нечего не происходит, а что хотел то, добавь например prit() чтобы проверить
Ivan
Тогда вообще проблем не должно быть с бэка отправлять
Халилилло
Поговорю тогда с бэкендщиком
I V ?-N
[
"На ",
{
"type": "link",
"text": "asp.net"
},
" без проблем отправляются пуши"
]
Dmitry M
false напиши вместо true
Ivan
Да даже на дарте без проблем
Бекзод
этот виджет выводит карту и нужно скрыть navigation bar внизу. а когда юзер выходит из карты то нужно вернуть navigation bar.
Бекзод
navigation bar вставляется в main.dart
Халилилло
Можете скинуть какой нибудь примере или статью?
I V ?-N
Ты когда делаешь пуш пейджи, то слушай pop этой же пейджи
Ivan
В доках фаербейс есть, под разный бэк, под web
Бекзод
и в main.dart я слушаю AddressPickerBloc и в зависимости от стейта этого блока скрываю navigation bar
Dmitry M
Вместо return true, напиши return false
Дмитрий Щербаков
return Future.value ...
I V ?-N
Ты открываешь страницу с картой и хочешь скрывать nav bar, а когда возвращаешься то снова показывать?
I V ?-N
Ну блин, просто через await открывай
I V ?-N
Перед await скрывай nav bar, а после показывай
I V ?-N
await Navigator.pushNamed...
Бекзод
а после скрываю nav bar ?
I V ?-N
Перед скрываешь, после показываешь
Бекзод
скрываю nav bar await Navigator.push показываю nav bar ?
Бекзод
пока не пробовал так, но я же показываю nav bar после пуша, разве экран c картой не обновится после этого и снова появится nav bar?
I V ?-N
Предложили много разных вариантов, посиди, попробуй
Бекзод
да, спасибо большое за ответы
Максим
[
"Подскажите, а можно ",
{
"type": "code",
"text": "StatefulWidget"
},
" вызывать ",
{
"type": "code",
"text": "build"
},
" не при инициализации класса, а по запросу ?"
]
r
Какими проблемами черевата кодогенерация? Я только начал проект, но мобх и изи транслейшн вроде подружил, а другие проблемы пока неочевидны.
Andrey
канешно, setState() в помощь
Максим
[
"а то как-то странно исользовать при нажатии на кнопку new MyClass() , где MyClass ",
{
"type": "code",
"text": "extends"
},
" ",
{
"type": "code",
"text": "StatefulWidget"
},
""
]
Alexandr Drobyshev
подкажите, есть готовая либа android/ios чтоб вернула список файлов чтоб свой пикер сделать картинок в флаттере
F Dev
сделал враппер для FutureBuilder в котором в зависимости от состояния меняю виджеты. при инициализации страницы ловлю такую ошибку на секунду, далее когда приходят данные с сервера все становится нормально
I V ?-N
Если у тебя разрастается проект и станет очень много компонентов, которые зависят от кодогенерации, то придется очень долго ждать генерацию кода)
Alexandr Drobyshev
[
"if (",
{
"type": "link",
"text": "snapshot.data"
},
" !=null) { return text() }\nreturn CircularProgressIndicator()"
]
Alexandr Drobyshev
ну и где длинна тоде надо
Alexandr Drobyshev
я б весь лист обернул
Alexandr Drobyshev
ну или data!.length заменить на data?.length ?? 1
Alexandr Drobyshev
чтоб 1 итем рисовало с лоадером
Alexandr Drobyshev
но я не вывожу лист весь если нет данных, а вывожу лоадер
I V ?-N
А разве hasData() не одно и тоже?)
Alexandr Drobyshev
ну у нет нет там хасдата где текст
Alexandr Drobyshev
я не видел что это лист сразу
I V ?-N
А, на первом скрине да, не заметил его)
Alexandr Drobyshev
кароче пофиг хас дата или не нулл одно и тоже. главнео суть)
I V ?-N
Хотя этот же suces возвращается когда hasData true
I V ?-N
И по идее там проверки для листа не нужны
r
Только из этих соображений? Ой, я застал gwt/gxt и сборку на два часа. А тут сгенерированный код можно в репу заливать :)
I V ?-N
Да, а если тебе нужно будет перегенерить?)
Илья Высоцкий
Подскажите как сделать диалог в центре, но чтоб при выезде клавиатуры он не уезжал вверх?
Dmitry M
В свойствах Scaffold, resizetoavoidbottomsheet: false
Alexandr Drobyshev
я не сомтрел нижнюю часть) я не люблю такой код) если уверен что дата не нулл тогда надо преопределить это) что оно не нулл, чтоб оптмо не гадать) или проверяь при выводе) напрмиер success: (T data) => ...что data уже не нуллабле) а то путаница) ну знаичт где то в другмо месте ошибка еще есть)
Alexandr Drobyshev
так ток там successне калбек
Alexandr Drobyshev
тут ListView.builder будет вызван сразу, до того как будет проверка hasData
Alexandr Drobyshev
вообещем Widget success надо передлать типа Function (BuildContext, T data) и делать так success: (context, data) => ListView.builder()
Alexandr Drobyshev
а чейчас чтоб создать виджет Wrapper в него надо пердеать уже готовый виддет в success и смысла нет попросту, ибо бильдер будет вызван до создания Wrapper класса и попадает деже если данных нет
Андрей Кузьмин
Помогите пожалуйста, не собирается проект
|