Программирование : Dart & Flutter по-русски
Artyom Nesterenko
Наверняка у вас на телефоне их хватает.
Artyom Nesterenko
А вы странные решения изобретаете.
Кирилл Пешин
Глюки У меня TextField.text берется из sqlite и при возврате назад он не обновляется
Artyom Nesterenko
Значит, нужно смотреть, почему это так и решать проблему, а не избегать ее. Вы навигацию в собственном приложении ломаете и приходится придумывать разные стрелки. То, что у вас системный back из-за этого не работает – это очень нехорошо.
Artyom Nesterenko
Он должен работать всегда. А с главного экрана (первого экрана в стеке) выкидывать из приложения.
Кирилл Пешин
Согласен. Но пока решение не найдено, был выбран такой вариант...??
Кирилл Пешин
Кстати... Может что посоветуете... Есть textField, я его заполняю первоначально в initState из sqlite, при переходе и возврате через push, он соответственно не обновляется, т.к. благополучно уже сохранил состояние... В Андроиде есть onResume, если не ошибаюсь, с наименованием... А как быть тут?? Что можно отловить когда вернулся на "страницу"??
Александр Котков
[
{
"type": "link",
"text": "https://docs.flutter.io/flutter/widgets/RouteObserver-class.html"
}
]
Кирилл Пешин
Спасибо. Нада посмотреть дома...
Hellomik
хей не подскажите как сделать star rating только с помощю double
Artyom Nesterenko
Можно использовать разного рода подписки, стримы, и таким образом сохранять состояние, но это уже углубление в архитектуру. Из вариантов попроще можно прокинуть значение на вторую страницу и его же вернуть обратно через pop. А для отслеживания возврата на страницу вам уже посоветовали.
Artyom Nesterenko
[
{
"type": "link",
"text": "https://stackoverflow.com/a/46645766/5569272"
}
]
Andrey Gaysin
Всем привет! Хочу погрузиться в дивный мир Flutter. Какую архитектуру для начала посоветуете? На дроиде привык работать с MVVM.
Олжас Сулеймен
[
{
"type": "link",
"text": "https://medium.com/flutterpub/blend-it-like-anything-3fe67148f3f4"
},
" через бленд можно сделать"
]
Sergey Lavinov
Тут вроде нет какого-то общепринятого подхода пока, пока что в почете BLoC
Artyom Nesterenko
Интересный подход!
Sergey Lavinov
Адепты реакта еще Redux используют, не знаю, насколько успешно
Andrey Gaysin
Спасибо, я вот мельком читал про него, тоже думал на нем остановиться. Буду пробовать!
Sergey Lavinov
[
{
"type": "mention",
"text": "@kroppli"
},
" Привет, ты, помнится, скидывал мне классную статью про каст виджета в изображение. А сам не практиковал? И вообще баловался таким кто-нибудь?"
]
Sergey Lavinov
Я когда полученное изображение загоняю в Image.memory() получаю тупо черноту
Sergey Lavinov
Чего, изображения?
Sergey Lavinov
Хрен знает, я полагаю, это зависит от разрешения экрана. Этак 2/3 экрана занимает
Sergey Lavinov
О, как буду у девайса, могу чекнуть длину полученного массива байт для более точного ответа
Hellomik
хей не скжите как писать canvas.drawImage ?
Maria
можно через RepaintBoundary виджет. Найти как-то его, вызвать findRenderObject() и сделать toImage
Sergey Lavinov
Это то, что описано в статье, так и сделал. После чего полученный массив байт напрямую затолкал в Image.memory()
northelks
ошибки есть какие?
northelks
бета или мастер?
Sergey Lavinov
Точно не бета, то, что приходит с flutter upgrade
Sergey Lavinov
Есть предположение, но проверить пока не могу. Там виджет с самого начала черный, потом фейдом появляется содержимое. Снапшот я делаю после фейда, но мало ли, вдруг он помнит
northelks
хм, даже интересно стало, может чего поломалось в 1.5, вот решил затестить, скопипастил побыстрому пример, работает
Spirit??
что с таким алертом делать?
Sergey Lavinov
Отпишу тогда как у девайса буду. Пожалуй, тоже начну с копипасты примера. Мне чот на это не хватило то ли мозгов, то ли времени)
northelks
сделай с самого начала виджет к примеру синим, и затести
northelks
если будет синия по итогу картинка, значит будет понятно отчего)
northelks
телепатически понять наши ответы)
northelks
п.с. можно было бы сделать скриншот с проблемой побольше..
Spirit??
это на всех классах
Spirit??
скажите, что за синие уголки у кнопки?
Artyom Nesterenko
Цвет от Container просвечивается.
Spirit??
как отверстия от пуль?
Artyom Nesterenko
Типа того.
Spirit??
блин точно же конт, спасибо
Artyom Nesterenko
[
"Полевой, внеплановый и актуальный спецвыпуск с Google I/O 2019!\n\n",
{
"type": "link",
"text": "https://soundcloud.com/flutterdevpodcast/4-google-io-2019"
},
"\n\nВсе ждали от Google I/O откровений, революций, переворотов. Случились ли они в мире Flutter? Откладывается ли выход в веб и завоевание десктопов? Насколько обоснованы слухи о поддержке Flutter'ом Kotlin? Почему большая часть виджетов не адаптируются под платформу из коробки? Какую архитектуру рекомендуют использовать Flutter-инженеры? Делимся новыми знаниями и впечатлениями от этого невероятно масштабного мероприятия в новом спецвыпуске Flutter Dev Podcast!\n\nЗа микрофоном: Евгений Сатуров, Евгений Кот, Александр Денисов.\n\nСпонсор выпуска - студия разработки Surf (Mobile + AI) ",
{
"type": "link",
"text": "surfstudio.ru/"
},
"\n\nGoogle I/O Keynote: ",
{
"type": "link",
"text": "https://www.youtube.com/watch?v=lyRPyRKHO8M"
},
"\nBeyond Mobile: Material Design, Adaptable UIs, and Flutter (Google I/O'19): ",
{
"type": "link",
"text": "https://www.youtube.com/watch?v=YSULAJf6R6M"
},
"\nBeyond Mobile: Building Flutter Apps for iOS, Android, Chrome OS, and Web (Google I/O'19): ",
{
"type": "link",
"text": "https://www.youtube.com/watch?v=IyFZznAk69U"
},
"\nBuilding for iOS with Flutter (Google I/O'19): ",
{
"type": "link",
"text": "https://www.youtube.com/watch?v=ZBJa-xjZl3w"
},
"\nPragmatic State Management in Flutter (Google I/O'19): ",
{
"type": "link",
"text": "https://www.youtube.com/watch?v=d_m5csmrf7I"
},
"\nDart: Productive, Fast, Multi-Platform - Pick 3 (Google I/O'19): ",
{
"type": "link",
"text": "https://www.youtube.com/watch?v=J5DQRPRBiFI"
},
"\n\nОфициальный чат подкаста: ",
{
"type": "link",
"text": "t.me/flutterdevpodcast"
},
""
]
Oleg Dubrovin
А кто-нибудь занимался локализацией через intl_translation?
Farid
ооо, крутота подъехала, жаль, что такой короткий на полчаса.
Oleg Dubrovin
А правильно ли я понимаю что чтобы добавить новое слово в перевод нужно - а) добавить новый геттер в Localizations б) Добавить его перевод во все intl_*.arb г) Вызвать команду flutter pub pub run intl_translation:generate_from_arb --output-dir=lib/l10n --no-use-deferred-loading lib/src/localizations.dart lib/l10n/intl_*.arb ?
Sergey Lavinov
Да, как минимум это)
Sergey Lavinov
Возможно что-то ещё
Oleg Dubrovin
А что за жесть такая?)
Oleg Dubrovin
нет ли никакого плагина там для студии который это все автоматизирует?
Sergey Lavinov
Ну, согласен, процесс не самый приятный, зато есть плюшки типа упрощения работы с множествами
Sergey Lavinov
Для студии хз, я команды для генерации арб и обратно как скрипты сохранил, дальше день автоматизировать стало)
Oleg Dubrovin
Я просто на медиуме видел статью - автор делал локализацию парсингом обычного json из assert
Sergey Lavinov
Решил, что потом разом все переведу
Sergey Lavinov
Это не гибко)
Sergey Lavinov
Из ассетов всм?
Oleg Dubrovin
[
{
"type": "link",
"text": "https://blog.geekyants.com/flutter-in-app-localization-438289682f0c"
}
]
Oleg Dubrovin
static Future load(Locale locale) async { AppTranslations appTranslations = AppTranslations(locale); String jsonContent = await rootBundle.loadString("assets/locale/localization_${locale.languageCode}.json"); _localisedValues = json.decode(jsonContent); return appTranslations; }
Alik E.
Ну это прям как-то смешно даже
Sergey Lavinov
Сейчас не могу глянуть статью, но превьюха знакомая, по-моему что-то меня остановило так делать
Artyom Nesterenko
Есть, причем давно, но как работает не знаю.
Artyom Nesterenko
Тестируют Flutter for Web. ??
Cenator ??
Там же канва, у нее нет оверфлоу
Alik E.
Ну там ещё тестировать и тестировать
admin
он в js будет компилится ?
Анатолий
Кстати да, тут кто-то уже запускал его, что на выходе получается?
Анатолий
Не где он рисует а в каком виде на винте проект после билда
Artyom Nesterenko
Через dart2js во что-то там, я не разбирался.
admin
не вкурсах как webasm работает тоже в js ?
Artyom Nesterenko
Того и гляди, когда станет stable, будет WebAssembly. Ух заживем.
Artyom Nesterenko
webasm — это webasm, тут JS не при чем.
Artyom Nesterenko
Но общаться они могут.
Artyom Nesterenko
Язык, поддерживающий WebAssembly, компилируется в него и льется в браузер. А ваш код на JS может к нему обращаться.
Artyom Nesterenko
А это вы написали почти то же самое, как если бы я сказал, что x86 assembly компилируется в Java.
Cenator ??
Ну вообще без js wasm не работает
Cenator ??
Это дополнение а не замена
Анатолий
Работает, че нет? У него даже доступ к дом есть
Artyom Nesterenko
Мой ответ был к тому, что вопрошающий перепутал их местами и вообще смешал.
Artyom Nesterenko
Работает, но пока не полностью.
Artyom Nesterenko
То есть полностью отказаться от JS пока нельзя, но в обозримом будущем будет можно.
Artyom Nesterenko
И тогда только WebAssembly использовать
Artyom Nesterenko
Ну писать уже можно полностью на каком-нибудь из поддерживающих его языке, не прикасаясь к JS.
Artyom Nesterenko
А что там под капотом, не всех волнует.
Cenator ??
[
{
"type": "link",
"text": "https://gist.github.com/MaxGraey/326b1c04d66de3beb247c2c1e6358fd0#11-%D0%BC%D0%BE%D0%B6%D0%B5%D1%82-%D0%BB%D0%B8-webassembly-%D0%BC%D0%B0%D0%BD%D0%B8%D0%BF%D1%83%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-dom"
}
]
Cenator ??
Доступ не прямой
Artyom Nesterenko
Я это и имел в виду. ??
Cenator ??
[
"По ссылке описано все, надеюсь всем понятно почему ",
{
"type": "bold",
"text": "полностью"
},
" заменить не получится"
]
Анатолий
Хм, прямого таки нет, я думал есть
Анатолий
Спасибо, полезная ссылочка
Оганнес Асатрян
[
{
"type": "mention",
"text": "@bunopus"
}
]
Anton Anokhin
Спасибо! Удалил
Cenator ??
Какой самый простой способ сделать текст кликабельным, чтобы не пришлось убирать стили с кнопки?
Artyom Nesterenko
GestureDetector
Sergey Lavinov
Кароч, анимация то ли поздно стартовала, то ли длилась порядочно дольше заявленного, но при уменьшении времени анимации и увеличении времени ожидания до взятия снапшота все отрисовалось корректно
Eugene
[
{
"type": "link",
"text": "https://vc.ru/dev/66728-google-obyavila-kotlin-prioritetnym-yazykom-programmirovaniya-dlya-razrabotki-android-prilozheniy"
},
" джава -- нахуй это прекрасное решение, но выходит что некие вариации на платформе флюттер с дарт. Получается что оптимально сейчас это firebase + nodejs + dart + es + kotlin..."
]
Artyom Nesterenko
Ну, там еще и новую библиотеку анонсировали для декларативного UI, написанную на Kotlin и под Kotlin, что как бы намекает на подготовку разработчиков к Flutter.
Cenator ??
Подскажешь название?
Artyom Nesterenko
Еще сегодня заметил, что из всех видео с Google I/O больше всего просмотров у доклада "Beyond Mobile" от парней в костюмах про Flutter. ??
Artyom Nesterenko
Jetpack Compose
Artyom Nesterenko
Не считая два кейноута, конечно.
Eugene
Js во всех его инкарнациях никуда не девается но как компилируемый на кроссплатформе становится kotlin -- нужно все же глянуть что чайник
Artyom Nesterenko
А все начало доклада они рассказывали, как сожалеют о тех решениях, которые когда-то приняли и том, что сейчас творится в Android с классами вьюх, приводя примеры и смеясь над самими собой вместе с залом. Один из самых интересных докладов, на мой взгляд, правда, это уже оффтоп. ??
Artyom Nesterenko
Мое скромное мнение и расследование.
Artyom Nesterenko
А никому не показалось, что Jetpack Compose - это явный намек на Flutter? Зловещий план вполне ясен и понятен: его выпускают, разработчикам нравится, все довольны и начинают его использовать. После этого привыкают, а тут оп, и остаётся Flutter, а Android уходит. А с виду то же самое и переучиваться не надо.
Artyom Nesterenko
И все это в течение 3-5 лет, как и планировалось. За это время выходит Fuchsia и Flutter примерно версии 5.
Artyom Nesterenko
А, ну и Dart к этому времени приблизят к Kotlin, потому что в 3 версии, которая не очень далеко, уже будут extension functions и sealed classes.
Eugene
Только сильные люди способны признавать свои ошибки
Artyom Nesterenko
Да, в этом Google сейчас очень большой молодец, прямо радуюсь за них и особенно за всю огромную команду, стоящую за Android.
Artyom Nesterenko
Поднимают его с колен, так сказать.
Eugene
Если посмотреть на всю эволюцию или даже революцию платформы в целом от первых версий то это в принципе земля и небо и они огромные молодцы в отличии От
Bod9i
кто что скажет о Flutter on Web? я вот ток начинаю на дарте, интересно услышать мнение. Зачем тогда нужен Angular Dart?
Bod9i
Вернее не "тогда", а "теперь"
Alik E.
По первому вопросу: Интересно, но сыро. Но очень интересно. Сейчас рано что-то говорить, стоит подождать годик, думаю
Bod9i
как убрать эти синие полосы по бокам header? без _ngcontent-hia-0 тоже пытался выставить цвет, не меняет
Bod9i
ай, по ангуляру не в этот чат же, да? сорян, если что
Kit Khilobok
Сейчас пока что что-то более-менее сложное и удобоваримое на flutter web сделать сложно, тк нет многих важных штук(отчасти из-за того, что флаттер не подразумевает работу с мышкой вообще), а также в некоторых моментах ошибочки летят горой. А так, вещь интересная и прикольная
Kit Khilobok
Я в ангуляре не знаток, но .material-header{ background-color: white !important; } Стопроцентно убъёт цвет корневого элемента и заменит на твой)
Bod9i
о, спасибо надо будет запомнить, а то, я лишь месяц в вэбе
Kit Khilobok
Но рекомендую использовать директиву !important только в крайних случаях, ибо его перебить другим стилем уже будет сложно
Bod9i
понял, тоже запомню)
Eugene
+++. Поддерживаю. Скорее всего будет нечто наподобие ionic. Но ionic шел по сути от web к mobile а тут обратное движение, а ещё есть pwa...
Hellomik
Хей народ скажите как сделать star rating только так что бы можно было делать 4.7 , и 3.8 числа
Hellomik
Что бы не пол звёзды было покрашена, 70% или 37%
Hellomik
хех кто шарит в custom paint ?
Олжас Сулеймен
[
{
"type": "mention",
"text": "@bunopus"
},
" крипта"
]
Hellomik
чувак ты не по теме
northelks
там парни жгли)) харизматичный чувак в очках)
Evgeny Kot
Чувак, давай без мата
Eugene
Окай, но в данном контексте он был органичен а не в форме оскорбления собеседника или другой персоналии
Evgeny Kot
Ну, всё равно некрасиво, фу-фу
Jack Rudenko
public shaming ??
Sergey ?
[
"Смотрел я код, некоторые классы напрямую взяты с флаттер. ??\nНапример:\n",
{
"type": "link",
"text": "https://android.googlesource.com/platform/frameworks/support/+/androidx-master-dev/ui/core/src/main/java/androidx/ui/services/text_editing/TextSelection.kt#128"
},
""
]
Олжас Сулеймен
[
{
"type": "link",
"text": "https://android.googlesource.com/platform/frameworks/support/+/androidx-master-dev/ui/core/src/main/java/androidx/ui/engine/text/TextDirection.kt?autodive=0%2F%2F%2F#33"
},
" да там явно написанно"
]
Sergey ?
Да, ещё забавно когда остаются комментарии с флаттер про iOS ??
Vladislav
Крч как примерно можно сделать, просто картинка с прозрачными звёздами а под ней какая то хрень цвета жёлтого которая делает еффект заполненности, это простой вариант, сложный вариант пешешь дохера длинный алгоритм и красишь градиентом который моментально переходит в другой цвет, ну тип высчитываешь, но все это кажется не лучшим вариантом так что хз
Hellomik
можно у тебя спросить ?
Hellomik
а то я уже пол дня сижу
Hellomik
смотри на сколько понимаю надо сделать icon на child
Hellomik
там 5 icon будет через column
Vladislav
Я в вебе делал на js звёзды по отдельности красил, так как они должны были быть активными
Hellomik
смотри это типа звезды которые const
Hellomik
просто при создании должно даваться значение
Hellomik
и оно храниться долго
Vladislav
У тя значение рейтинга исходное какое?
DVS (Read The F.ng Manual) Studio (NoHello)
(~чувство, когда потерял нить разговора и просто сидишь такой neeeeeeeeeeeeeeet...~)
Artyom Nesterenko
Топ. ??
Hellomik
смотри оно должно педаваться по функции
Hellomik
функция возращает widget
Vladislav
Ну делаешь виджет который принимает float получаешь с него целое число, это твои фулл закрашенные звёзды то что после точки твой процент недозаполненой звёзды
Vladislav
Ее через градиент можно сделать
Vladislav
Но это не точно
Vladislav
Не пробовал на иконки градиент
Hellomik
давай лс а то щас видимо будет много мусора
Hellomik
я буду прос писать
Hellomik
а ты прос говорить что делать ?
admin
[
{
"type": "link",
"text": "https://pub.dev/packages/smooth_star_rating"
},
" тут можно что то подсмотреть"
]
admin
[
"вот ещё ",
{
"type": "link",
"text": "https://pub.dev/packages/flutter_rating_bar"
},
""
]
admin
Всем чай. Есть кто на openSUSE ставил? Не могу понять/найти как поставить для web/android
Олжас Сулеймен
а что хотите поставит?
Andrey
А можно передать авторам: “отдайте фид в overcast”?
Andrey
Мне очень не понравилось что tab не переходит между полями формы
DVS (Read The F.ng Manual) Studio (NoHello)
Расшифровку бы ещё потом почитать. На медиуме например...
Constantine
там полчаса всего лишь ) слушается быстро ??
DVS (Read The F.ng Manual) Studio (NoHello)
А. Полчаса можно и в метро глянуть
Constantine
да, там вообще быстрый обзор )
Constantine
можно даже ускорение поискать как сделать ?? 1.1-1.25 будет норм )
Александр Васильев
[
{
"type": "link",
"text": "https://youtu.be/lW7DWV2jST0?t=1489"
},
"\n\nFirestore Cloud выкатили Collection Group Queries"
]
Eugene
окай-окай, буду окуратней в выражениях )
Artyom Nesterenko
Я с авторами не контактирую. ?? Можете им в чат написать.
Vyacheslav
барабанная дробь:
Vyacheslav
[
{
"type": "code",
"text": "mixin A { }\nclass B with A { }\nclass C with A { }"
}
]
Vyacheslav
[
{
"type": "mention",
"text": "@misteraleph"
},
" посмотри, пожалуйста."
]
DVS (Read The F.ng Manual) Studio (NoHello)
aa = (A)bb Не сработает?
Vyacheslav
я сейчас проверю, но какая разница. Это уже стотысячный баг компилятора. Хотя мне сейчас опять скажут, что это фича
Vyacheslav
[
{
"type": "bold",
"text": "type 'C' is not a subtype of type 'B' of 'value' "
},
"– такая ошибка"
]
Vyacheslav
Error: A value of type 'Type' can't be assigned to a variable of type 'List '
DVS (Read The F.ng Manual) Studio (NoHello)
А. Это прикол такой, вы - тестер и ищете баги? Или разраб и у вас из-за таких багов чтото ложится?
Vyacheslav
я решился написать проект на флаттере, о чём жалею. А в этом чат ною о багах. Вот есть Вячеслав, который работает в Гугле. Но он мне постоянно говорит, что это всё не баги, а фичи, а последние 2 месяца просто не отвечает.
Vyacheslav
вообще, в первый раз сталкиваюсь, чтобы сделать массив из интерфейсов, нужно танцы с бубном делать.
DVS (Read The F.ng Manual) Studio (NoHello)
Т.е. вы разраб и у вас из-за таких багов всё ложится. Окей. Следующей строчкой вы пишете решение, которое работает. Так вам что, шашечки или ехать?
|