Программирование : Dart & Flutter по-русски
Олжас Сулеймен
А как у вас с дартом для начала?
zinge ??
[
{
"type": "link",
"text": "https://t.me/rudart/43538"
}
]
Kostya
Я как раз-таки и спрашиваю литературу, где будет знакомство с dart
Kostya
Да, спасибо. Там про вэб, я ищу про мобильную разработку
zinge ??
[
"там про вЪехать, начни с 4 главы, а про мобильную ",
{
"type": "link",
"text": "https://flutter.dev/docs"
},
""
]
Rinat Kurmashev
во флаттере какая альтернатива relativelayout?
Rinat Kurmashev
мне надо в контейнере сделать текст, а справа иконку
Rinat Kurmashev
ну и чтоб текст иконку не перекрывали и наоборот
Max??
Привет всем, кто-то фиксил автоповорот изображения на самсунгах? Можно как-то обойтись без написания натива?
Max??
Можно использовать Row
Rinat Kurmashev
ща попробую
Max??
Это аналог LinearLayout
Max??
Как оказалось переворачиваются изображения не только на самсунгах но даже на айфонах
Андрей Хливнюк
я тоже чет не врубаюсь, о чем речь
Андрей Хливнюк
в чем проблема
Андрей Хливнюк
и почему они не должны переворачиваться при повороте экрана
admin
Поведение как у натива? Где активити и фрагменты пересоздаются при повороте
admin
Инит стейт вызывается?
Мумитроль
Смену ориентации экрана может?
Max??
Разобрался, как оказалось на серере фото почему-то переворачивается...я думал это проблема у меня ибо привык что на нативе на самунге с переворотом фото гемороя много
Мумитроль
А в чем проблема с переворотом фото?
Max??
на нативе? Ну самсунг к примеру крутит изображение даже тогда когда не надо это делать. Причем фикс этого отличается на разных версиях андроида
Мумитроль
Что вы понимаете под «крутит изображение»?
Max??
после того как сделал уже фото
Мумитроль
Так стоп, там же проблема с ориентацией сделанного фото с камеры. Причём тут сервер
Max??
не, проблем на Flutter с этим нет, он сам это видимо как-то менеджит, это проблема на сервере была, он по какой-то причине переворачивает изображение
Мумитроль
Пока вы в дебаге не стоит смотреть на производительность.
Мумитроль
Соберите в релизе, тогда у вас будет скомпилированный дарт код, а пока там интерпретация по факту. Иначе как бы работал hot swap)
Dmitry
[
"если и релиз будет лагать, то где-то плохой код.\n ",
{
"type": "link",
"text": "https://flutter.dev/docs/testing/ui-performance"
},
""
]
Мумитроль
Вроде бы там есть.
Dmitry
поищи инфу про compute - обертка над изолятами
Мумитроль
А в чем задача?
Мумитроль
А тут как в js, не выполнишь с UI
Sergey Lavinov
Можно тут поподробнее?
Мумитроль
Там в http уже внутри все на бэкграунде. Да и вообще, тут слегка другая парадигма в этом вопросе)
Sergey Lavinov
То есть http под копотом изолят использует?
Мумитроль
A isolate будет нужен, когда руками написанный кусок будет черезмерно долго работать
Dmitry
изоляты не умеют в асинхронные функции
Мумитроль
Не важно что там под капотом, факт в том, что запрос там на бэкграунд пуле.
Мумитроль
А нужно ли, там есть Future
Dmitry
не нужно) но просто что бы даже не было намерений так сделать
Мумитроль
Да, это вообще слегка может быть не привычно, но логика как и в JS на стороне браузера по аналогии.
Dmitry
так их написали :) со всем асинхронным справляется ивент луп.
Dmitry
т. е. future и async/await
Мумитроль
Вам уже в документацию)
IB Akhrorov
Dart не видел
IB Akhrorov
Или это в флаттере?
Мумитроль
А вы тут с любопытства?
Мумитроль
А он тут причём?
Мумитроль
Дак не видели или учите?
IB Akhrorov
Знаю с++ и джава , перешел на дарт
IB Akhrorov
Док посмотрел
Мумитроль
Знаете Java и не знаете про Future?
Мумитроль
Он может интуитивно иначе работать и кажется, что не так.
Dmitry
флаттер умеет 120фпс выдавать - на последних айпадах, которые тоже умеют в 120 fps флаттер выглядит просто как иисус
Мумитроль
Вы же заглядывали в код телеграм, надеюсь?
Dmitry
у меня много и лист вью и грид вью в аппке - все очень гуд. Все лаги - не оптимизированный код
Мумитроль
Там каждый элемент списка, грубо говоря, руками на канве отрисовывается)
Dmitry
на каком устройстве ранните?
Rinat Kurmashev
я так понимаю на флаттере пока плавности не добиться?
Rinat Kurmashev
открываю боттом шит в флаттер и в нативном примере на ios
Rinat Kurmashev
флаттер прям видно что дерганно анимируется
Мумитроль
Все дело в кривизне рук??
Dmitry
пишем год на флаттере только для ios платформы
Мумитроль
Вы уверены, что релиз собрали?
Dmitry
т к скорость разработки гораздо быстрее
Мумитроль
Сколько весит приложение?
Егор Косоруков
Коллеги, привет! Подскажите, пожалуйста, как вы показываете снекбары из стрим билдера? У меня проблема, если на экране показывается/скрывается клавиатура, то вызывается ребилд виджета с тем же состоянием блока и снекбар показывается второй раз
Danny
WidgetsBinding.instance.addPostFrameCallback((_) { // show snackbar // change state to default to escape more snackbars after build() });
Егор Косоруков
вот, если вызвать клавиатуру, то произойдет ребилд. И снекбар опять покажется
Мумитроль
Так вот, сделайте сначала релизную сборку.
Егор Косоруков
// change state to default to escape more snackbars after build() Можно подробней?
Мумитроль
Сменить стейт так, чтобы не нужно было снова показывать снекбар
Danny
у меня это работает так. afterBuild это просто WidgetsBinding.instance.addPostFrameCallback
admin
лично для меня флаттер интересен в плане перехода с натива как новый язык новая парадигма разметки
Rinat Kurmashev
спасибо, попробую =)
Егор Косоруков
меня на самом деле больше волнует сценарий с hasError. Ты в ResetState() в блоке контроллер сбрасываешь на начальное состояние?
Danny
да, если обнулить ошибку в блоке, то ошибка покажется только один раз
Мумитроль
Можно же не делать общий стейт, а замутить разные стримы под разные источники данных)
Мумитроль
Вы, как я понимаю, от части и Redux подход используете
Егор Косоруков
Я, может быть, не правильно сделал, сейчас поясню
Егор Косоруков
У меня есть ProfileBloc, который содержит Controller
Profile содержит фамилию и имя
При загрузке экрана из Profile берутся эти поля и заполняются в текстфилды
Меняю текст филд, хочу сохранить, валидация не прошла, например, или сервер ошибку вернул
Если я восстановлю первоначальное состояние, то у меня введенные данные сбрасываются
Егор Косоруков
т.к. в контроллере данные меняются, только после успешного сохранения
Егор Косоруков
в приницпе, я понял в какую сторону двигаться, сейчас попробую
Maria
А вы где прочли это? Или пробовали?
Dmitry
[
"и то, и то) ",
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/25890"
},
""
]
Maria
Compute не единственный доступный способ сделать изолят. И без флаттера вообще не существует?? (а Изоляты существуют и без флаттера вполне) и, вроде, пофиксили эту ошибку в мастер ветке
Dmitry
Т. е. если создавать изолят руками, а не через compute, то можно выполнить в нем async работу? Вы правы, 8 дней назад в мастер смерджили computeFuture(). Ждем когда выльется в stable. Но кейса для использования пока не придумал.
Kyryl Nevedrov
Привет всем, я начал изучать flutter и возник такой вопрос, как правильно совмещать materialApp и cupertinoApp? Подскажите, пожалуйста)
Кирилл Матросов
[
{
"type": "link",
"text": "https://medium.com/flutter-io/insights-from-flutters-first-user-survey-of-2019-3659b02303a5"
},
"\nновое от Flutter Team"
]
Vadim Lukichev
Не дурак)) Уже многие «орут» сделайте упоминание про release mode на fast start. А то многие «отваливаются» не дойдя до релиза) issues уже есть, решают эту «проблему»)
Мумитроль
Конкуренты отсеиваются??
Maria
Можно. Кейс может быть, когда сложные вычисления написаны не вами и они содержат асинхронные вызовы например.
Vadim Lukichev
Прикольно смотреть на добавление «фичи», которая не понятно пока куда и кому нужна будет)
Rinat Kurmashev
как плавно скрыть BottomAppBar? через transition?
Maria
Должна быть справедливость. Если один поток может работать с асинхронностью, почему другие должны быть обделены??
Uraskin Semen
[
"Привет, всем. Я новичек во fluttere, может сможете помочь с моей проблемой.\nЕсть главный экран, на котором я иниализирую bloc и BlocProviderTree\n\n",
{
"type": "mention",
"text": "@override"
},
"\n Widget build(BuildContext context) {\n return BlocBuilder(\n bloc: _bottomTabBloc,\n builder: (BuildContext context, BottomTab activeTab) {\n return BlocProviderTree(\n blocProviders: [\n BlocProvider (bloc: _bottomTabBloc),\n BlocProvider(bloc: _filteredOrdersBloc)\n\nдальше в в разметке я добавляю элемент showModalBottomSheet()\nно почему-то, когда я пытаюсь у него вызвать нужное событие в bloc, то получаю экран с ошибкой\n\nВ тоже время у меня в разметке есть просто StatelessWidget виджет, для которого события вызывается без проблем"
]
Sergey Lavinov
context не передал как параметр?
Uraskin Semen
final FilteredOrdersBloc filteredOrdersBloc = BlocProvider.of (context);
Sergey Lavinov
Перебираем варианты дальше ??
Sergey Lavinov
Уверен что этот виджет находится в ветке, обернутой провайдером?
Sergey Lavinov
И в этом провайдере именно FilteredOrdersBloc
Uraskin Semen
ну да там иерархия виджетов такая: главный-листвью-по кнопке showModalBottomSheet()
Sergey Lavinov
На этом мои полномочия всё :с
Konstantin Smirnov
Ребята, что у вас стоит в Xcode в Project-Info-Configurations. Я сдуру поменял на "release" в Use for command-line builds и в Release Configurations и у меня отвалились Firebase-пуши на тестируемом девайсе (Пишет toket not registered). А что должно стоять из-коробки? Сейчас мои настройки таковы:
Konstantin Smirnov
Или везде поставить Debug?
Konstantin Smirnov
А command-line?
northelks
перемести BlocProviderTree выше в корень
Konstantin Smirnov
А используешь пуши от Firebase? Проблем нет? Я именно так и поставил, и пуши перестали приходить. Хотя после отправки в AppStore (TestFlight), в приложение, установленное из магазина, пуши приходят...
Sergey Lavinov
Не, я пока пуши не подрубал
Sergey Lavinov
Прост скинул конфиг здорового приложения)
Konstantin Smirnov
Принял, спасибо
northelks
все диалоги вызываются через navigator, который оборачивает страницы в Overlay, который создаёт отдельную ветку виджетов, которая отпочкованная от корня MaterialApp
northelks
потому если хочешь увидить блоки в диалогах или после перехода через navigator, то нужно MaterialApp оборачивать в BlocProviderTree
Alex Korovyansky
[
"ребят, кто во флаттер работал с графиками? существуют ли какие нибудь готовые либы типа ",
{
"type": "link",
"text": "https://github.com/philackm/ScrollableGraphView"
},
"?"
]
Alex Korovyansky
[
{
"type": "link",
"text": "https://github.com/philackm/ScrollableGraphView/raw/master/readme_images/scrolling.gif"
}
]
Alex Korovyansky
[
"сходу нашел вот эту либу, ",
{
"type": "link",
"text": "https://pub.dartlang.org/packages/charts_flutter"
},
", есть ощущение что там горизонтальное скролирование не поддерживается"
]
Uraskin Semen
Спасибо! Попробую
northelks
[
{
"type": "link",
"text": "https://pub.dartlang.org/packages/charts_flutter"
}
]
northelks
[
{
"type": "link",
"text": "https://google.github.io/charts/flutter/gallery.html"
},
" - здесь смотри раздел Behaviors"
]
Andrey Gruzdev
Доброго дня, во Flutter можно перезапустить приложение из самого приложения? То есть убить его и запустить заново?
Andrey Gruzdev
Или такой вариант вообще не стоит рассматривать?
Daniil Kolyasnikov
Это очень очень плохой вариант
Daniil Kolyasnikov
Для чего это нужно ?
Andrey Gruzdev
для выхода и очистить все состояния
Daniil Kolyasnikov
Для выхода нужно просто выйти ?? А очищать состояние лучше ручками.
Andrey Gruzdev
понимаю что лучше, рассматриваю варианты
Daniil Kolyasnikov
Не за что
Rinat Kurmashev
мне надо чтобы по нажатию на кнопку контейнер, прижатый к низу экрана - уезжал за пределы экрана, при повторном нажатии - возвращатся
Rinat Kurmashev
куда копать?
Rinat Kurmashev
animatedContainer?
Rinat Kurmashev
или AnimationController?
Daniil S
[
{
"type": "link",
"text": "https://docs.flutter.io/flutter/widgets/AnimatedBuilder-class.html"
}
]
Dmitry
Вопрос такой. Как флатерн ведём себя на тапках?
Dmitry
Дико как рн лагает?
Sergey Lavinov
Слабые девайсы
Aleksandr Martsenyuk
Я даже себе 4s заказал чтобы узнать
Sergey Lavinov
Поправка, RN лагает на тапках только при наличии большого количества логики, реализованной на JS. Если брать чисто построение интерфейсов, то он будет работать сопоставимо с нативными решениями (за исключением долгого старта на инициализацию)
Sergey Lavinov
Не знаю, считается ли IPhone 5 тапком, но демо приложение The History of Everything на нем подлагивает. Но там, справедливости ради, есть чему лагать
Daniil S
если внимательно читать документацию и писать качественный код, то ничего не лагает
Dmitry
ага. По туторилау тут же список виснуть начал
Dmitry
5 айфон гораздо мощнее чем андроиды тапки
Dmitry
на айфонах все норм. Вот такпки андроид такое
Aleksandr Martsenyuk
Судя по характеристикам не особо и мощнее
Daniil S
релиз сборку попробуй накатить на 5ку
Daniil S
ничего лагать не будет
Dmitry
есть примеры реально огромных приложений на флатерне ?
Dmitry
или дальше списка не ходят ?
Sergey Lavinov
[
"Если есть под рукой тапок - попробуй запустить ",
{
"type": "link",
"text": "https://play.google.com/store/apps/details?id=com.twodimensions.timeline&hl=ru"
},
" и позумить таймлайн"
]
Daniil S
это типо троллинг?)
Daniil S
у меня сейчас проект с безумным юи на 50 экранов
Daniil S
нормально пишется
Dmitry
как можно писать на дарте ? (не до реакт же. Апи ужасное. Я вот не смог)
Dmitry
апи это про флатерн
Dmitry
как выстроена архитектура ? всмысле фичи юай и экраны
Daniil S
как и в других проектах
Sergey Lavinov
Сравнить дарт и реакт - странная штука)
Dmitry
потому что в доке написано что вдохновлено реактом
Sergey Lavinov
Флаттер вдохновлен реактом
Dmitry
а подробнее ? Просто папка скринс и там куча файлов и тд ?
Dmitry
я ниже поправил что я про флатерн
Daniil S
во первых Флаттер
Daniil S
во вторых все есть в гугле, примеры, архитектуры и тд
Daniil S
не знаю что вы тут решили потоксить на флаттер
Daniil S
наверное в android чате вас поддержут
Dmitry
нормально работает
Sergey Lavinov
Тады сорян. Вообще конкретно я к Flutter'у пришел, когда увидел насколько мощные, прям пропитанные моушеном интерфейсы можно делать на флаттере. На RN такого не сделать
Dmitry
действительно. Хоть апи говно, но на флатерне реще работает. А чо по нативным модулям
Sergey Lavinov
Нет нативных модулей. Точнее есть, но по умолчанию они не используются
Sergey Lavinov
Все само рисуется местным движком
Dmitry
если я хочу сам нативно написать и поделючить
Daniil S
какое именно апи у вас говно?
Dmitry
тебе по койфу портянки вложенности?
Daniil S
у меня нет вложеннсти более 3
Dmitry
кинь uiкакого то экрана
Daniil S
так как все можно раскидать по классам и собирать как конструктор
Dmitry
а что в плане глобальных данных ? Все имеется ?
Dmitry
ну в общем да. Как ни крути, и не говоря что апи флатерна говно, но рн по зади по скорости
Daniil S
[
"не хочу показаться грубым, но такие вопросы напрашиваются только на один ответ : ",
{
"type": "link",
"text": "https://www.google.com/"
},
""
]
Dmitry
я не хочу гуглить. Я пришел в группу за быстрыми ответами. Разве не для этого она ? Погуглить как бы не проблема
Мумитроль
Нет, не для этого. Я бы сказал, что отвелкать конфу вопросами с первых ссылок SO - это черезмерно. Пока платформа новая, могут быть вещи, которые не встретишь в доках или в статьях.
|