Программирование : Dart & Flutter по-русски
Serhii
уже гуглю, спосики
Fearless Cry
а есть полное тз какое-то?
Денис
уже сделал через stack
MiT
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(statusBarColor: Colors.transparent));
Александр
Подскажите пожалуйста, если я хочу подключить оплату, но не хочу использовать вебвью, какие у меня есть варианты?
Александр
че никто не знает ?
Евгений Крючков
Всем привет, а есть здесь люди с Воронежа? Желательно уже хорошо владеющие флаттером, но не обязательно. Есть идея, хочу обсудить.
Азамат Алмазбеков
Договориться с банком, чтоб апишку дали свою , больше вариантов нет
Mikhail Spiridonov
Оплату с чего?
Александр
Да чего угодно. Штанов
Александр
А что так можно?
Mikhail Spiridonov
Не чего, а с чего, чем оплата? Эпплпей + гуглпей?
Александр
и того и другого
Mikhail Spiridonov
[
"Могу помочь, есть компонент к платформе ",
{
"type": "link",
"text": "4pay.online"
},
", можем подключить любого провайдера, есть свой провайдер. Можно дальше в личку, если интересно"
]
Александр Васильев
[
{
"type": "bot_command",
"text": "/stat"
}
]
Combot
Total messages: 208603
Andrei
Неплохой курс на appbrewery по flutter
Гриша
Для начинающих топ, но его одного не хватит
Andrei
Да это понятно, никогда одного курса не хватит
Олжас Сулеймен
[
{
"type": "link",
"text": "https://github.com/dart-lang/sdk/blob/master/docs/process/language-versions-and-experiments.md#2100-ships-with-null-safety"
}
]
Sergey Hottabych
[
"Как такое может быть?\n",
{
"type": "pre",
"text": "The argument type 'TodoState Function(TodoState, TodoAction)' can't be assigned to the parameter type 'dynamic Function(dynamic, dynamic)'",
"language": ""
},
""
]
Roman Vasiliev
Класс переопределял?
Roman Vasiliev
С дженериками
Sergey Hottabych
Я ничего не трогал, просто открыл example project, там уже такая ошибка в main
Sergey Hottabych
Todo list на Redux
Олжас Сулеймен
видимо пример еще с первой
Sergey Hottabych
Да, там древность везде new
Олжас Сулеймен
неявные касты отключены и указание типов в генериках обязательно?
Олжас Сулеймен
эти правила в линтере подсвечивабт ошибкой
Олжас Сулеймен
можно навести и покажет какое правило срабатывает и в логах тоже видно
Sergey Hottabych
dartargument_type_not_assignable
Sergey Hottabych
вот такое правило
Andrei
А определение Store и reducer скинь
Andrei
Обьявление всмысле
Sergey Hottabych
Я не фанат Redux, но в конторе, куда меня хантят, его юзают (
Sergey Hottabych
[
"Короче, вот\n",
{
"type": "link",
"text": "https://github.com/xqwzts/flutter-redux-todo-list"
},
""
]
as amk
Вопрос: а можно ли на flutter делать приложения которые занимают часть экрана?Виджеты-приложения.Кто чо скажет?
Sergey Hottabych
Виджеты на рабочий стол? Типа часиков? Нет. Только в нативе.
MiT
[
"Лучше это изучай: ",
{
"type": "link",
"text": "https://github.com/brianegan/flutter_architecture_samples/tree/master/redux"
},
""
]
Sergey Hottabych
посмотрю
Sergey Hottabych
Этот хотя бы не сильно старый
Sergey Hottabych
Насколько проще все то же самое сделать через ChangeNotifierProvider! (пример у того же Брайана в репо) А люди до сих пор Redux мучают.
Sergey
Добрый вечер. Насколько Flutter подходит для 2Д игр, не требовательных к фпс, аля карточные, визуал новеллы или rpg maker?
Sergey Hottabych
Поздравляем! Вы 1 000 000 посетитель, который это спросил за сегодня.
Олжас Сулеймен
тут 2.5D уже пишут впихивают 3D вьюхи (Unity, OpenGl) некоторые переносят Three.js во флаттер на canvas и webgl api
Олжас Сулеймен
а так для карточных, пазлов и всяких mahjongg клонов идеально должно быть если конешно миксуете виджеты во всех позах
Олжас Сулеймен
есть инструменты которы позволяют вставлять и управлять анимациями по типу этих стикеров Figma и т. д.
Sergey
Ага, спасибо! Т.е. в целом принципиальных препятствий нет
Олжас Сулеймен
те же новеллы пару виджетов
Олжас Сулеймен
если пилил на CSS transform + анимации тут так же можно но с анимациями по началу будет сложновато контролить миксовать и чередовать
Олжас Сулеймен
есть виджет по типу вебешного канваса тоже апи почти
Олжас Сулеймен
[
{
"type": "mention",
"text": "@AvisHermetis"
},
" ",
{
"type": "link",
"text": "https://pub.dev/packages/zerker"
}
]
Олжас Сулеймен
[
{
"type": "link",
"text": "https://pub.dev/packages/flame"
}
]
Sergey
Отлично, благодарю
Александр Саньков
Всем привет. Есть список объектов. Как правильно найти в этом списке объект с конкретным значением в одном из полей? Сейчас делаю через for, сравниваю каждый элемент в списке, но кажется, что есть более правильный способ
Александр Саньков
Допустим есть список контактов. Нужно найти Ивана в 100 контактах
Александр Саньков
Если так понятнее)
Davron Asrorov
При создание списка делай Map<Поле, Обьект>
Davron Asrorov
Если есть backend пиши фильтр на нем
Davron Asrorov
Если нет, но есть время кэшируй все в sqlflite и пиши запросы в бд
Александр Саньков
Так было бы просто, да, но у меня сторонний
Александр Саньков
Окей, спасибо
Davron Asrorov
Самый простой
Александр Саньков
А чем это поможет? Пока не понимаю
Davron Asrorov
Map['$id']
Davron Asrorov
И получишь объект
Davron Asrorov
Без перебора
Александр Саньков
Понял. Благодарю
ilx13
ребята если у меня в ListView все элементы равны высоте экрана. как сделать чтобы при свайпе полностью пролистался один элемент на весь экран? или для этого нужно юзать другие штучки?
ilx13
если элементов будет сотни проблем не возникнет с ним?
ilx13
Я его использовал ранее только для 3 элементов по вертикали
Vladislav Kovaliov
[
"привет всем\nподскажите, а у flutter есть из коробки похожее ",
{
"type": "link",
"text": "https://flutterappworld.com/a-flutter-plugin-than-allow-expand-and-collapse-text-dynamically/"
},
" ?\nя нашел в доках ExpansionPanel но там связка с листом и наверно кастомить будет тяжело"
]
DVS (Read The F.ng Manual) Studio (NoHello)
Expanded text вроде на пабе есть
Vladislav Kovaliov
спасибо
Avada Kedavra
Подскажите, пожалуйста, как обойти это замечание? При том, что этот лист должен прилетать снаружи, т.е. при вызове класса я передаю значение MyDropDown(currencies)
Avada Kedavra
Все работает, но замечание мозолит глаз
Avada Kedavra
если сделать final то конечно я потом не смогу в конструкторе поменять и передать в стейт нужное значение
vasilich
А зачем в конструкторе менять?
vasilich
Или в конструкторе принимай без зис
vasilich
И сразу там же меняй и сувай уже в зис
Avada Kedavra
так она ж прилетает в него, я по привычке инициализирую как в тайпскрипте
vasilich
Ну от того и продел к
vasilich
Убирай все тело конструктора
vasilich
Убирай тип из определения конструктора
vasilich
И просто пиши зис.карренсис
vasilich
И карнсис Файнал сделай
Avada Kedavra
так сделал - не ругается, но как то костыльно выглядит)
Avada Kedavra
если я тело конструктора уберу - то оно мне в стейт пустой массив же отправит
vasilich
Треба отако MyDropdown(this.currencies);
vasilich
= [] навреное уже не нужен
Avada Kedavra
так готово, спасибо, красиво)
Avada Kedavra
да, с ним еще ругалось
vasilich
Теперь я загадываю желание — почитай доки по языку) Бо «как в тайпскрипт» не очень катит)
Avada Kedavra
я читал поверхностно((, надо срочно выкатить аппликуху
Avada Kedavra
потом на досуге почитаю подробнее - сначала лепим, потом понимаем что слепили, так и живем))
Sergey Hottabych
final нельзя инициализировать в теле конструктора. Нужно раньше это умудриться сделать. Можно тремя способами: при объявлении, через this.х в параметрах конструктора (как тебя научили, оно тоже выполнится до тела) или в блоке инициализаторов (после конструктора двоеточие)
Avada Kedavra
При объявлении я знал, про то что this.x в параметрах выполнится до тела как раз узнал), про двоеточие - что то видел в мануалах, но не вник еще, спасибо!
Sergey Hottabych
Вот это как раз оно.
Avada Kedavra
теперь уже понял)
Roma
[
"Привет!",
{
"type": "bold",
"text": "\n"
},
"Я только начинаю знакомиться с flutter, раньше занимался веб разработкой и меня парит долгие релизы, в вебе я мог отдавать пользователям изменения мгновенно.\n\nНаткнулся на \n",
{
"type": "text_link",
"text": "https://pub.dev/packages/dynamic_widget",
"href": "https://pub.dev/packages/dynamic_widget"
},
"\nТеоретически могу хранить виджеты на сервере, и менять их в своем приложении достаточно быстро. \n\nКак к этому отнесется эпл и гугл при проверке во время публикации? \n\nПрочитал инфу от эпл, нашел только: \n",
{
"type": "bold",
"text": "(iii) If your app needs to download additional resources, disclose the size of the download and prompt users before doing so."
},
" https://",
{
"type": "text_link",
"text": "developer.apple.com/app-store/review/guidelines/",
"href": "http://developer.apple.com/app-store/review/guidelines/"
},
"\n\nХз, как это относится к моему вопросу :)\nЕсть ли у кого то опыт/примеры?"
]
???????
Если по факту: тебе это не надо, причем не только на мобилках, но и в современном вебе.
Roma
Что именно мне не надо доставлять пользователям фичи быстро? Сокращать релизные циклы? Или что?
???????
Настрой CI/CD и отправляй в маркет
???????
Если у тебя там что то отличное от формошлепства - ты быстренько поимеешь себе проблем на голову
Roma
Мне кажется, что это тема отдельного обсуждения. Меня интересует конкретный момент.
Roma
Хоть я и согласен, что это это доп оверхед
???????
Тут беда не в оверхеде, а в том, что ты таким макаром не в жизнь не предскажешь поведение у пользователя
???????
Тут не один интеграционный тест даже не поможет
???????
Когда ты нарендеришь виджеты версии 100500, а бэклогика у пользователя будет версии 1
Roma
Ну это другой вопрос же, как это все менеджить
???????
Если у тебя мобильное приложение не просто формочки со стейтом на сервере и отсутсвием логики на фронте, в нарушение всех принципов RESTful
???????
А так, хоть WebView обмазывайся, если тебя не интересует качество.
Roma
Надеюсь, я правильно понял ответ :)
???????
Ну смотри: 1) То что ты хочешь - очень плохо, причем не только в мобилках, но и современном вебе, это тебе не SSR со стейтом на сервере 2) Делай, если ты понимаешь, что приложение это не только формочки-иконки, но и логика и что ты не в жизнь не предскажешь поведение и не сможешь отловить багу в случае чего. 3) Может тебе лучше в RN вместо флатера податься? А так - структуру виджетов описывай через JSON/XML или еще что. Используй веб вью.
???????
Но по фактам: тебе это не нужно, прям вообще никак.
???????
На ведре, вроде как, еще был хинт, что ты можешь вытянуть новый APK и поставить вместо текущего. Но это или прекрыли или прикроют.
Roma
Ну уже я понял, что мой кейс не оч корректно будет работать, важно было понять, что так можно публиковать и будет ок
Roma
Тем более если можно вебвью то можно все :)
Roma
Что так нельзя эпл у себя в правилах четко пишет
???????
Да. Технически ты можешь пользовать веб вью или строить виджеты из XML. Тебе надо понять, что приложение это не только виджеты (вопреки слогану Everything is widgets)
Roma
Да вроде как понимаю, что приложение это не только отображение, мне казалось, что если можно подтянуть виджеты, то и остальную логику можно в каком-то виде стянуть с сервера
???????
Если тебе критична именно эта фича - посмотри в сторону React Native
???????
Если не критична - оставь этот функционал маркету
Roma
Не критична. И после знакомства с flutter, есть ощущение что у RN нет будущего :)
???????
Именно, будущего нет
???????
Просто сразу привыкай, что в релизном дарте нет рефлексии, а также нет eval и прочих фич.
???????
Это то, чем ты жертвуешь в угоду производительности
Roma
Теперь интересно про архитектуру суперприложений, они наверняка по отдельности, это все веб-вью?
Roma
я про китайский WeChat, например
Roma
Хотя, сам на досуге почитаю
???????
Ну мое мнение: WebView тебе не нужно. Не считаю разумным идею обновлять часть приложения, а часть приложения не обновлять просто так.
???????
Обновляй целиком, если нет особой нужды для обратного.
???????
По наблюдениям: обычно веб вью пользуют те, у кого руки из жепы растут сделать нормально нативно)
Roma
Мне так несколько нативных мобильщиков про flutter сказали :)
???????
Ну у нативщиков жепа горит с любой кроссплатформы
???????
А не только с флатера
???????
По факту они правы лишь в том, что нужно брать инструменты исходя из задачи. Флатер отлично подходит под интерфейсы, но на этом все. Потребуется что то больше - будешь делать на нативе или специальным инструментом, что логично.
Roma
Эти же люди, за редким исключением, не против kotlin/native
???????
И? Много на котлине они уже кроссплатформы наштамповали?
Roma
Обсуждение было теоретическим, я не уточнял :)
Алексей Анисов
Скажу как нативный разработчик - Котлин не взлетел, пишу на флаттере ))
???????
Ну котлин в мобильной разработке не является кроссплатформой. Это работа над ошибками жабы.
???????
Язык хороший, но к кроссплатформе никакого отношения он не имеет.
Roma
Ну почему же? На нем, по-идее, можно написать логику один раз для ios, android и даже web
Алексей Анисов
Там суть в том что язык вроде бы одинаковый, но работает по разному и до тех пор пока ты пишешь функции a + b - все ок, а когда тебе надо запарсить жсон в бекграунде, то уже начинаются пляски
???????
Я и спрашиваю: много уже написали логики под айос и веб на котлине?
???????
Хоть 1 строчку то написали?)
Roma
Чет писали, наприседались с длинной арифметикой, насколько я помню)
???????
Я вот затруднюсь даже ответить, где я в принципе дарт не запускал
???????
конечно запускал и ангуляр дарт и флатер веб и чистый дарт2жс
???????
для полного комплекта только stage xl остался
Roma
Мне для веба flutter показался очень сырым, после первых уроков запустил прилажку в браузере - было далеко не 60 фпс.
???????
и на бэке deb/rpm based и венде и где только не запускал
???????
Все там сегодня отлично, если не через жепу делать
???????
Полгода назад было лагуче, это факт
Roma
Не претендую на звание знатока во flutter, показалось что не так все просто
???????
сейчас проблемы видны только при напрасном перерендеривании больших участков
???????
ну и будет dart2wasm и новый рендер движок, разработка ведется, это вопрос времени
Roma
Например, если навесить ScrollController на список и динамически менять паддинги? :)
???????
Если что, я не топлю ха флатер веб в прод) Для прода он годится только в весьма ограниченных кейсах
???????
да банально setState на весь экран, вместо небольших областей
???????
в общем к оптимизациям и правильному рендеренгу он более критично относится, нежели мобилки
???????
зато из коробки сразу регистрируется как PWA, даже делать ничего не надо
Roma
[
{
"type": "pre",
"text": "void initState() {\n controller = ScrollController(); \n controller.addListener(\n _scrollListener); \n super.initState();\n }\n\n _scrollListener() {\n setState(() {});\n }",
"language": ""
},
"\nДо меня дошло в чем соль была"
]
4??uzhoy .
У нас в стране есть крупная компания и они используют у себя bff, к примеру во время карантина без релиза была выпущена штука которая позволяла по идентификационному номеру гражданина проверять есть ли у него возможность передвижения пешком по городу, вся бизнес логика и Вью вынесена в эту прослойку бфф, а она между апи и клиентом
4??uzhoy .
По итогу даже полицаи открывали это приложение чтобы проверить тебя шедшего по улице, можно ли тебе нарушать самоизоляцию или не, профит же
4??uzhoy .
Но это целый сервис, написанный на пхп
???????
Так фаервол и все дела.
???????
Всегда удивляли люди кричащие про то, что за ними подсматривает винда или все такое, но при этом не могущие вструмить фаервол
4??uzhoy .
Причем тут фаирвол, я про мобильное приложение:)
Fearless Cry
Для кого профит?)
4??uzhoy .
Для компании которая реактивно доставляет фичи, очевидно
Fearless Cry
А про пользователя никто не хочет подумать?
4??uzhoy .
А чё пользователю, беда какая то?
Dmitriy Brolnickij
для мазахистов, которые любят когда их бьют резиновыми полицейскими палочками за нарушения ??
4??uzhoy .
Ладно, про полицию я явно сместил фокус, суть в том что ты хочешь узнать можно ли тебе выходить или нет, ты узнал
4??uzhoy .
И то что эту штуку не релизили в новой версии икс игрик зет +1
4??uzhoy .
А выкинули задеплоив в этот сервис
Fearless Cry
На айос запрещено делать код пуш
4??uzhoy .
А пользователь утянул
4??uzhoy .
Нет, понятия не имею
|