Программирование : Dart & Flutter по-русски
Stanislav Sagan
ааа.. ну ладно) Спасибо)))
Stanislav Sagan
Ах, ну да, туплю
KeepOnSmiling ??
[
{
"type": "link",
"text": "https://pub.dev/packages/flutter_svg#-installing-tab-"
}
]
KeepOnSmiling ??
Вот там есть ссылка на репозиторий, а вот в нём уже есть пример использования
KeepOnSmiling ??
[
{
"type": "link",
"text": "https://github.com/dnfield/flutter_svg/blob/master/example/lib/main.dart"
}
]
Stanislav Sagan
Ну, у меня и с тем импортом и с тем работает...
KeepOnSmiling ??
И вот там можно посмотреть что они подключали и как они используют этот пакет
KeepOnSmiling ??
Не за что :)
admin
[
"Ребят, есть у кого решение?\n",
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/31597"
},
""
]
Cmndwn
Пробросить через коллбек наверх либо через пропс вниз?
admin
из 15и экранов? слишком муторно.. нит ничо такого типа Navigator.topMostContext?
Stanislav Sagan
Я не понимаю что оно от меня хочет((((((((
Cmndwn
У меня такое выпадает когда забываю в pubspec что-то дописать либо там опечатка
Cmndwn
А что за модуль для работы с свг?
Stanislav Sagan
Да ну как бы... эм..
Stanislav Sagan
[
{
"type": "code",
"text": "flutter_svg: 0.14.1"
}
]
Cmndwn
Так а список ассетсов указан в pubspec.yaml?
Stanislav Sagan
Эм.. а как это? сейчас погуглю куда указывать
Cmndwn
Если совсем по простому
Stanislav Sagan
Урааа... да, все идиалити... все работает!) Спасибо.. что-то я провтыкал что асеты нужно в pubspec.yaml добавлять)))) ????
Stanislav Sagan
Подскажите пожалуйста еще вопрос, Я кликаю на корзину, а анимация клика идет и на родителя (хотя клик по родителю не срабатыват) Скрин. Вопрос, можно ли чтоб при клике на корзину не анимировался клик по родителю.. или единственный вариант - это сделать 2 соседних элемента без вложенности друг в друга? Спасибо
Vlad
Завоевали меня, с чего учить?
Fearless Cry
Оберните Icon в IconButton
Stanislav Sagan
О, спасибо, сейчас попробую))))
Artyom Nesterenko
[
"Finished! Porting a 75,000 line native iOS app to Flutter\n",
{
"type": "link",
"text": "https://medium.com/flutter-community/finished-porting-a-75-000-line-native-ios-app-to-flutter-b5c0bff93715"
}
]
Ivan Danyliuk
[
"Такой кейс – раньше передавал объект на класс API в параметры виджета. Переписал код по феншую, заворачиваю виджет в Provider, который держит объект API. Всё бы хорошо, только теперь, когда нужно вызвать метод API как только виджет создался (а-ля получить список документов, когда открылось окно), флаттер говорит ",
{
"type": "code",
"text": "inheritFromWidgetOfExactType(InheritedProvider ) or inheritFromElement() was called before _MainScreenState.initState() completed."
},
"\n\nЕсли верить докам, то из initState() лучше не вызывать вообще ничего, что шерится через Провайдер. Но это тогда сильно умеьшает его пользу, ну и, на самом деле, мало смысла имеет (через параметр если передать, то норм, а если через провайдер – то прям нельзя).\n\nКак с этим бороться? Находил на SO какие-то костыли вроде ",
{
"type": "code",
"text": "Future.delayed(Duration.zero)"
},
" (и ещё какой-то вроде Scheduler.binding, не вспомню), но это как-то слишком костыли вроде."
]
Vitaly Pashichev
Всем привет) Никто больше не сталкивался с пробелмой, что flutter build apk собирает apk с buildnumber 1 и buildversion 1.0.0 вне зависимости от того, какой указан в pubspec?
KeepOnSmiling ??
А это разве не в градл указывается?
Ivan Danyliuk
какой хаос? тут речь скорее об ограничениях использования Provider из initState.
Ivan Danyliuk
[
"крестик не ношу) ну ",
{
"type": "code",
"text": "initState()"
},
" я воспринимаю не столько как \"место где инициализировать стейт\", сколько как \"место где стартануть функции при создании виджета\". хотя, да, логика названия как-бы намекает."
]
Ivan Danyliuk
[
"откуда ещё можно запускать? ",
{
"type": "code",
"text": "didUpdateWidget"
},
" не предалать."
]
Ivan Danyliuk
я же примитивную вещь пытаюсь сделать, которая работает идеально, если передавать объект через параметр, а не через провайдер. тот факт, что нужно рефакторить с мясом всё приложение, только потому что поменял один маленький шуруп в одном классе – это как бы печально. но хорошо, стримбилдер. что именно в стриме будет? (ссори за тупые вопросы, я мобильной разработкой занимался лишь поверхностно, плюс с детства аллергия на редукс, и мне какие-то общепринятые паттерны могут быть не знакомы)
Andrii
Передавайте апи в конструктор этого стейтфул виджета либо функцию-фабрику API. Лучше конечно иметь какого-нибудь посредника между юаем и api
Ivan Danyliuk
> Передавайте апи в конструктор этого стейтфул виджета Так вот от этого как раз ушёл только что (по другим причинам).
Ivan Danyliuk
За посредника за - он даже есть для других виджетов, но тут не особо вижу как красиво сделать. Всё что нужно – это при старте и при нажатии на одну кнопочку делать условный api.reload() (который уже будет модель обновлять, а та. в свою очередь, через провайдер перерисовывать виджет).
Ivan Danyliuk
Юрий, я всё слова понял, только не понял, кто и что будет писать в стрим? Я пытаюсь сделать, чтобы виджет сам инициализировал вызов api. (может быть не стоит так делать)
Andrii
Используйте фабричную функцию вместо провайдера и реализацией вне этого виджета
Ivan Danyliuk
ага, так и было, пока тесты не начал писать.
Ivan Danyliuk
> Используйте фабричную функцию вместо провайдера и с реализацией вне этого виджета Хм. Я пошёл путем провайдера, чтобы легко мокать в тестах.
Ivan Danyliuk
[
"Ладно, чуть упрощу вопрос. Показать диалог или снекбар при создании виджета – откуда это делать, если не из ",
{
"type": "code",
"text": "initState()"
},
"?"
]
Andrii
Эту функцию мокать даже проще, разве нет?
Ivan Danyliuk
Хм. Не знаю. Но обилие несовместимых друг с другом вариантов заставляет меня вспоминать слова Дейкстры 75-го года о добавленной сложности. :(
Andrii
Это не предусмотрено декларативным юаем. Стейт дривен юай же :)
Ivan Danyliuk
Эх. Юрий, а какая именно из игрушек? Пульт? )
Ivan Danyliuk
Тоесть я таки не совсем по феншую делал?
Ivan Danyliuk
Понял. Подумаю как присобачить стримбилдер. Спасибо за наводку в нужном направлении.
Ivan Danyliuk
Оо, поздравляю!
Ivan Danyliuk
Специально под флаттер взял или давно и так хотел?
Ivan Danyliuk
теперь бы ещё монитор побольше. я как пересел на 38 дюймовый ultra-wide зверь от LG – нарадоваться не могу.
Ivan Danyliuk
ладно, не будем оффтопить
Ivan Danyliuk
я вообще терпеть ненавижу паттерны - всмысле когда люди не понимают, с чем работают, а просто применяют заученные паттерны. именно поэтому я пытаюсь сделать максимально просто то как я вижу логику, и тут оказывается, что есть 15 способов, и все они в чём-то несовместимы друг с другом, в и пытаюсь какие-то крупицы здравого смысла в этом найти.
Ivan Danyliuk
нету такого паттерна в книжке :)))
KeepOnSmiling ??
Не очень понял, если в градл нет переменной, а в пабспеке есть, то какая версия будет в билде?
XbIK
[
"вот хорошо написано, проверено, работает\n“Versioning with Flutter” by Ralph Bergmann ",
{
"type": "link",
"text": "https://link.medium.com/y4bgx24MKZ"
},
""
]
Nightwelf
кто может подсказать по Crashlytics?
Nightwelf
никак не могу протестить его работу
Nightwelf
как он вообще работает? firebase_crashlytics поставил, все настроил как в инструкции, но throw не ловит :(
Nightwelf
как часто там обновляется инфа?
Григорий Коваленко
По идее должен практически сразу показать после запуска. По крайней мере на андроиде в нативе так работает
Nightwelf
блин :( не работает значит :(
Artem Zaitsev
Именно файербейз вообще по-разному обновляется, но раз в сутки вроде точно. Сам использую flutter_crashlytics. Там чуть по быстрее обновление. Плюс он обычно репорты отправляет при перезапуске
Nightwelf
Crashlytics.instance.enableInDevMode = true; FlutterError.onError = (FlutterErrorDetails details) { Crashlytics.instance.recordFlutterError(details); }; runApp(App());
Nightwelf
так не работает
Nightwelf
подскажи как у тебя настроено, пожалуйста
Slava Yefremov
[
"Всем привет. Использую BehaviorSubject RxDart'а. У него есть удобный ",
{
"type": "code",
"text": ".sink.add()"
},
" чтоб значение обновлять.\n\nПодскажите, пожалуйста, как выполнять ",
{
"type": "code",
"text": ".sink.add()"
},
" вместе с ",
{
"type": "code",
"text": "debounceTime()"
},
" чтоб значение через время обновлялось."
]
Yuriy
генерировать события по таймеру?
Serge Shkurko
В rxDart есть debounce и throttle
Serge Shkurko
Но он на observable устанавливается
Yuriy
ну самое просто создать таймер и внутри создавать события
Slava Yefremov
[
"Ну, у BehaviorSubject есть все, что и у Observable, насколько знаю. Просто вижу метод ",
{
"type": "code",
"text": "debounceTime()"
},
", вижу метод ",
{
"type": "code",
"text": "sink.add()"
},
", а как вместе связать не знаю.\n\nВот что получилось:\n",
{
"type": "pre",
"text": "_subject.debounceTime(const Duration(seconds: 3)).take(1).listen((_) {\n _subject.sink.add(true);\n });",
"language": ""
},
"\n\nНе знаю, правда, насколько это правильно и некостыльно"
]
Slava Yefremov
а если из другого места этот метод вызову в то время, когда в первом месте таймер еще не завершился? Все ок будет? Я просто из JS пришел, потому думаю, нужно убедиться, что таймеры друг друга не поломают
Krat0S
Соучастники, тут недавно упоминались всякие крутые курсы и тп. Проблема в том, что я уже слишком стар, чтобы смотреть видеокурсы)) Ни у кого нет ссылочек на нормальные курсы в текстовом виде? Рус/англ, платно/бесплатно, лишь бы читать, а не смотреть.
Kherel
Может быть, кто-нибудь находил какие-то ресурсы, по canvas во флаттер. Очень мало информации, на некоторые методы кроме официальной документации вообще ничего нет. Там иногда не совсем понятно, как использовать...
Krat0S
Стейт менеджмент, блок, редакс
Kherel
[
{
"type": "link",
"text": "https://resocoder.com/videos/"
},
" вот у чувака есть текстовая версия видосов. там можно почитать и примеры кода и водосы короткие вообщем-то.."
]
Krat0S
О, неплохо, спасибо!
Kherel
[
"вообще есть медиум флаттер комьюнити там вообщем-то много вводной информации разбиралось уже.. ",
{
"type": "link",
"text": "https://medium.com/flutter-community"
},
""
]
Anatoliy Dvoryashin
привет! Есть анимация от Cirrcleavatar c backgroudImage до обычного image, все отлично, плавно. Но есть один момент который меня добивает. в момент перехода, видно синий круг circle avatar, foregroundColor: Colors.transparent, и backgroundColor Colors.transparent, не фига не уберают синий круг. Если у кого есть мысли по этому поводу, напишите
Krat0S
Медиум регулярно почитываю, оч много интересного ))
Krat0S
Вообще я нативщик iOS/Android, но вот уже месяц как курю флаттер и дарт, оч нравится. Запаблишил приложуху в стор и плей, сейчас закрытую альфу гоняем. Уже трижды практически с нуля переписывал)) Осознаю, что не хватает знаний, поэтому хочется поучиться)
Evgeny Kot
[
"Новая вакансия на канале\n",
{
"type": "link",
"text": "https://t.me/dartlang_jobs"
},
""
]
Vitaly Pashichev
Там скрипт, который тянет данные в properties, а оттуда уже в градл. Ток в градл это не попадает
Влад Пасечник
[
"В правилах группы не нашёл запрета, по этому...)\n\nДоделал наконец-то своё приложение на Flutter, и хочу им поделиться.\nЭто только первая версия, так что прошу сильно не критиковать)\n",
{
"type": "link",
"text": "https://play.google.com/store/apps/details?id=app.hugly.social_pro"
},
""
]
Sergey ?
17 мегабайт, многовато для рест клиента ??
Kherel
класс, как он определяет, гостей?
Valentyn Stepanov
так реклама 10 мб)
Влад Пасечник
Всё же графический движок много занимает.
Влад Пасечник
Там нет рекламы)
Sergey ?
Hello world побитый по ABI около 4 мб
Влад Пасечник
К сожалению этим вопросом сильно не задавался. В следующих версиях буду оптимизировать размер.
Влад Пасечник
На основе статистике твоего профиля. Там довольно сложный механизм. Точность определения не 100%, но сильно приближается к ней.
Vyacheslav
Сами разработчики flutter признают проблемы с размерами приложения. Недавно хотел минимизировать размер (8,5 при загрузке, 23 на устройстве), ничего не смог сделать с этим...
DVS (Read The F.ng Manual) Studio (NoHello)
Ну и что. На телефонах сейчас и терабайты вклинивают. Вообще пофиг на размер на устройстве Главное чтоб качать надо было мало
Vyacheslav
Я тоже так подумал
Vyacheslav
Для самоуспокоения ??
Олжас Сулеймен
Десктоп уже в бета ветке
Олжас Сулеймен
Как и веб, не тот что отдельно
Rinat Kurmashev
ни у кого не было проблем с установкой flutter desktop на windows?
Rinat Kurmashev
скачал visual studio, установил все необходимые пакеты, которые просит флаттер, но он все равно ругается что их якобы нет
Rinat Kurmashev
в доках пишут что все должно работать
Rinat Kurmashev
на двух компах попробовал, думал проблема в том что home для одного языка
Rinat Kurmashev
нет, на про та же ерунда
Nurdin Nurdinos
Планируются ли митапы по flutter в Москве?
Олжас Сулеймен
А что пишет? flutter run с ключем -v запускали? Там лог подробный
Rinat Kurmashev
flutter doctor ругается
Rinat Kurmashev
там даже не flutter run
Vladislav
А что пишет то, он вроде все подробно выводит
KeepOnSmiling ??
Это баг или фича? :)
Rinat Kurmashev
ща сделаю скрин
Rinat Kurmashev
[
"запилил issue ",
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/39970"
},
""
]
Yuriy
чувак у тебя мастер
Yuriy
ветка а не релизная
Yuriy
ЗАЧЕМ? ты что десктопом занимешься? читай доку внимательно, свични на релизный канал!
Егор Шепелев
[
{
"type": "link",
"text": "https://www.meetup.com/ru-RU/GDG-Moscow/events/263428346/"
}
]
Yuriy
о дочитал, десктоп всетаки))
Rinat Kurmashev
на мобилках все отлично
Олжас Сулеймен
На винде магические проблемы, на линуксе все работает отлично и оригинальный и гошный, без танцев с бубном, гошный на винде тоже отлично работает
Yuriy
на маке тоже полет нормальный
Vladislav
На андроид студии запусти если все норм то это с студией проблема я на vusual code под windows сижу все впорядке
Rinat Kurmashev
flutter run для desktop example не работает из консоли, зачем в андроид студии запускать?
Yerassyl
у меня есть дропдаун и я меняю значение item , на другие через сетстейт, когда первый раз меняю значение то он показывает нужный лист в дропдауне, Вот когда во второй раз меняю через сетстейт, в дродауне возвращает item = null
Yerassyl
а в дропдауне есть лист переменное , которое меняется от зависимости сетстейт
Олжас Сулеймен
Хех в бета добавили только конфиг для десктопа ( и веба), а сам десктоп нужен мастер ))
Ars
ребят, посоветуйте либу для быстрой настройки платежки в приложении, можно даже со сторонними сервисами. задача сделать очень быстро ??
i ??m
Привет всем, существуют книги по флаттеру на русском?
Kherel
flattery удалил канал, закрыл гит, удалил статьи... ((( ктонибудь форкал его?
Александр
Теперь походу всё это в виде курса на Udemy сделает
Kherel
помоему он вошел в офицальную команду флаттер, и теперь везде удалился, даже твитер закрыл ??
Roman Peshkov
действительно, удалил
Roman Peshkov
и даже твиттер аккаунт
Roman Peshkov
он работал в гугл, может уволили)
Roman Peshkov
видосы хоть и старые были, но очень крутые
Yerassyl
Это константа, их несколько, просто вызываю нужную
евгений
Цвет статус бара на iosне меняется
евгений
Самое приложение белое
евгений
И статус бар светлый
евгений
Соответственно статус бара не видно
Evgeny Kot
[
{
"type": "mention",
"text": "@miss_i2p"
},
" вы пишите что хотите, зачем замусоривать канал"
]
Evgeny Kot
хватит флудить
Kherel
[
{
"type": "link",
"text": "https://github.com/kherel/review_slider"
}
]
Kherel
кому будет интересно
!van
закинь в awesome-flutter
Kherel
Спасибо за совет завтра почитаю как это сделать
Constantine
[
{
"type": "link",
"text": "https://github.com/kherel/review_slider/blob/master/lib/main.dart#L317"
},
" точно ли нужно?))"
]
Adv0cat
Всем ночные приветули!))
Stanislav Sagan
А тебе обнимашки ??
Adv0cat
Как у флаттера с визуальным билдером приложения?)
Adv0cat
и заодно нубский вопросец, какая идешечка предпочтительней для разработки? O?
Stanislav Sagan
Подскажите пожалуйста, есть у флатера авторизация через смс и firebase. И вроде все получается, но можно ещё сюда как-то хостинг прикрутить? Можно ли например чтоб хостинг тоже подключился к firebase и забрал к примеру токен который получил юзер? Хочется чтоб как-то безопасно это было же..
Stanislav Sagan
Та тут всё просто, потому что выбора не много) Либо Андроид студио - я удивляюсь чего это он у меня не просит лицензию оплатить... Либо интелиджи с плагинами. Будет то же самое что и первое. Либо вскод. Других вариантов вроде как нет
Adv0cat
Эт то понятно, но часто бывает так, что какие-то идеешки более нашпигованые или более сладкие аозможности))
Stanislav Sagan
Интелиджи по умолчанию больше нашпигована чем вскод) А отличия студио от просто интелиджи - ну даже не знаю. Кажись у них только иконка запуска отличается.. но это не точно.. я пользую студио
Adv0cat
поедположу, что файрбейз просто бд с расширенными возможностями и обычно бд прикрывается сервером на хостинге и таких вопросов не появляется, но поидее в вашей ситуации можно спокойно навернуть какойнибудь aws.amazon с сервисом смс отправки, и из приложения просто стучаться и к бд и к серверу на авс, а сервер в свою очередь тоже подключался бы к файрбейсу)
Adv0cat
но это не точно ??
l
вскод с плагинами вполне сходит за иде
Stanislav Sagan
Да, почти так.. фаербейз это Гугл - сервис. Там и бд и авторизации и всякое есть. И вроде как 10 тыс авторизацией в месяц бесплатно - что меня привлекло. Но дело в том что с приложения авторизоваться в сервисе Гугл по телефону - легко. Они все красиво упаковали до меня.. а как эту авторизацию связывать с хостингом - я уже не понимаю)
Adv0cat
Ну еси чо, у меня весь пакет интелиджи и так куплен, так что я выбираю из лучшего ??
Stanislav Sagan
Точнее понимаю, что хостинг должен быть посредником, но мне бы пример, или вдруг кто уже делал такое..
Adv0cat
Я просто не одну технологию сразу изучаю, поэтому если ты пойдешьв чатик Rust , тоже меня заметишь ??
Stanislav Sagan
Понял, но с реакта на флаттер - это правильный путь) Точно говорю) Для мобилок. Для веба - не берусь утверждать, не знаю
Adv0cat
Ну так то мой путь несколько иной)) Но флаттер я рассматриваю как платформу для быстрого прототипирования кросплатформа на мобилку, а потом переписывания под каждую платформу своего)
Adv0cat
ну и файрбейз я бы тоже только для прототипа использовал, иначе будет дорого потом это стоить))
Adv0cat
Просто firebase первый платный план 25$ по сути за эти деньги можно купить нехилую тачку на aws или digitalocean, настроить её как угодно и при расширении платить чуточку больше, а не как у файрбейса. Плюс у того же амазона первый год довольно таки много бесплатного дается, теде возможности что и у файрбейса, но более гибкие :)
Stanislav Sagan
Хм, но я планы плохо изучал.. просто увидел статью что авторизаций по смс 10 тыс в месяц бесплатно и быстро пошел firebase пробовать. Меня только смс и интересует, так то сервер дополнительно в любом случае заводить собираюсь
Stanislav Sagan
Я уже тогда завтра гляну, но спасибо за наводку)
Adv0cat
ну смс вопще дорогое удовольствие, так шо неисключено, что 10к смс это неплохаю такая штука, но модно же файрбейс реально токо для этого и использовать, без остальных сервисов)
CrazyAlarmClock
Всем доброго времени суток , кто знает , внутреннее тестирование в Google play долго проходит проверку гугла ?
Vitaly Pashichev
За часов 9 недавно прошел
Krat0S
При первой загрузке я три дня ждал. Обновления быстрее проходят
CrazyAlarmClock
Спасибо всем за инфу !
Evgeny Cherkasov
Раньше несколько часов занимало. Последнее время может до 2-3 дней быть
CrazyAlarmClock
а в течении дня закртый тест никак нельзя запустить ? или какие нибудь варианты
Evgeny Cherkasov
Ну вот последние приложения у меня все пару дней аппрувились при первой загрузке. Без разницы какой канал, закрытый тест также. Последующие обновления должны быть быстро.
CrazyAlarmClock
эх, ну ладно
KeepOnSmiling ??
Как в Флаттер фо веб работают вызовы файловой системы? Он с локального диска считывает их?
KeepOnSmiling ??
Там все очень грустно сейчас или работать можно?
KeepOnSmiling ??
Влом писать на каком-нибудь фазере почти тоже самое :)
Serge Shkurko
не думаю что они там работают
admin
[
"static Future readFile(File file) async {\n final completer = Completer();\n final reader = FileReader();\n reader.readAsDataUrl(file);\n reader.onError.listen((error) {\n debugPrint(\"Error:\" + error.toString());\n completer.completeError(error);\n });\n await reader.onLoad.first;\n completer.complete(reader.result as String);\n return completer.future;\n }\n\n static Future _getFile(String type) {\n final InputElement input = document.createElement('input');\n final completer = Completer();\n input\n ..type = 'file'\n ..accept = type + '/*';\n input.onChange.listen((e) async {\n final List files = input.files;\n completer.complete(files[0]);\n });\n ",
{
"type": "link",
"text": "input.click"
},
"();\n return completer.future;\n }\n\n static Future openFile(String type) async {\n var data = await _getFile(type);\n return data;\n }"
]
Evgeny Cherkasov
Наверное глупый вопрос - можно ли под Windows проверить как работает iOS версия Flutter приложения?
toTheMoon??
надо макбукич покупать, или(чисто слышал версию) эмулятор макОси на винду(не проверено)
admin
На виртуалку установи макось
Evgeny Cherkasov
Спасибо попробую с виртуалкой
KeepOnSmiling ??
Ух ничего себе :) а будет ли полная совместимость между платформами, чтобы единый код был и под вебом и под мобайлом, неизвестно?
KeepOnSmiling ??
Не хочется под веб отдельную прилу делать, куча лишней работы :)
admin
врядли. но поколдовать можно как-нибудь
KeepOnSmiling ??
Если бек написать на nodejs.. так можно конечно попробовать унифицировать версии..
|