Программирование : Dart & Flutter по-русски
Vladimir
хм, еще не все прочитал, но если я правильно понял то это только для андроида будет работать, получется для iOS все равно что-то придеться городить если у них нет имплементации этого алгоритма
Семён undefined
ты про systemNavigationBar?
Aleksey
Да, совершенно верно, для Айос нужно будет реализовать ответную часть канала на свивфте
Tamerlan Godzhiev
Спасибо!
Aleksey
[
"Должна быть криптографии, ищите в ",
{
"type": "link",
"text": "pub.dev"
},
""
]
Vladimir
Угу и я ж об этом
Yerassyl
как изменить цвет статус бара снизу
Arseny Gradetsky
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/49441187/how-to-change-status-and-navigation-bar-color-in-flutter"
}
]
???? ВАДИМ ????
Вот этим Flutter начинает подбешивать... зачем тогда?
admin
В родительском создай функцию, в нее помести setState и передай её своем виджету
Evgeny Cherkasov
можно ли как то сделать анимацию в stateless виджете?
Dmitry Vasilev
костыль на костыле и костылём погоняет)
Bola
А какая альтернатива?
RЯ
crypto посмотри или encrypt
Di
У меня такая трабла: использую кастом скролл вью, в нем слайвер филл ремейнинг, в нем контейнер и стэк. Далее идет вебвью и кнопка, которая всегда должна показываться над вебвью. Но она находится под ним. Какое может быть решение?
Alexey Perelygin
Никак, только если включить dev ветку флаттера и всунуть вебвью в platform view. Потому как вебвью добавляется в нативный стек поверх экрана в котором рисует флатер.
Gleb M.
[
"Привет! Кто нить пользует ",
{
"type": "code",
"text": "flutter_webview_plugin"
},
"? Делаю авторизацию в ВК. Надо поймать access_token, после ввода логина и пароля. Он находится в url после редиректа. Но проблема в том, что ссылка меняется несколько раз. Первая - это при открытии вебвью - та, которую я в коде задаю. Вторая - хз, и третья содержит токе. \n\nкак мне поймать последнюю ссылку? \n\nЯ думал может их все в один текст схлопнуть и уже после распарсить."
]
Gleb M.
Кто нибудь делал авторизацию такую, может подскажите?
Sergey Salnikov
[
{
"type": "pre",
"text": "Uri.parse(redirectUrl).queryParameters.containsKey('access_token')",
"language": ""
},
"\n\nи как получишь вытаскивай токен"
]
Gleb M.
Бомба, спасибо огромное)
Gleb M.
такой способ смотрит только на самую первую ссылку
Sergey Salnikov
так ты в колбеке проверяй есть ли токен
Gleb M.
А как это сделать?) Можешь плиз подсказать?
Gleb M.
вот у меня так выглядит все.
Gleb M.
тут я слежу за ссылкой.
Fearless Cry
ну ты в дебаге посмотри что происходит когда приходит нужный редирект
Sergey Salnikov
ты разработчик? разрабатывай направление в котором тебя подтолкнули
Andrey Gaysin
Всем привет! Подскажите, пожалуйста, как в дарте обработать multipart response? Как получить его части?
Andrey Gaysin
в доке нашел только про multipart request
Gorohov Valeriy
Как дебажить приватный SDK? В частности websocket_impl
Serge Shkurko
*_impl это же лишь интерфейс, имлиментирующий новый подход к проектированию плагинов на многие платформы
Serge Shkurko
тебе наверное надо дебажить под определенную платформу?
Gorohov Valeriy
Не совсем понял. В SDK есть websocket.dart (содержит в том числе abstract class WebSocket) и websocket_impl.dart (содержит class _WebSocketImpl extends Stream with _ServiceObject implements WebSocket c реализацией WebSocket). Вот в методы _WebSocketImpl я и не могу попасть дебагером.
???????
Нижнее подчеркивание видишь?)
???????
Нука, за що оно у нас в дарте отвечает?)
Gorohov Valeriy
[
"Мой первый вопрос посмотри\n\"Как дебажить ",
{
"type": "bold",
"text": "приватный"
},
" SDK? \""
]
Anatoly Berbeka
[
"Доброго дня!\nПодскажите, пожалуйста, есть способ ставить flutter в новую систему (catalina) без постоянных ошибок, мол, приложение скачано из интернета и не может быть запущено?\nИ так пока все бинарники flutter не запустишь вручную и не разрешишь? (idevice_id, ideviceinfo, idevicesyslog, iproxy и кто там ещё). Отключение gatekeeper что-то не особо помогло.\n",
{
"type": "pre",
"text": "sudo xattr -d com.apple.quarantine",
"language": ""
},
" тоже не спасает.\nОС - macOS, разумеется."
]
???????
Не читай @ сразу отвечай, сори
???????
Попробуй в пабспек.ямл оверрайд пакета сделать.
???????
Или сам пакет дебажить
Gorohov Valeriy
Это dart._http, дебаг packages+SDK в VSC включен, c публичными классами breakpoints и пощаговый дебаг работают, в приватными нет.
???????
Ну так я о чем? Клонируй себе его. 1) Попробуй оверрайднуть пакетик как дев локальный. 2) А еще лучше, просто напиши интересующий тебя тест для него
Gorohov Valeriy
Я может что-то не знаю, но как оверрайднуть dart/sdk?
Gorohov Valeriy
Не погу понять почему сокеты закрываются после пинга. Сервер понг отсылает. Call Stack в onDone не дает никаких данных. Хочу посмотреть что получает клиент от сервера и как декодирует, но точки остановки в _WebSocketImpl не работают.
Олжас Сулеймен
[
{
"type": "link",
"text": "https://api.dart.dev/stable/2.7.0/dart-io/HttpOverrides-class.html"
},
"\nхотя не"
]
Vladimir Brejcha
[
"В дарте есть аналог ",
{
"type": "hashtag",
"text": "#pragma"
},
" mark или //region?"
]
Vladimir Brejcha
Для разметки
Pavel
[
"Привет, опубликовал статейку про несколько нюансов, с которыми столкнулся при подготовке приложения к релизу в App Store.\n",
{
"type": "link",
"text": "https://medium.com/flutter-community/what-i-learned-publishing-my-first-flutter-ios-app-fe6089a013b9"
},
""
]
Igor Pyliavets
Привет Кто-то знает хороший пример bloc+google_map+cache ?
Madiyar Rakhman
Ребята подскажите пожалуйста как поставить черный цвет
Madiyar Rakhman
ставил так SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);
V M
statusBarBrightness под ios за это отвечает
Madiyar Rakhman
как то так нужно указывать или я не правильно делаю
Вадим
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/58270728/flutter-change-status-bar-color-in-ios"
}
]
Madiyar Rakhman
не у кого не было с этим проблемы?
Madiyar Rakhman
не было такой задачи?
Вадим
[
{
"type": "link",
"text": "https://pub.dev/packages/statusbar"
},
" \nмб чтото такое попробовать"
]
Madiyar Rakhman
Мне нужно первы экран сделать полный
Игорь Корнелли
за труд безусловно +, но содержание... Как это связано с Flutter, и что нового написано в статье, чего еще в 200+ статьях не описано? для кого статья на английском, они, что, до сих пор не знают про это все? Почему не китайский, это перспективнее =)
neikist
Немного оффтопа, но такое ощущение что скоро хорошим разработчикам кроме английского еще желательно нужно будет китайский знать)) Сколько либ от китайцев с документацией на китайском, сколько наверняка на их местных стековерфлоу аналогах ответов...
Madiyar Rakhman
он красит полностью статус бар но не текст
Madiyar Rakhman
нужно только текст
Игорь Корнелли
Дело не в этом) на самом деле, шутка-не шутка, но начинает бесить, когда читаешь книги, а они 1 в 1 мануалы, или ищешь статью, а она на всех порталах и выдача в гугле на 10 странц одинаковая, просто нужно больше иникального контента, все, что описано там - это реально части мануалов и не более, нет ничего интересного в том, чтобы читать перефразированную информацию.
neikist
Да я даже спорить не буду. Сам пока не нащупал более менее уникальную тему - ничего не публиковал. И видимо снова замолчу надолго пока другую тему не нащупаю) С другой стороны считаю что грамотные компиляции тоже нужны.
Игорь Корнелли
Вот, к примеру, мне было бы очень интересно узнать про inAppPurchases или про архитектурные приемы, или про анимацию, которая повышает UX приложения, что-то такое, что действительно Flutter как платформу подняло бы наверх популярности. Вот инфа, которая действительно важна.
Игорь Корнелли
как не соблюдай правила appStore, в любой момент обиженный индус которому на ногу наступили с утра, может все завернуть.
Игорь Корнелли
абсолютно согласен, только автор статьи точно не индус )
Игорь Корнелли
тем не менее, у меня вопрос, который меня очень беспокоит.. помогите, если в курсе, пожалуйста Это касается генерации моделей на лету из json-schema, я пытаюсь построить модульное приложение, с динамическими информационными блоками в нем, на RN это элементарно, но Flutter, есть ли инструмент, создающий модели в скомпиллированном приложении, или только какие-то приемы есть типа extend от базовой?
Игорь Корнелли
я так понимаю, что я должен создать некую библиотеку блоков и уже в ней определить все, что необходимо?
Алексей Анисов
Используй мапы и будет как жс
Игорь Корнелли
а если типизация все же нужна?
Игорь Корнелли
это выглядит как анти-патерн)
Игорь Корнелли
это все равно что писать на JS но фалам давать расширение .ts =)
Алексей Анисов
А как ты хочешь тогда динамически от жсона все это строить?
Алексей Анисов
Либо определяй все варианты типами либо не используй типы
Алексей Анисов
Либо какие-нибудь составные типы придумывай
Игорь Корнелли
видимо так и придется, кейс такой: список - итемы(разного типа в зависимости от данных)+экшены например: я на главной странице вывожу список с итемами меню но в них нет заголовка, но позже я динамически хочу поменять эти итемы на другие, где картинки нет, но есть заголовок и кнопка "favorite" и в целом логично, что можно описать эти два итема, но кто знает, сколько комбинаций мне потребуется
Игорь Корнелли
а, еще может случиться так, что мне понадобится новый роут со списком и деталями..
Алексей Анисов
А как ты это в рн сделал?
Игорь Корнелли
там просто динамические компоненты, скрытые свойства и заготовленные экшены, от объекта выстраивается компонент
Игорь Корнелли
ну очевидно6 что без заранее подготовленного чего-то мне не обойтись, но как оптимизировать тот колхоз, что получится )
Игорь Корнелли
пока приходит на ум просто роутинг с параметрами от объекта.. то есть нет страниц "Новости","Товары","Скидки", есть страницы - Список/Детали, где на основе конфига подключаются необходимые компоненты со свойствами и поведением. Я на верном пути?
Max
Тогда - кодогенерация в compile-time
Игорь Корнелли
тогда еще вопрос, есть модуль json_model , но он устаревший, а есть ли еще что-то для генерации модели по json но совместимое с новыми модулями? потому что auto_route_generator несовместим с ним никак
Игорь Корнелли
да тут ничего криминального, просто хочу приложение с конфигурируемым гуем
Max
Не отвечу. В принципе, разных кодогенераторов для JSON несколько есть.
neikist
Обычно такое в мобилках слышал server driven ui называют. Попробуй погуглить, может откопаешь чего.
Игорь Корнелли
во, скорее всего оно, спасибо
neikist
Правда оно и под натив редкость. Не уверен что под флаттер можно много накопать.
Игорь Корнелли
а чем ты пользуешься?
Игорь Корнелли
в свете SwiftUI думаю это актуально )
Max
Я вообще побаиваюсь кодогенерации)
Игорь Корнелли
у меня есть конфигуратор для приложений, я его сейчас дописываю, и мне надо некое подобие СДК
Игорь Корнелли
одна база с контентом, но несколько приложений, которые с ним как-то работают, например, регионально разделенный контент или локальзации
Gleb M.
[
"Привет! \n\nЕсть регулярка ",
{
"type": "code",
"text": "final RegExp regEx = RegExp(r'#access_token=(.+)&');"
},
"\n\nЕсть строка - ",
{
"type": "link",
"text": "https://oauth.vk.com/blank.html#access_token=7c64вавыавыавыавыавыавыавыавыа16f35bc51bff674b5241d795&expires_in=86400&user_id=155428594&state=123456"
},
"\n\nПри выполнении она выдает ",
{
"type": "code",
"text": "#access_token=7c642c96beb993c9422fasdfasdfasdfadsfasdfdasfasdf1d795&expires_in=86400&user_id=155428594&"
},
"\n\nХотя я как и в других языках я указываю то, что мне нужно в круглых скобочках. \n\nЗнает кто нить как это работает? Мне надо только то, что после первого = и до первого &"
]
Игорь Корнелли
попробуй так
Игорь Корнелли
это называется - ленивый квантификатор
Gleb M.
[
"Стало вот так: ",
{
"type": "code",
"text": "#access_token=7c642c96beb993c9422fasdfasdfasdfadsfasdfdasfasdf1d795&"
},
""
]
Игорь Корнелли
уже лучше)
Gleb M.
Лучше, но еще не идеал)
Игорь Корнелли
а после скобки удали амперсанд
Yerassyl
ребят, я изменил package name in android, и потом при запуске экран появляется на сек 1 и потом закрывает, никак ошибок не вижу. Есть варианты?
Andrii
[
"вот такой варант правильный, но ",
{
"type": "code",
"text": "#access_token=(.+?)&"
},
" тебе нужен 1й capture group"
]
Gleb M.
Есть метод отдельный?
Andrii
[
"в дартпаде\n",
{
"type": "link",
"text": "https://dartpad.dev/ffc4af07bf95fcf7b7164eb0177f2a0c"
},
""
]
Evgeny Cherkasov
[
"Мне нужно запустить анимацию в стейтлесс виджете. Я смотрел готовые виджеты ",
{
"type": "code",
"text": "Animated..."
},
", но они не стартуют анимацию автоматически. Я что то упустил? Есть какие то другие варианты кроме как делать свой виджет анимации?"
]
Арчи
Привет, как сделать, чтобы когда мало текста выглядело, как в 2 варианте, а если текста больше, чем может влезть в строку, то переносило вниз, вариант 1?
Игорь Корнелли
[
{
"type": "link",
"text": "https://dartpad.dev/"
},
"\n\nтоже готовил))"
]
Игорь Корнелли
чорт ссылки то нет
Игорь Корнелли
[
"вариант без итератора\n\nvoid main() {\n String string =\"\";\n final RegExp regEx = RegExp('",
{
"type": "hashtag",
"text": "#access_token"
},
"=(.+?)&');\n print(regEx.firstMatch(string).group(1));\n}"
]
Игорь Корнелли
ну вас с вашими дартпадами)
Andrii
что бы через пад зашарить надо создать гист с файлом main.dart, сохранить его и добавить id этого гиста после слеша заморочено)
Игорь Корнелли
почти госуслуги
Игорь Корнелли
[
"а вообще твой велосипед уже оформлен в метод класса Uri)\n\n",
{
"type": "link",
"text": "https://api.dart.dev/stable/2.7.0/dart-core/Uri-class.html#id_splitQueryString"
},
""
]
Gleb M.
Если ты про queryParameters - он не парсит строку такого вида, так как там решотка вместо вопросительного знака после path
Gleb M.
[
{
"type": "link",
"text": "https://oauth.vk.com/blank.html#access_token=808167920365eb76adsfdasfdasfdasfasdfasdfasdff71adsfasdfasdfasdf3140f1&expires_in=86400&user_id=155428594&state=123456"
}
]
Игорь Корнелли
.substring(1) =)
Gleb M.
print(Uri.parse(url).queryParameters); если до queryParameters - там нет метода substring, если после - то уже и не нужно, так как нет параметров у url такого вида.
Игорь Корнелли
вообще конечно строка с хэшом это не канон, и тема браузерная, для твоего случая может и проще использовать регулярку, потому у тебя и не работает по-человечески Uri в этом случае
Andrii
.repace("#", "?") !!
Игорь Корнелли
да как вариант
Игорь Корнелли
я думал у него просто кверистринг) а там целиком
Игорь Корнелли
только replace )
Игорь Корнелли
.replaceFirst('#', '?') даже так, потому что нет простого replace в dart
Dmitry Zakharov
[
{
"type": "pre",
"text": "var uri = Uri.parse('http://website/index.html?name=MyName&token=12345');\nuri.queryParameters.forEach((k, v) {\n print('key: $k - value: $v');\n});",
"language": ""
}
]
Dmitry Zakharov
регулярку не надо
Dmitry Zakharov
тока реплейс как сказали выше надо до
Gleb M.
в моей ссылке вместо знака вопроса решетка.
Dmitry Zakharov
ну сначала реплейс а потом уже Uri.parse
Dmitry Zakharov
и получишь че надо
Dmitry Zakharov
без костылей
Andrii
[
"ну да, если есть возможность обойтись без регулярки лучше без регулярки\nвот интересное чтиво как клаудфлейр прилег из-за регуляркочки \n",
{
"type": "link",
"text": "https://blog.cloudflare.com/details-of-the-cloudflare-outage-on-july-2-2019/"
},
""
]
Dmitry Zakharov
к слову стековерфлоу тоже из-за регулярки ложился)
Игорь Корнелли
потому что есть нативные решения =)
Игорь Корнелли
на костылях только Битрикс и ВК работают
Sergiy Vergun
[
"Всем привет! Как я могу в hive модель в одно из полей сохранить List ? На фото показана модель и как я потом сохраняю ее, оно сохраняеться, но без листа. Смотрел в документацию ",
{
"type": "link",
"text": "https://docs.hivedb.dev/#/custom-objects/relationships"
},
", но похоже что она еще не обновлена, где-то написано в модели использовать List, где-то HiveList и сейчас чтобы сделать такое: mario.friends = HiveList(persons); надо еще и указывать box, какой именно в документации не написано. Может кто-то уже сталкивался с таким"
]
Dmitry Zakharov
к сожалению их # это не по стандарту
Dmitry Zakharov
поэтому да
Дмитро
Здравствуйте, кто-то может подсказать аналог PaletteGenerator, чтобы пикать цвета изображений. Просто этот пакет очень медленно определяет
Sergey Salnikov
Чем тебе Uri.parse не приглянн?
Dmitry Zakharov
кстати кто юзает flutter_map я юзал его с open street map
Dmitry Zakharov
опытом был не доволен)
Dmitry Zakharov
заюзал 2gis как провайдер тайлов)
Dmitry Zakharov
и у меня огонь как работает)
Dmitry Zakharov
быстро грузит, ничего не тупит
Gleb M.
да приглянулся. Просто когда споткнулся на том, что он парсит только там где ? а не # первое в голову пришло - регулярка, после уже replace был.
Игорь Корнелли
а что по ограничению карты по городам? у 2гис же не так много их, можно сказать практически нет )
Dmitry Zakharov
у меня простой юз кейс: 1) показать 1 маркер в регионе подмосковья
Dmitry Zakharov
поидее у них весь мир
Dmitry Zakharov
но не все зумы в некоторых странах
Игорь Корнелли
у 2-gis весь мир?
Dmitry Zakharov
ну зум 14 какой-нить думаю да а если 16 скажем то думаю Россия
Dmitry Zakharov
ну примерно так я думаю - не тестил
Dmitry Zakharov
протсо на ближнем востоке случайно заметил
Игорь Корнелли
кажется мы про разные 2гис говорим))
Dmitry Zakharov
я юзаю их тайлы с flutter_map а оказалось 2gis юзает leaflet под капотом и поэтому они так же грузят тайлы
Игорь Корнелли
возможно, он как рендерер быстрее работает, спору нет
Dmitry Zakharov
ну для России кароче норм думаю
Dmitry Zakharov
В ноябре 2019 года в "2ГИС" появилась глобальная карта России и появилась возможность построить междугородний маршрут.
Dmitry Zakharov
ладно кароче мне пока норм) возможно для более чем России не подходит
Игорь Корнелли
щааасьте привалииило!
neikist
Гуд, иногда не хватало
Rinat Kurmashev
как обрабатывать willpopscope с bloc?
Dmytro Bondarchuk
а в чём именно проблема?
Rinat Kurmashev
всё ок, понял как делать
Dmytro Bondarchuk
не благодарите????
Р????????????????? ??????????????????у???????? ????????????????? К????? ????????????? ??????????????????у?????????????? ?? ?? ???
[
"Вечер добрый! Думаю, я правила не нарушаю в самом чате) В общем прошу всех подписаться на мой телеграм-канал, который посвящен Dart и Flutter. Буду стараться как можно чаще выкладывать различные материалы. Вот ссылка ",
{
"type": "link",
"text": "https://t.me/flutter_resources"
},
" \nВсем добра)"
]
Max
а десктопное приложение на flutter под виндой можно скомпилить под macos или linux?
Max
Десктопное приложение на Flutter в теории можно скомпилировать под любую десктопную ОС. А на практике - даже под одну задолбаешься (
Max
я раньше под винду компилил с винды, все ок, но чет вот для другой ОС не компилится, думаю стоит ли иметь с этим дело или перейти на QT все же...Правда приложение которое я компилил это демка была и она что-то не понравилась мне сильно, низкое разрешение какие-то шрифтов было и тормозило жутко
hans linger
а каким образом компилил?
Max
На мой взгляд, для десктопа пока сыровато. Я бы не торопился.
Max
flutter build windows
Max
Ок, буду тогда на Qt писать. спасибо всем
Vladislav B
На qt MVC уж больно запарный
Serge Shkurko
а собственно какой функционал требуется?
hans linger
[
"ну вот мой мне сообщил ",
{
"type": "italic",
"text": "\"build windows\" is not currently supported"
},
""
]
Max
да я раньше писал на QT, просто это было лет 5 тому назад, вспоминать все заново теперь, а верстка на flutter хоть и похожа на спагетти код, но все же привык к ней да и больше стала нравится в сравнении с html+css (на electron писал тоже)
Vladislav B
Qml в этом плане мне нравится до сих пор
Serge Shkurko
подключал flutter_desktop как плагин к основному sdk ?
Max
да просто просматривать IP камеры, аналог CMS сделать так скажем, не сложно, но хотелось быстро проблему решить
hans linger
не, я пока до десктопа не добирался
Serge Shkurko
flutter на interact event сказали что в основной пакет сдк пока включили только мак
Vladislav B
Но попробуйте использовать SQL с qml
Max
Мне кажется, в вебе будет проще
|