Программирование : Dart & Flutter по-русски
Eugene
[
"Всем привет, кто-нибудь сталкивался с такой проблемой в AS, как только упоминаю ",
{
"type": "code",
"text": "StreamSubscription"
},
" или другое из dart:async то dart analysis виснет напрочь"
]
Олжас Сулеймен
jsonDecode(responseBody) as Map ;
Илья Максименко
пробовал перезагружать?)
Илья Максименко
invalidate caches
Илья Максименко
работает в 99 % проблем с ас
Eugene
Ну да, после перезагрузки он снова начинает работать
Timun
Есть плагин android_alam_manager, судя по странице на pub, он должен перепланировать задачи при перезагрузке устройства, соответственно, только для андроида
Олжас Сулеймен
map у словаря требует два аргумента (key, value) => ... ; но видимо ты ожидаешь лист словарей а не словарь
Илья Максименко
в меню file поищи
Илья Максименко
нужно синенькую нажать
I V ?-N
Да пробовал, после перезапуска задачи слетают (
Eugene
Возможно периишены в манифесте не прописаны
I V ?-N
[
"Всё что можно прописал\n",
{
"type": "pre",
"text": " \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n ",
"language": ""
},
""
]
I V ?-N
[
{
"type": "pre",
"text": "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n",
"language": ""
}
]
Eugene
А ещё все эти штуки не работают на китайцах из коробки, в общем, если есть вариант не использовать, то лучше не использовать
I V ?-N
А альтернативы нет?
Eugene
Я имел дело c flutter local notifications, который использует тот же механизм, так вот китайцы убивают полностью процессы приложения если его не добавить в список исключений
Eugene
[
{
"type": "link",
"text": "https://dontkillmyapp.com/"
},
" тут эта ссылка уже была"
]
I V ?-N
Так когда процесс приложения убиваешь, то таск всё равно остается до перезапуска..
I V ?-N
Не вижу логики в их Battery Saver
I V ?-N
Сейчас на эмуляторе попробую
Timun
[
"Тебе принципиально именно AlarmManager? В github issues была ссылка на плагин для периодических задач ",
{
"type": "link",
"text": "https://github.com/fluttercommunity/flutter_workmanager"
},
""
]
I V ?-N
И workmanager пробовал, он вообще не выполнял таски
Eugene
От вендора зависит, например в Самсунге можно просто смахнуть приложение из списка запущенных, это сохранит таски. А можно зайти в настройки приложения и нажать "Остановить", тогда всё остановится
I V ?-N
Мне принципиально нужно чтобы таск работал при завершении прилки и даже после перезапуска устройства))
I V ?-N
Уже второй день гадаю
Eugene
А у китайцев во главе экономия батареи, поэтому они зачищают все фоновые процессы, ну за исключением топовых приложений
Eugene
Мне пришлось в приложении делать специальный экран с инструкцией и системой проверки именно для китайцев, дичь короче
Roman Vasiliev
ну одной строчкой это не делается, во всяком случае нативно
Roman Vasiliev
и если насильно убить тут любое приложение не выживет, в android во всяком случае
Eugene
Так они насильно убивают (китайские телефоны), у них режим энергосбережения по умолчанию включен
I V ?-N
Ага, походу сегодня буду нативно пробовать писать...
Roman Vasiliev
Просто нужно определить шо це таск, и обработать все возможные варианты как его можно вернуть к жизни, пуская в изоляте
FantasyOR
Что вы думаете о BLOK в реальном проекте так ли это удобно и быстро в реальном проекте, кто пробовал, на что напоролись?
Sapar Jumabekov
я сейчас пишу первый свой проект на флаттере, на всех страницах использую блок с моделькой. Никаких проблем нету, просто удобнее логику отдельно вести
Roman Vasiliev
Мне удобно
Roman Vasiliev
Неудобно только может связи между типами стейтов и ивентов строить, если хочется неплоскую их структуру определить, но такое веселье можно абсолютно со всем устроить)
Sapar Jumabekov
я стейты и переменные все вытаскиваю в отдельную модельку, получается блок не хранит это все
I V ?-N
Пппц. Вы были правы. На эмуляторе alarm_manager работает идеально. Тогда как китайцу сказать чтобы не убивал таск после перезапуска?)
Sergey ?
[
"добро пожаловать в мир разработки для Android\n",
{
"type": "link",
"text": "https://dontkillmyapp.com/"
},
""
]
Eugene
[
{
"type": "link",
"text": "https://dontkillmyapp.com/"
},
" только объяснять пользователю и инструкций тьма, а ещё они с обновлением могут измениться"
]
I V ?-N
Так это ручками, а программно ?
Sergey ?
ждать андроид 11, там гугл пообещали приструнить вендоров в этом плане. Добавили дополнительный CTS тесты
Eugene
программно можно определить вендора и сообщить пользователю, что он зря купил китайца
I V ?-N
Так а как тогда работает сервис допустим OneSignal? Он же остается в тасках после перезапуска
Eugene
Не знаю как OneSignal, но топовые приложения они включили в белый список. Тем не менее в интернете куча статей по типу "Не приходят сообщения в ВК на Xiaomi"
I V ?-N
Ок, так заказчику отвечу, подождём андроид 11))
????
да даже не сяоми а у тех же самсунгов и других "порядочных" вендоров если включен сберегатол памяти, он может грохнуть и аларм менеджер и все чо хош. а на 11й увы далеко не все обновиться ))
Kirill Nepomiluev
Всем привет. Не у кого такого не было? Крашится релиз версия ios при прокрутке стандартного list.view builder. В дебаге все норм в андроид тоже и в релиз и в дебаг все норм. Listview.builder находится внутри streambuilder. В нем текст и изображения, изображения из storage firebase, текст и ссылка на изображения из firestore.
FantasyOR
подтверждаю, на ксяоми (16 год) не приходят сообщения вообще любых мессенджеров и даже если в настройках сказать что не нужно вырубать ничего... после перезагрузки эта галочка слетает
Sergey ?
[
{
"type": "link",
"text": "https://www.reddit.com/r/androiddev/comments/hk3hrq/were_on_the_android_engineering_team_ask_us/fxg9y4f"
},
"\n??"
]
Alexander PhatoM
можете подсказать, как центрировать элемент по нажатии в listview? Я понимаю что через scrollcontroller, но не получается ровно центрировать...
I V ?-N
В общем да, alarm_manager нормально работает. Добился своего результата, дав разрешение на авто запуск приложения на xiaomi
I V ?-N
Flutter красавчик, сяоми как всегда 'топ' за свои деньги.
M_SM
как передать image через post ?
I V ?-N
Ребят, кто-то пробовал в flutter_local_notifications показать картинку из интернета ?
I V ?-N
Там просит чёртов AndroidBitmap, с обычного Image не получается его получить (
Increment
Ребят. Всем привет. Подскажите, как в консольке дарта считать переменную? можете просто подсказать команду / ключевые слова для поиска / ссылочку на инфу. а то что-то роюсь, но ниче не робит(
MMM Stefan
[
{
"type": "link",
"text": "https://code-maven.com/slides/dart/read-from-stdin"
}
]
Increment
Спасибо большое
MMM Stefan
может кто обьяснить что значит двоеточие, и как принято создавать компоненты отдельно? я вот пытаюсь применить опыт RN, но не прокидываются пропсы, как это принято делать в флатере, просьба в мануалы не отправлять, утонул в них честно гвооря
MMM Stefan
[
"final co = (text, props) => Text(text ..props);\nfinal e = co('dfgg', Align: ",
{
"type": "link",
"text": "TextAlign.center"
},
");"
]
Урусай
Анпакинга аттрибутов в дарте нет
MMM Stefan
эм... а как же быть? напр. я хочу создать компонент кнопку, навешать на нее всяких стилей, применить в нескольких местах с незначительными отличиями
MMM Stefan
просто не могу найты как же принято делать, сильно не хватает нечто вроде best practicies
MMM Stefan
ну или просто киньте кодом, там уже разберусь
DVS (Read The F.ng Manual) Studio (NoHello)
[
"Господа, в дарт-джобс классная вакансия нарисовалась от ",
{
"type": "link",
"text": "itis.team"
},
". Очень хотим классных людей в команду, залезайте - поболтаем"
]
tdesc
что интересного в вакансиях без вилки?
Урусай
[
"Text('text', textAlign: ",
{
"type": "link",
"text": "TextAlign.center"
},
") вот тебе твой пример"
]
tdesc
кого интересно рассчитываете найти )
DVS (Read The F.ng Manual) Studio (NoHello)
Мид, мид+ в идеале
Илья Цымбалюк
Ребят подскажите пожалуйста. Как на скрол повесить условия? Что если проскроленно 100 пикселей допустим, делать setState . scroll.position.extentAfter работает только с проверкой на 0, как можно по другому сделать?
MMM Stefan
извиняюсь, а откуда возьмутся мидлы если флатеру год с хвостиком?
Kit Khilobok
[
{
"type": "link",
"text": "https://pastebin.com/R7rzmLtX"
},
"\n>напр. я хочу создать компонент кнопку, навешать на нее всяких стилей, применить в нескольких местах с незначительными отличиями\nНу вот пример такой кнопки"
]
DVS (Read The F.ng Manual) Studio (NoHello)
Ну как вариант из других направлений, и кто уже нормально вкатиться.
Andreu
Май 2017 - год с хвостиком?
Kit Khilobok
Я, вот, с бетки флаттера на нём сижу
Andreu
Я ещё готов был услышать данную претензию хотя бы в адрес сеньоров, но не мидлов точно)
Егор Шепелев
Недавно видел видос с годовасиком, зовущим себя синьером. Не знаю, смеяться или плакать
MMM Stefan
альфа да, 2017 год, нестабильный релиз 2018 год
Andreu
сгоняй в епам)) там в среднем 2 года и ты сеньор) у них странная политика очень
Kit Khilobok
Вообще такое сливерами делается, ну а так можно yourScrollController.offset Ну и да, а в чём проблема проверку на 0 делать?)
Олжас Сулеймен
виджеты как были так и остались
MMM Stefan
а давайте меня возьмёте на работу, я уже неделю как учу флатер, а там за пол годика и до зарплаты сенйора)))
Олжас Сулеймен
может у него подписка на скроле срабатывает только в крайних случаях
Илья Цымбалюк
так мне нажно раньше это сделать чем с 0
Илья Цымбалюк
что за сливеры?
Олжас Сулеймен
SliverAppBar
Олжас Сулеймен
и гугел те в помощь
Kit Khilobok
[
"Ну как пример да, вообще не только аппбар, там много всяких классных виджетов\n",
{
"type": "link",
"text": "https://youtu.be/R9C5KMJKluE"
},
""
]
Maks Andrienko
подскажите, а почему иконка приложения на андроиде меньше становится (типо как вжимается), а на ios все норм(
Олжас Сулеймен
мне вот проще без них, зато понятно и без магии ))
Maks Andrienko
Вот такая дичь(
Andreu
с помощью генератора иконки делаешь или руками?
Kit Khilobok
Без них сложное взаимодействие со скроллом не сделаешь без косылей, типа, чтобы определённые элементы к верху прилепали, определённые скрывлаись при скролле и всё это плавно работало
Maks Andrienko
[
"генератора\n",
{
"type": "code",
"text": "flutter_launcher_icons: ^0.8.1"
},
""
]
Kit Khilobok
[
{
"type": "link",
"text": "https://romannurik.github.io/AndroidAssetStudio/icons-launcher.html"
},
"\nЯ вот тут иконки генерю для дройда"
]
Andreu
а что за сервис андроида
Andreu
а то бывают же приколы версии
Andreu
версия, пардон, т9
Maks Andrienko
8.1 чистый андроид
Andreu
я помню что делал в таком случае
Vitaliy Snitko
Народ, а так код можно писать?
Andreu
fan белым и это вся иконка, а background-color делал бы ваш фиолетовый
Урусай
[
{
"type": "mention",
"text": "@vitaliy_snitko"
},
" можно"
]
Урусай
Но не рекомендуется подобным увлекаться
Maks Andrienko
у меня ресурс вообще весь залит фиолетовым и только надпись там а он ее вжимает так
Kit Khilobok
Каждый строчит как он хочет, но если говорить про общепринятый стиль, то не рекомендуется
Andreu
ну якобы все что есть у png - белый текст
Andreu
а уже background цвет в настройках указать
Vitaliy Snitko
Т.е. в корпоративном секторе такое не приветствуется.. Так?
Maks Andrienko
а так можно ?))))))
Andreu
ща освежу себе память, с сплешскринами точно можно было
Maks Andrienko
ну со вью я это понимаю) а с иконкой поинтересней
Урусай
Дело тут не в том, что не приветствуется, а в том, что в данном примере ты слишком увлёкся. Нафига тебе например выносить в отдельную строку appbar, если он и так уместится в одну строку в декларации scaffold?
Kit Khilobok
Ну у нас нет. Да и смысл. Если нужно что-то вынести большое и что будет потом использовано, выносишь в виджет отдельный, а так просто непривычно код читать, на самом деле. Я бы не стал каждое свойство выносить в переменные, это усложняет читабельность
Урусай
[
{
"type": "mention",
"text": "@vitaliy_snitko"
},
" если у тебя получается огромная вложенность или большой виджет, то выноси его в отдельный виджет\\метод\\или переменную, но просто плодить переменные ради переменных не стоит"
]
Andreu
не, походу нельзя. а попробуй через генератор самой андроид студии
Maks Andrienko
кстати, так же тоже можно.....
Vitaliy Snitko
Это я ещё к вложенности виджетов привыкаю... После AS3, C# и JS у меня глаз дёргается от всех этих полотен в скобочках... ))
Andreu
Jetpack Compose не щупали?
Vitaliy Snitko
Нет. А что это?
Kit Khilobok
Привыкаешь быстро, да и на самом деле не так страшно, если не пихать всё в один виджет. Виджет желательно должен умещаться в 150-200 строчек, если этого придерживаться, то проблем особых не будет
Andreu
декларативный UI фреймворк андроида
Andreu
по мотивам схож с флаттером
Vitaliy Snitko
Ок. Принял.
Denis V.
Всем привет, ребята можете подсказать пожалуйста что выбрать для state management: bloc vs provider?
Andreu
миллион ведь статей по этому поводу. основной аргумент в сторону блока - большая команда и большой проект
Maks Andrienko
сработало спасибо
Eugene
Помогло, с тех пор ни одного зависания. Спасибо
?????>?Сергей Куликов ????
Всем привет, подскажите, пожалуйста, как вы изменяете родительский блок при изменении дочернего?
?????>?Сергей Куликов ????
нагуглить ничего толкового не получилось. пока придумал только два варианта: 1) при создании дочернего блока, провайдить в него родительский блок и из дочернего блока делать yield в родителя 2) в блокбилдере дочернего блока делать parenbloc.add при изменении стейта дочернего.
?????>?Сергей Куликов ????
оба варианта кажутся мне нехорошими, мб есть у кого-то наработки по такому моменту?
Andreu
ну второй вариант куда ни шло. Что плохого посылать ивенты в блок?
?????>?Сергей Куликов ????
ищу, так сказать, good practise
I V ?-N
[
"Ребята, почему вверху черная область остается, я же скрыл нижний и верхний бар?\n",
{
"type": "pre",
"text": " SystemChrome.setEnabledSystemUIOverlays([]);",
"language": ""
},
""
]
K K
Здравствуйте, как портировать исходных код flutter под ios
Денис Путнов
Может из-за safearea?
L
Как можно сохранить положение курсора в форме, когда юзер возвращается к предыдущей странице? Добавил проверку в disposе для TextEditingController, но там походу теряется фокус и в selection стоит -1
prz
а через onLaunch можно запустить приложение по приходу пуша?
K K
Здравствуйте, как портировать исходных код flutter под ios и android?
Олжас Сулеймен
а ведь можно block and provider
prz
у андроида есть аналог callkit?
IB Akhrorov
Можно setState )
Parabol Parabola
всем привет. Как сделать чтоб InkWell показывал анимацию над Card, а не под ней? В Card есть закрашенные контейнеры, которые перекрывают ripple-эффект
I V ?-N
[
"Мне вот чё в дебаге пишет, может из-за этого...\n",
{
"type": "pre",
"text": "W/PlatformViewsController(23278): Creating a virtual display of size: [1080, 2300] may result in problems(https://github.com/flutter/flutter/issues/2897).It is larger than the device screen size: [1080, 2170].",
"language": ""
},
""
]
Kirill Aparin
Картинка меньше чем экран
Kirill Aparin
Поэтому в недостающей области чёрный экран
IB Akhrorov
Здравствуйте, вопрос ради интереса, почему нельзя было сделать любой виджет stateful? Как? Используя логику ValueListenableBulder. Например: возмем Text() виджет, String text="aaa"; Text(text) Как будет выглядеть логика внутри виджета Text() if(text !=oldText) setState() Т.е перерисуй Text() виджет.
Kirill Aparin
Такой вопрос: Создаю List и запихиваю туда Positioned, потом изнутри Positioned меняю Его данные в том числе позицию и начинаю удалять из List с помощью removeAt(0) и у меня удаляются элементы с конца, то есть тот на который нажимаю удалить остаётся на месте, а самый последний удаляется, делал Map и каждому давал ключ int и удалял по ключу, всё также, удаляется элементы, но после этого элемент находящийся после него принимает все его переменные типа позиции и размера
Kirill Aparin
Получается, что последний как-бы пропадает, заменяя собой тот, который я удалил
Rinat
Всем привет, прикрутил в приложение авторизацию через гугл, но вышла ошибка PlatformException(sign_in_failed, com.google.android.gms.common.api.b: 10: , null) . Если кто сталкивался, подскажите пожалуйста, как это пофиксить?
Kirill Aparin
[
"Вот пример Gist:\n",
{
"type": "link",
"text": "https://gist.github.com/kirya355/4f74eb0f74c577c49a0976798cea9efd"
},
""
]
L
Попробуй key прописать уникальный
Andrew Ka
[
{
"type": "link",
"text": "https://youtu.be/zLg5ODYV4IQ"
}
]
Kate
всем привет, нужно совет, что использовать redux, bloc or mobx?
Rinat Kurmashev
Привет, что больше по душе то и использовать :)
Kate
ну нужен совет профессионалов,
Ilia
в чем больше разбираешься то использовать
Rinat Kurmashev
[
{
"type": "link",
"text": "https://youtu.be/E9pSpTmmcNA"
}
]
Rinat Kurmashev
Вот сравнение с конфы
Алексей Александрович
Погляди ещё GetX
Burevestnik
[
"Добрый вечер\nБыла идея реализовать обработку ошибок сервера, через проброс исключений. Но почему-то при пробрасывании ServerException все падает, ругаясь на это же \"необработанное\" исключение.\n",
{
"type": "link",
"text": "https://gist.github.com/burevestnik-png/0f3da328dda650706a8abc64e89ad36f"
},
""
]
Урусай
Ты пытаешься поймать исключение из другого потока
IB Akhrorov
Вроде вы когда то говорили что невозможно запустить dart code in background
Burevestnik
То есть ServerException пробрасывается в новом потоке?
Урусай
Ну ты же запускаешь асинхронную функцию
Burevestnik
Хорошо, есть над чем подумать, спасибо
Serge Shkurko
На чем запускал? Если эмулятор - выбери другой образ с гугл сервисами, они отмеченны иконкой вроде в списке образов при создании эмулятора
Ibragim
Попробуй в stack обернуть
Parabol Parabola
Пытался, InkWell со стеклом не очень дружит. Всё ломается
tdesc
если больше 1 разработчика то редакс
Max
Смотря в чём есть экспертиза и какая задача. Если данные - сложные и многоуровневые, я бы смотрел на MobX.
%
Всем привет, есть ли в чате те, кто умеет работать с wifi реле? Нужно создать приложение для android, которое коннектиться к нему и включает/выключает свет
nazirjon
Привет всем, HMAC-SHA1: как правильно сделать это на Dart?
Andrey Novatovski
не могу найти анимацию классную
Andrey Novatovski
[
{
"type": "link",
"text": "https://www.youtube.com/watch?v=xZ9vdVkI4Vc&feature=youtu.be"
}
]
Andrey Novatovski
Мб кто-то знает?
Andrey Novatovski
Аналоги
nazirjon
final hmacSha1 = HMac ( SHA1Digest (), 64 );
nazirjon
здесь 64 это ключ
Max
По моим воспоминаниям, в Pointy_castle были все необходимые алгоритмы. Дальше нужно просто внимательно прочитать API и сделать то, что хочется.
nazirjon
Данные надо отправить на сервер с ручной ключ шифрованием hmacSha1
Max
Простите, но копаться в API для вас, пытаясь добиться правильного формата кодирования без возможности проверить я не буду. Весь необходимый инструментарий есть в библиотеке.
nazirjon
ребята, как получить текущий дата врем в форматы unix timestamp?
|