Программирование : Dart & Flutter по-русски
Max
У streamController есть add, чтобы положить в него что угодно.
Max
У stream есть where, чтобы убрать из него что угодно)
Stanislav Sagan
Хорошо, буду экспериментировать)
Sergey Salnikov
Нет, только юзать расширение BehaviorSubject или свой велосипед, но про велосипеды я уже высказался
Stanislav Sagan
Ок, Спасибо)
Maksim Schennikov
привет всем. Никто не подскажет, можно как-то в IDEA на Alt+Insert добавить обертки своих виджетов преднастроенных?
Max
Ещё есть stream.skip и stream.skipWhile для ненужных событий в начале стрима.
???????
Берешь и не паришься
???????
Если вопрос в том: я начал слушать стрим, при прослушке мне надо сразу получить последнее значение, которое в нем было
???????
[
"А ну во, тебе уже посоветывали\n",
{
"type": "link",
"text": "https://t.me/rudart/121754"
},
""
]
Daniil S
Или streamTransform
Sergey Salnikov
[
"Теперь пример в студию)\n\nPS Когда нужен просто стрим с начальным значением гораздо проще и безошибочнее\n",
{
"type": "code",
"text": "import rxdart show BehaviorSubject;"
},
"\n\nЧем писать трансформер"
]
Daniil S
Потерял немного контекст
Daniil S
Я думал вы про сам rxdart
Daniil S
Можно со Stream.value смержится :D
Daniil S
А в чем проблема просто добавить в начале значение?
Daniil S
В конструкторе например
Sergey Salnikov
Кидайте сразу примерчик. Мне как давно юзающему Rx проще в сабжект, тем более это де факто стандарт в мобильщине
Daniil S
Кому как проще конечно, на счет стандарта не соглашусь. Зависит от проблемы. Пока не вижу тех проблем, которые мог бы решить rxdart по сравнению с великолепным stream api и streamTransform в частности =)
Daniil S
Примерчик тревиальный помойму
Stanislav Sagan
Нужна прям создавать FAQ )))
Stanislav Sagan
А вот это разве не изначальное значение даст?
Sergey Salnikov
Проще future.asStream()
Stanislav Sagan
В закладку
Sergey Salnikov
Одно единственное, future предполагает одно значение
Sergey Salnikov
Стримы это асинхронный iterable То есть много значений Upd iterable растянутый во времени во, так яснее)
???????
Угу, причем это на 100% верное утверждение) Если Stream это async*, то Iterable это sync*
Daniil S
Прочитай на dart lang stream api и future api, коротко лаконично и по делу все расписано
Daniil S
А так просто советы из чата в закладки закидывать вариант конечно, но если время есть, самому разобраться не будет лишним, уверен
Daniil S
На дистанции быстрее код напишешь =)
Daniil Kolyasnikov
Есть ли roadmap для изучения f;utter ?
Sergey Salnikov
[
"Ага\nСперва\n",
{
"type": "link",
"text": "https://dart.dev/guides/language/language-tour"
},
"\nДалее \n",
{
"type": "link",
"text": "https://flutter.dev/docs/get-started/install"
},
""
]
Daniil Kolyasnikov
Ага. в 2017 уже прошел это
Sergey Salnikov
приступай ко второй части =)
Sergey Salnikov
dart чуть изменился с 2017ого
Daniil Kolyasnikov
я не переставал писать на нём, если ты про это.
Daniil Kolyasnikov
Думал что уже наклепали что-то вроде этого
Sergey Salnikov
тогда ты в шикарных условиях, бери в руки доки flutter и вперёд на концептуальные вопросы здесь тебе ответят
Daniil Kolyasnikov
Сейчас встал вопрос на какой архитектуре сидеть и какой стиль state менеджмента выбрать . покурил redux - много кода, очень-очень много лишнего кода. bloc тоже не очень зашел. Сейчас чисто на основе опыта пришел к потокам и событиям. Пародия на redux с событиями
Sergey Salnikov
там вообще солянка из разных языков в твоём примере =)
Victor
Flutter это конкретная технология, а не направление
Daniil Kolyasnikov
Это просто визуальный пример. Контент само собой нерелевантный
Victor
На твоём скрине он был бы просто квадратиком
Daniil Kolyasnikov
Это визуальный пример roadmap
Adv0cat
есть старый инженерский анекдот "начни с оси" ??
Adv0cat
А дальше будет видно какую архитектуру использовать)
Victor
В случае с флаттером дорога прямая и карта там не нужна)
Daniil Kolyasnikov
то есть ты хочешь сказать, что все проекты используют для одних и тех же задач - одни и те же инструменты ?
Sergey Salnikov
ты ж олдфагушка мой =) ps я сам такой =) pps "модель OSI" - для ньюфагов слова для гуглежа
Victor
Флаттер это и есть инструмент же, его и используют. Или ты про всякие либы с дартпаб?
Victor
Там и выбора то не особо если речь не про Стейт менеджмент)
Victor
Кстати что ты на дарте пишешь с 2017? Ангуляр дарт фронт?
Victor
All people seems to need data processing)
Victor
Скороговорка чтоб запомнить эти чёртовы слои)
Daniil Kolyasnikov
флаттер
Victor
И тебе нужен роадмап после стольких лет опыта? Ты тут походу один из самых опытных)
Daniil Kolyasnikov
С опытными одна главная проблема. Ноль развития
Sergey Salnikov
нас больше чем я думал здесь =) oldfags forever!
Daniil Kolyasnikov
Не хочу протухнуть, вот пытаюсь собрать много-много информации о том, подходы есть чтобы более эффективно писать. В 2017 я сидел на valuenotifier и setState. Сейчас почти не поменялось, но все вокруг плюются на setState вот и решил, что пора слезать с этого подхода
Victor
подпишись в твиттере на топовых дарт разработчиков — будешь всегда в курсе последних веяний моды)
Daniil Kolyasnikov
ЗАпоминалка для модели OSI ?
Sergey Salnikov
[
"кстати, давай в студию их аккаунты\n\nлично я рекоменду проштудировать ответы Реми Русселет\n",
{
"type": "link",
"text": "https://twitter.com/remi_rousselet"
},
"\n",
{
"type": "link",
"text": "https://stackoverflow.com/users/8394265/r%c3%a9mi-rousselet"
},
"\n\nразумеется следить за Felix Angelo(я на github подписан)"
]
Victor
да я не особо слежу за ними, только всякими медийными типа тех что ведут boring developer show, а по хорошему надо подписываться на авторов всех популярных либ еще
Victor
[
{
"type": "link",
"text": "https://blog.codemagic.io/top-flutter-developers-to-follow-on-twitter/"
},
" вон кто-то список сделал в принципе уже"
]
Sergey Salnikov
да огонь, я правда натыкаюсь часто только на 4ых Egan, Rousselet, Angelo, Boelens ps пойду сделаю акк на твиторе
Aleksey
кстати про Codemagic, чтото он сломался, со вчерашнего дня билды не стартуют, билд после запуска висит в состоянии queued
artalar
А есть кто веб пишет на дарте? Грубо говоря, вместо ТС его использовать вообще реально и на сколько адекватно?
Victor
раньше в ангуляре был ферст класс дарт, но потом тайпскрипт его "победил" и дарт вариант начал отставать все сильнее сейчас делают флаттер веб, т.е. приложения будут отображаться на канвасе без хтмл даже, будем надеяться это взлетит
artalar
Не, это прям платформа / фреймворк. А можно ли писать на дарте просто как на языке, импортируя ЖС либы, описывая их типы?
Victor
Можно конечно, но это не мейнстрим даже по сравнению с флоу. Но уверен тут есть люди кто так пишет)
Stanislav Sagan
[
"Кстати, это получается что не модно использовать ",
{
"type": "code",
"text": "StatefulWidget"
},
"? Типа вместо этого только стримы?"
]
Евгений Семашко VR/AR Web Mobile Soft Outsource Outstaff Consulting
Всем привет
Артур
всем привет)) вопрос про Flutter на андроид и иос только нативные приложения? как типа на реакт нативе? и на счет кроссплатформенности как все отображается? или есть баги что на андроиде так отображается на иос чуток по другому?
Евгений Семашко VR/AR Web Mobile Soft Outsource Outstaff Consulting
подскажите. пожалуйста, на счет дизайна
Евгений Семашко VR/AR Web Mobile Soft Outsource Outstaff Consulting
когда делается дизайн для флаттер приложения - как процесс проихсодит?
Евгений Семашко VR/AR Web Mobile Soft Outsource Outstaff Consulting
надо делать экраны и под iOS устройства, и под андройд отдельно?
Евгений Семашко VR/AR Web Mobile Soft Outsource Outstaff Consulting
нет, должно одинаково
Евгений Семашко VR/AR Web Mobile Soft Outsource Outstaff Consulting
я хочу понять просто, разрабы смогут с iPhone X сделать для андройд экраны самостоятельно? или лучше нарисовать?
Евгений Семашко VR/AR Web Mobile Soft Outsource Outstaff Consulting
а как это обычно делается?
Serge Shkurko
Совершенно не так работает, как аналоги. Под коробкой тут движок для 2d рендеринга skia, виджеты не OEM, а отрисованные с помощью движка, следовательно все ui компоненты не зависимы от системы и хранятся в приложении
4??uzhoy .
всем привет, очередной вопрос, хочу к списку хранящий некие объекты добавить значение, список хранится в хэшмэпе, вызваю метод .update и пытаюсь к списку добавить объект через .add, говорит выражение не может быть использовано, потому что оно не возвращает ничего, как вы делаете присвоение объекта к списку, который хранится в хэшмэп?
4??uzhoy .
// список ключ стринг и значение какой то список объектов HashMap > hashmapOfSomeObjects = new HashMap(); // допустим там уже лежит список, как добавить значение туда с использованием update hashmapOfSomeObjects.update(SomeStringKey, (SomeObject v)=> SomeObject( v.listOfSomeObjects // Как добавить значение в этот список ? ))
4??uzhoy .
Приплюсовывать примитивы, строки я могу спокойно, а как быть со списком так и не понял, в другом случае я делал так, создавал какой то список временный, а потом когда надо было обновить значение мапы просто работал с тем списокм и присваивал временный список целиком, который наполнял заранее, но как то это ведь должно делаться
4??uzhoy .
НАсколько я понимаю требуется вместо = добавить нормальный блок { // где нибудь здесь написать добавление v.listOfSomeObjects .add(someObect); return SomeObject( listOfSomeObject: listOfSomeObjects, );}
Олжас Сулеймен
[
"можешь в гист кинуть? если нужно добавить в список елемент и вернуть его то ",
{
"type": "pre",
"text": "list..add(eleemnt)",
"language": ""
},
""
]
Олжас Сулеймен
[
"читейте доки ",
{
"type": "link",
"text": "https://dart.dev/guides/language/language-tour#cascade-notation-"
},
""
]
4??uzhoy .
надо жеж, вроде не ругается, сейчас проверю и так как сам написал и потом через две точки, думаю до гиста дело не дойдет, спасибо:)
Олжас Сулеймен
.. возвращает не результат методов а сам объект
4??uzhoy .
да в том и дело в большинстве мануалов показывают примеры на уровне до объектов они почему то не дойдут, после javЫ не все очевидно, а некоторое странно
4??uzhoy .
видимо .. удобная штука какая то, обязательно гляну видел в либах используют но не разбирался
Олжас Сулеймен
[
{
"type": "pre",
"text": "var a = [1, 2] ..add(3) ..add(4) ..[4] = 5 ..[5] = 6 ..length = 10;",
"language": ""
}
]
Денис
Вот не могу понять, если у меня в StatelessWidget инициализируется BehaviorSubject , закроется ли он после удаления виджета из дерева виджетов? На Stackoverflow часть прогеров говорит нет, часть говорит да...
Sergey Salnikov
нет, не закроется надо закрывать в stfull dispose() { subject.close() } тебя даже ide уведомлять будет ворнингом
Денис
Блин а так хотелось уменьшить простыню statefull'ов) ладно спасибо)
Денис
А кто встречался с ошибкой : "Gradle build failed to produce an .apk file. It's likely that this file was generated under /Users/user/project/build, but the tool couldn't find it."
Денис
пытаюсь через vscode забилдить проект
Евгений Семашко VR/AR Web Mobile Soft Outsource Outstaff Consulting
т.е. я правильно понимаю, что делается один дизайн, а потом подгоняется разрабоииками для мобильных устройств?
Yerassyl Maikhanov
кто работал с google_map_location_picker
Yerassyl Maikhanov
как добавить локализацию на русском?
Yerassyl Maikhanov
Кто работал с google_map_location_picker. Как добавить локализацию на русском?
Denis Chuvasov
ну это плагин, соответственно надо добавлять в андроид ресурсы, ну и где-то в айосе локализацию отдельно, я хз, я на андроиде пилил.
Denis Chuvasov
[
"а не, там же в реадми написано ",
{
"type": "link",
"text": "https://pub.dev/packages/google_map_location_picker#using"
},
""
]
Yerassyl Maikhanov
не в том вопрос
Yerassyl Maikhanov
он мне результат возвращает на английском
Anatoliy Dvoryashin
Привет! Кто сталкивался вот с каким моментом. есть TextFormField, в нем prefixStyle с color black. и все это завернуто в container. я чтобы подстроховаться завернул все это вместо container в SingleChildScrollView. И в такоей ситуации prefixStyle с color black игнорируеться, хоть ты тресни. Может есть идеи?
Yerassyl Maikhanov
как адресс на русском вернуть?
Denis Chuvasov
ну в этом плагине нет этой возможности, либо форкать, либо писать автору. В целом там просто добавить параметр language надо
Denis Chuvasov
[
"сюды ",
{
"type": "link",
"text": "https://github.com/humazed/google_map_location_picker/blob/master/lib/src/google_map_location_picker.dart#L161"
},
""
]
Serge Shkurko
можно сделать пул реквест и помочь людям, которые столкнуться с той же проблемой :)
Sergiy Vergun
[
"Всем привет, можете подсказать почему не работает анимация в AnimatedList при удалении елемента?\n",
{
"type": "link",
"text": "https://gist.github.com/sergiyvergun/619b5dc10bfd2cd0189a9006d5bcaefe"
},
""
]
Magomed Mirzaev
Кто знает в чем проблема? Пытался добавить Google карты, а они не отображаются. С мобильной разработкой раньше не имел дело
Денис
Есть MacOS'ники? Перенес андроид студио на второй жесткий диск теперь flutter doctor не видит её, и нигде нет гайдов какой нужно PATH прописать
Vasily Laushkin
Сделай симлинк
Roman Cinis
flutter config --android-sdk C:\Android\ ?
Denis Chuvasov
а почему должна?
Roman Cinis
flutter config --android-studio-dir "D:\Android Studio"
Sergiy Vergun
item обёрнут в ScaleTransition где scale равняется значению анимации
Yerassyl Maikhanov
в GoogleMap виджет?
Yerassyl Maikhanov
api включи доступ
Yerassyl Maikhanov
спасибо
Yerassyl Maikhanov
нет такого параметра
Artyom Nesterenko
Тот же самый, но размер меньше. ??
Artyom Nesterenko
[
{
"type": "link",
"text": "https://developer.apple.com/fonts/"
}
]
Artyom Nesterenko
Насчет этого не могу подсказать, но вроде других шрифтов нет.
Artyom Nesterenko
[
"Вот есть OTF, но их обновляли вроде, а тут двухгодичной давности. ",
{
"type": "link",
"text": "https://github.com/sahibjotsaggu/San-Francisco-Pro-Fonts"
},
""
]
Yerassyl Maikhanov
о Артем
Yerassyl Maikhanov
к вам вопрос
Yerassyl Maikhanov
как в GoogleMap адрес на русском языке вытащить
Artyom Nesterenko
[
"Вот еще нашел. ",
{
"type": "link",
"text": "https://bestfonts.pro/font/san-francisco-pro"
},
""
]
Artyom Nesterenko
Это не ко мне вопрос, я такое не знаю. ??
Yerassyl Maikhanov
уже 2 часа сижу
Rodion Mostovoy
Это вам нужен реверс геокодинг, т. е. перевод координат в название адреса. Такой сервис есть в гугле, Яндексе и дадате. Яндекс знает больше адресов по моему опыту.
Denis Chuvasov
я ж тебе ответил
Denis Chuvasov
даже строчку кода показал
Yerassyl Maikhanov
я другой плагин взял
Yerassyl Maikhanov
place_picker
Denis Chuvasov
так и этот тоже не поддерживает
Денис
1 warningGradle build failed to produce an .apk file. It's likely that this file was generated under /Users/User/Project/build, but the tool couldn't find it. что за треш, обновил флаттер сделал clean
Яўген
Добрый день. Может кто сталкивался с проблемой моргания анимации появления нового экрана, если на старом статус бар был скрыт, а на новом статус бар должен появиться? Как это пофиксить?
Gevork Arzumanyan
[
"Господа \nвопрос такой кто сталкивался с высокой нагрузкой на GPU на iphone смарфонах при самом простом даже приложении \n",
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/26895"
},
""
]
Gevork Arzumanyan
кто нибудь вообще внимание обращает на такие вещи ?
Gevork Arzumanyan
ну вот в isssue банальный CircularProgressIndicator грузит gpu на 62%
Gevork Arzumanyan
соответсвенно прилка просто выедает акум на iphone x за 3 часа примерно
Артур
подскажите плиз на flutter можно создать игру?
Gevork Arzumanyan
[
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/26895"
},
"\nзадумайся пока не поздно"
]
Gevork Arzumanyan
только одна нимашка rotate
Олжас Сулеймен
Есть канвас в виджетах, можно спустится до dart:ui где от *флаттера* ничего и нет
Артур
просто я сейчас смотрю подобные решения для реализации моб игры на иос и андроид
Артур
а писать одно на котлине а другое на свифте
Олжас Сулеймен
[
{
"type": "link",
"text": "https://github.com/flutter/flutter/tree/master/examples/layers/raw"
},
" гляньте тут"
]
Олжас Сулеймен
работают в вебе
Олжас Сулеймен
[
{
"type": "link",
"text": "https://flame-engine.org/"
}
]
Anatoliy Dvoryashin
Кто-нибудь прикручивать оплату Samsung pay или g pay?
Denis Chuvasov
[
"Прям на живую проверяли? Они пишут, что бечмаркам xcode не особо верят ",
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/26895#issuecomment-539229177"
},
""
]
Gevork Arzumanyan
прям от тестировщика пришло что прилка высушивает iphone xs за 3 часа неприрывного тестирования
Gevork Arzumanyan
начал гуглить нарвался
Gevork Arzumanyan
это к тому же как прошлый раз говорил про низкий fps в xs max там видеоядро вообще вешается
Gevork Arzumanyan
в прилке анимации минимум
Gevork Arzumanyan
да там issue по этому поводу что на ios все плохо валом
Gevork Arzumanyan
вот вам и кроссплатформа
Gevork Arzumanyan
мвп сделать и на натив переписать )
Vadim Lukichev
Не знаю на счёт flutter, у меня после обновы на ios 13, ipad air 2, как "калькулятор" работает, отрисовка и зависания, греется периодически, совсем другим и тупым планшет стал
northelks
лучше не стоит) если только это тетрис какой или шахматы с анимацией
Sergey ?
Вот сделали бы Apple поддержку Vulkan Graphics, а не липили свои велосипеды в виде Metal
northelks
уже есть, только не со стороны яблока
northelks
ну почему же велосипед, яблоко уже давно корпорация закрытого кода, и метал они начали пилить именно для себя и своих железок
northelks
выжимая из них максимум
northelks
когда как в то время опенгл облеплевался какашками мамонтов (легаси кодом) и головной болью
Sergey ?
OpenGL хотя бы есть везде и это стандарт, а Метал, ну во общем понятно где )
northelks
стандарт от которого уже не один год пытаются убежать))
northelks
просто опенгл много везде и переписывать практически неразумно, потому он и остаётся и продолжает набирать массу костылей
northelks
контребютил опенгл?)
northelks
кстати, вот мега супер интерсная статейка
northelks
[
{
"type": "link",
"text": "https://www.didierboelens.com/2019/09/flutter-internals/?utm_source=share&utm_medium=ios_app&utm_name=iossmf"
}
]
northelks
я бы её запинил в топик на канале
northelks
и на все споры о рендерах, билдах и стейтфул/лес виджетах отсылал бы на эту статью
Dmitry Bubnenkov
Вопрос, а голос сам девайс распознает или его на сервер отправляют и там?
Artyom Nesterenko
По-разному можно.
Dmitry Bubnenkov
А на качество это сильно влияет?
Dmitry Bubnenkov
Сири и Алиса как устроены?
Artyom Nesterenko
Не проверял, там все равно вся база выкачивается.
Artyom Nesterenko
Сейчас все это обычно работает так: на устройстве происходит дообучение, при возможности база отправляется на сервер, там обновляется модель и обратно выкачивается на устройство.
Artyom Nesterenko
Можно оффлайн распознавание не включать.
Artyom Nesterenko
Можно и включить, если хочется.
Artyom Nesterenko
Siri и Google Assistant примерно так работают, насчет Алисы не знаю.
Artyom Nesterenko
Не база, а обученная модель.
|