Программирование : Dart & Flutter по-русски
Vyacheslav
на upwork конкуренция высокая, сложно взять заказ
Vyacheslav
но, возможно, нужно уметь это делать
Вадим Резниченко
на фл ру тоже высокая конкуренция по веб дизайну, но заказ оттуда взять нетрудно
Muso Verda
у меня с Vue.js - это плучилось - стартануть. Но - не повезло - сам upwork палку в колесо вставил )) теперь шлет письма - типа, возвращайся ))
Nikolay Evloshevskiy
товарищи, посоветуйте, как быстрое "въехать" во флаттер ?
Vyacheslav
нужно научиться мысленно конструировать деревья из виджетов ))
Muso Verda
думаю, секрет прост - just doing ))
Daniil S
[
"Всем привет, если кто не захотел заморачиваться с ",
{
"type": "link",
"text": "https://pub.dev/packages/worker_manager"
},
", я написал простенький клиент, который в отдельном изоляте десериализует json. Лайк если нужно развивать дальше: ",
{
"type": "link",
"text": "https://pub.dev/packages/isolated_http_client/install"
},
""
]
Oleg
Так там ищут вроде как начинающего
Muso Verda
ну значит - мне будет норм, за плечами - js/ts )
Nikolay Evloshevskiy
это понятно, но с какого "конца" взяться) то ли офф дока, или есть ресурс/гайд/книга годный мб по флаттер
Muso Verda
хз - сейчас взялся регулярно смотреть Максимку ) когда-то он мне помог Vue.js выучить ))
Rigor Mortis
Если есть бэкграунд, то разберешься
Nikolay Evloshevskiy
пых, питон)
Вадим Резниченко
сколько?
Sergey Lobanov
У Reso Coder на ютубе есть неплохие туторы, но они на английском
Sergey Lobanov
Зато там очень неплохое произношение)
Sergey Lobanov
У Reso Coder
Muso Verda
хм... не видел ни разу - надо глянуть. англ - не проблема
Андрей Козак
Просвети. Есть вообще профит запросы в сеть в изолятах держать?
Андрей Козак
Делаю в мейн потоке, проблем не вижу
Sergey Lobanov
Можно просто взять BLoC или Rx, чистую архитектуру, вёрстку из офф доки, TDD, DI и уже неплохо работать
Daniil S
сам запрос - очень дешевый в плане производительности, эвент луп не останавливает. Но вот десериализация json может занять долгое время, операция синхронная, пока не выполнится будет стопить эвент луп. Если за 8 мс не разберет - будут сильные фризы в UI
Daniil S
если вы с беком общаетесь маленькими сообщениями в пару-тройку полей, то можно думаю и в мейн потоке ходить в сеть без проблем
Muso Verda
подписался. да - произношение - чувствуется, что нативный носитель языка; не Максимка ))
Mikhail B.
Есть демо использования exoplayer в flutter с использованием сервиса? Стриминговый аудиофайл
Вадим
Ребят кто знает в чём проблема?
Андрей Козак
Спасибо за инфу
Renat Ganiev
кто то знает почему база данных не пересоздаеться если я повышаю версию базы данных. Добавил новые поля в БД, но они не создаються :(
Renat Ganiev
приходиться удалять приложение и переустанавливать. но это как то не хорошо
Roman Cinis
Решeтар — словак, акцент есть хотя не большой, он старается, каждый тутор потом обрабатывает, включая аудио дорожку
Muso Verda
не знал, естественно )
Урусай
Народ, на андроид пуши без звука приходят с файрбейза. Кто сталкивался?
Сергей Переходов
Что не так? В дебаг версии на месте серого блока список, как такое решать в релизе?
Сергей Переходов
где можно это почитать?
Sergey Shobin
Собери в профайл режиме и чекни консоль
Илья Максименко
ребят, помогите с тестированием
Илья Максименко
как настроить environment для тестирования
Илья Максименко
в injectable
Илья Максименко
в каждом файле что-ли писать configureInjection(Environment.test)?
Илья Максименко
или можно как-то глобально
Илья Максименко
каждый тест у меня пока что начинается с такого
Сергей Переходов
судя по всему проблема не в этом, а в том что не может срендериться новое дерево, в котором я фиксал проблему со скролом в списке
Сергей Переходов
там в стаке было 3 чайлда которых я сделал флейксибл, чтобы размер правильно считался
Сергей Переходов
так делать нельзя потому как возникает ошибка построения дерева елементом, и он не может по древу перент дату передать
Сергей Переходов
это мешает высчитать размер елементов и он выкидывает ошибку
Сергей Переходов
вот а по асинку можешь линку дать, я почитаю
Юрий Ионцев
Добрый вечер, пожалуйста киньте link на playlist с созданием несложного, но и нелегкого приложения. С http, и добавлением новых постов, может to-do какой-нибудь или еще что. Flutter
Ssss Diii
Подскажите во flutter нормальная практика при вызове нового экрана передовать (пробрасовать) переменные, объекты. Если нет то как обойти?
Ssss Diii
Т.е я прередаю в stateles widget далее в statefull мне такая цепочка передачи не нравится
tdesc
смотря что вам надо, я бы вообще не привязывал экраны к данным в приложении
vasilich
Не понятно что вы делаете и что вам болит. Если вам нужно иметь доступ к данным в целом дереве - провайдер. Если во всех экранах хотите иметь доступ - рутовый провайдер
Ssss Diii
При клике по item из списка открыть экран подробностей данные получаю через get. Пробрасываю объект по цепочке вот этот момент и не нравится мне.
Урусай
Ничего в этом страшного нет. Представь что ты не экран открываешь, а в текущем экране виджет рисуешь. Ты же в него будешь передавать объект? Будешь.
Урусай
Экраны - те же самые виджеты рисуемые друг на друге
Yerassyl Maikhanov
Кстати
Yerassyl Maikhanov
Где-то видел как сделали штуку тип сообщением отправляется виджет в котором запущено другое приложение
Yerassyl Maikhanov
Кажется китайцы показывали что-то такое
Yerassyl Maikhanov
И по этой логике можно объекты через несколько приложений протягивать
Ivan
только на сяоми у меня, если не включить руками в настройках
Урусай
В каких настройках?
Ivan
ну настройках приложения твоего, после установки
Ivan
оно там по дефолту в муте, может быть я что-то не так сделал
EcsFlash-
Чтоб у меня пропала такая шняга
Урусай
А где эти настройки? Не вижу тут ничего такого
Ivan
андроида нет под рукой, не могу точно показать)
Урусай
Саёми уже второй раз говна подкидывает при разработке
Ivan
Если кто-то подкинет решение, то буду рад)
Alexander K
[
"Привет всем, может кто подскажет\nЕсли в ситуации, когда к свойству стейта нужен доступ извне, вынести это свойство из стейта в сам виджет, и обращаться к нему из стейта как ",
{
"type": "code",
"text": "widget.prop"
},
", а извне - соответственно как ",
{
"type": "code",
"text": "instance.prop"
},
" , это несет какие-то минусы? \n\nТо же самое, только не абстрактно - есть много виджетов player, в стейте есть свойство volume. В сторе храню список активных плееров, там же нужно сделать сортировку по volume и получить новый список. Насколько плохая идея вынести volume из стейта в сам виджет?"
]
Урусай
Можешь через ключ (key) к стейту обратиться
Alexander K
Виджеты в mobx сторе лежат в списке, не получится
Sergey Hottabych
Как у тебя виджеты в стор занесло?
Alexander K
Есть список плееров, он должен использоваться на нескольких экранах, а ничего лучше я не придумал( Как это по-нормальному делается?
Sergey Hottabych
По-нормальному - разделять слой UI и бизнес-логику
Sergey Hottabych
В сторе - только ObservableList , где Player модель данных. А из дерева виджетов подцеплять провайдером нужные плееры
Alexander K
Когда плееров много, не будет проблем с производительностью при переключении между экранами? Ведь если правильно понимаю, если хранить только модель, то на каждый билд будет идти пересоздание всех виджетов для каждой модели
Sergey Hottabych
[
"Будет пересоздаваться только то, что завернуто в Observer, если внутри него есть переменные из стора, помеченные ",
{
"type": "mention",
"text": "@observable"
},
", и только когда они изменили значение."
]
Sergey Hottabych
[
"Вот справка по MobX. ",
{
"type": "link",
"text": "https://mobx.netlify.app"
},
" С кучей примеров.\nВот конкретно пример по организации приложения на MobX+Provider:\n",
{
"type": "link",
"text": "https://mobx.netlify.app/guides/stores"
},
""
]
Sergey Hottabych
Все разжевано просто дальше некуда.
Alexander K
Я mobx+getit решил попробовать использовать Да я в целом понимаю, как это все работает. Просто я в сторе сделал ObservableList , где Player - это виджет, как раз из-за опасения, что при переключении между экранами иначе все зависать будет из-за большого количества элементов) в других местах везде модели используются
Alexander K
Спасибо за помощь, разделю сейчас и тут логику
Sergey Hottabych
Там и про GetIt есть.
Sergey Hottabych
Вот если виджет пихать в стор, то полная фигня получится.
Sergey Hottabych
Смысл именно, что в сторе вся логика и все данные, а виджет их просто отображает.
Muso Verda
подскажите - есть книжка по dart или что-то похожее?
Макс Провоторов
dart in action
Dima Puris ?????
У кого-нибудь получилось сделать нормальный jwt auth во флаттере с graphql? Как-то очень больно все это реализовывать.
Вадим
господа, реализовал ли кто-нибудь карусель видео как в инстаграме или тиктоке? какие подводные?
Evgeny Sosnin
Алоха коллеги! Есть экран с 3 виджетами в одном из которых поле ввода. Мне нужно в момент, когда юзер тапает на это поле и открывается виртуальная клавиатура, убрать один из виджетов и снова его показать, когда клава будет скрыта. Вопрос - Как отловить события показа/скрытия клавиатуры?
vasilich
Кэйбоард визибилити плагин
Илья Максименко
Только надо не забыть сделать ребилд
Илья Максименко
Я так часа 3 просидел, думал чо не работает
Evgeny Sosnin
Ага, да. Такой момент с установкой плагинов я знаю, фенкс
vasilich
Терпиливый) Я бы уже комп ребутнул)
Илья Максименко
Что я там только не рубутал
Илья Максименко
Но ребилднуть забыл
Урусай
А зачем, если не секрет?
Илья Максименко
Конкретно в его случае хз, только одно поле
Илья Максименко
Но когда поля два вполне резонно
Evgeny Sosnin
дизайнер упёрся - говорит надо. в примере все было сильно упрощено :)
Урусай
Посмотрел исходники плагина - на андроиде просто проверяется, доступно ли больше 85% места чем высота экрана. Если доступно - клавиатуры на экране нет )))
oramcheg
все гениальное просто (??)
Roman Cinis
[
{
"type": "mention",
"text": "@bunopus"
},
" spam"
]
Han
Ребята, какой виджет использовать для такого вида меню (раскрывющий)?
Сергей Переходов
[
{
"type": "link",
"text": "https://medium.com/flutter-community/flutter-expansion-collapse-view-fde9c51ac438"
}
]
Timur Karimov
В dart'e есть метод first для массива чтобы он null возвращал, а не эксепшн кидал, если массив пустой?
Timur Karimov
так не сработает)
Аманжол Умурзаков
посоны, айфон обновил до 14.1, теперь андроидстудио выдает Your Xcode version may be too old for your iOS version.
Maxim Gora
mas.isNotEmpty ? mas.first : null
Timur Karimov
a = [] сделай
Timur Karimov
видимо только так
Sergey Shobin
а, если пустой, то да
Maxim Gora
Ну можно ещё с трай/кетчем.
Yerassyl Maikhanov
можно ли как то этот first переопределить ?
Yerassyl Maikhanov
чтобы возвращал null если там пустой лист
Yerassyl Maikhanov
или создать optional как в Java .
Sergey Shobin
можно extension написать со своим кастомным first
Дмитрий
Друзья, а как там вообще со спросом и вакансиями на flutter?
Кирилл Штреблев
А так не пойдёт? (a?.isEmpty ?? true) ? null : a.first
Yerassyl Maikhanov
а теперь представь постоянно такое писать
Yerassyl Maikhanov
грустно
Yerassyl Maikhanov
по крайней мере в моей стране
Yerassyl Maikhanov
компании пишут пробуют
Yerassyl Maikhanov
но вакансий не появляется больше
Sergey Shobin
extension один раз написал и везде юзаешь
Кирилл Штреблев
Попробуй обновить ios-deploy
Yerassyl Maikhanov
спасибо
Тима Егембердиев
Дохера вакансий)
Тима Егембердиев
Ты откуда?
Yerassyl Maikhanov
Казахстан
Yerassyl Maikhanov
на фрилансе да)
Тима Егембердиев
Земляк, тут да, жопа с вакансиями)) Разве только джависты нужны)
Yerassyl Maikhanov
не поверишь я джавист))
Тима Егембердиев
Да нет, в РФ дохера вакансий))
Тима Егембердиев
Ну почему же, верю))
Yerassyl Maikhanov
сейчас в компашке мобильный отдел на flutter открыли
Тима Егембердиев
У нас есть компании которые на флаттере пишут, но я знаю 2. А так нативщиков ищут, денег же много у компаний)
Yerassyl Maikhanov
я знаю что BI пишут
Yerassyl Maikhanov
а какие 2 компании если не секрет?
Тима Егембердиев
Для BI другая компания пишет))
Тима Егембердиев
Че то там с code связано))) А вторая это Onepoint вроде.
Тима Егембердиев
В Астана хабе стартапы начинают потихоньку перебираться на флаттер
Дмитрий Щербаков
Для коллекций юзаю firstwhere(условие, orElse: null)
idrwla
всем привет . Кто знает как создавать документацию к приложению
Eldar
Ребя, зачем нужен GetIt если можно обращаться к синглтону класса ? Понять не могу
Comrade77
Через GetIt можно не только обращаться с синглтону, но и создавать любые другие классы включая bloc
Comrade77
[
{
"type": "link",
"text": "https://www.youtube.com/watch?v=gfLb4rqzio4"
}
]
Олжас Сулеймен
а вообще есть дерево, inherited...Provider, ScopedModel если что достать по феншуя флаттера
Pavel Erokhin
кто еще верит в клин арч, кек
Pavel Erokhin
его-ж не существует
Comrade77
Дак тут пример get_it, никто не заставляет использовать clean arc
Van Xemidov
Привет, народ, возник вопрос, кто работал с пдф в вебе, как вы просматривали пдф Файлы (помимо Доп окна через html)
A Kuper
Отлично всё, вакансий куча, начиная от джунов и трейни до сеньеров и мидлов(Украина)
vasilich
Существенно меньше чем на фронт) Что по количеству что по капусте ;-)
Yurii
В разы выше чем на джаву(личный опыт)
Sergey Hottabych
Синглтон нельзя тестировать (ты не можешь его подменить на мок-реализацию)
vasilich
[
"Вот стата по Украине для ЖС\n\n",
{
"type": "link",
"text": "https://djinni.co/salaries/javascript/kyiv/?lang=ru&utm_campaign=email%2Fcandidate_teaser.html&utm_medium=email&utm_source=transactional"
},
"\n\nА вот для флаттера\n\n",
{
"type": "link",
"text": "https://djinni.co/salaries/flutter/?lang=ru&utm_campaign=email%2Fcandidate_teaser.html&utm_medium=email&utm_source=transactional"
},
""
]
Evgeny Kot
[
"Можно посмотреть в ",
{
"type": "link",
"text": "https://t.me/dartlang_jobs"
},
", последнее время был наплыв"
]
Eldar
Ребя может кто помочь с flutter_background_fetch.
D T
Всем привет. Можно ли как-то выключить автоблокировку экрана, пока работает приложение или открыт какой-то экран?
Miller777
Здравствуйте, подскажите: есть List , который отображается в Row. Сначала в листе ничего нет, потом он заполняется виджетами и Row перестаёт умещаться на экране. Как сделать, чтобы левая часть Row как бы скрывалась за краем экрана и Row скролился по горизонтали?
Криво объяснил, да
Дмитрий Щербаков
сделай List только горизонтальный вместо Row ;)
Miller777
А может быть, Row чем-то обернуть, или какой параметр прописать?
Урусай
SingleChildScrollView и Row(mainAxisSize: MainAxisSize.min)
Miller777
Спасибо, попробую!
Дмитрий Щербаков
но лучше сделать через ListView.builder если конечное количество элементов не известно
CrazyAlarmClock
Всем привет, а кто знает какой дефолтный цвет у бекграунда скафолда?)
Maksim Zdanchuk
всем привет. ?? я вчера уже обращался с подобным вопросом, но все еще актуален. Кто-нибудь знает в чем проблема и как ее фиксить?
Maksim Zdanchuk
могу лишь сказать, что обновил пару пакетов до максимальной версии
CrazyAlarmClock
что то туплю. спасибо)
Константин Буланов
А он разве не зависит от primarySwatch головного класса MaterialApp
CrazyAlarmClock
ну я в вот пытась цвет в app.dart, но что то не вижу его)
Rinat Kurmashev
при запуске MaterialApp на микросекунды мерцает белый экран, если выдать вместо MaterialApp цветной контейнер - такого белого экрана не наблюдается
Rinat Kurmashev
где это может происходить если в MaterialApp есть только home?
Дмитрий Щербаков
нужен код
Урусай
В релизной версии тоже?
Rinat Kurmashev
[
"нашел ",
{
"type": "link",
"text": "https://github.com/ilteoood/flutter_i18n/issues/17"
},
""
]
Rinat Kurmashev
когда проставляю localizationsDelegates такое проявляется
Eldar
ребя, есть BackgroundTaskManager - singleton class. Как можно в его хендлере слушать ответ на запрос (БлоК) ? ведь он не Виджетный класс.
Дмитрий Щербаков
из него прокидывать эвент в блок?
Eldar
ну вообще BackgroundTaskManager вообще никак не связан с виджетами
Eldar
показал комментом на скрине
Eldar
Этот хендлер будет отрабтывать когда аппка полностью закрыта (ну или свернута). Никакие виджеты не нужны
Дмитрий Щербаков
ну bloc.add()
Дмитрий Щербаков
а какой ответ от блока нужен? там какой то сетевой запрос будет или что?
|