Программирование : Dart & Flutter по-русски
Оганнес Асатрян
чет хотрелоад не хочет работать.... было у кого?
Igor Filippov
Есть ли для флаттера что-то вроде как Expo для RN ? Или какой-то другой вариант посмотреть свое приложение на реальном девайсе
Оганнес Асатрян
oops)) видимо я на дебаг нажал)) а не на молнию. по привычке
Igor Filippov
[
{
"type": "pre",
"text": "Connect your Android device to your computer with a USB cable.\ncd where is your application directory.\nRun flutter install .\n",
"language": ""
},
" Это оно, понял, спасибою"
]
Оганнес Асатрян
а тут надо как в стандартном дроиде делать магические заклинания? ребилд клин инвалидейт?
Оганнес Асатрян
хотя. тупой вопрос. это ж к студии самой относится больше
Оганнес Асатрян
интересно. какой процент народа здесь после дроида
Оганнес Асатрян
меня немного смущает количество вложенностей/лесенок. но это наверно уже к Дарту
Evgeny Kot
Надо выносить. Это не к Дарту, чистый код, все дела
Оганнес Асатрян
речь об этом
Pavel Shilyagov
да тут еще нет большой вложенности)
Оганнес Асатрян
ну я понимаю.что это стиль письма и можно отредактировать
Pavel Shilyagov
ты главное не забывай ставить запятые после аргментов функции/элементов массива, а так же делать автоформат, и поставь плагин для разноцветных скобочек ??
Оганнес Асатрян
какой плагин?
Оганнес Асатрян
я отродясь специально не красил код в 100500 цветов
Pavel Shilyagov
в vs code у меня bracket pair colorizer. В AS должно быть что-то подобное
Оганнес Асатрян
ладно. ребят. всем спасибо. пройду пару туториалов посмотрим
Pavel Shilyagov
[
"ну и вот пару полезных советов ",
{
"type": "link",
"text": "https://iirokrankka.com/2018/06/18/putting-build-methods-on-a-diet/"
},
""
]
Оганнес Асатрян
благодарю
Оганнес Асатрян
такой вот вопрос. а есть у кого код на дарте аля клин архитектура/мвп? я б хотел посмотреть
.
[
{
"type": "link",
"text": "http://fluttersamples.com/"
}
]
Оганнес Асатрян
такс. я не догнал. никто на дарте MVP не делает?
DVS (Read The F.ng Manual) Studio (NoHello)
не рекомендуется
Оганнес Асатрян
подробней плиз
DVS (Read The F.ng Manual) Studio (NoHello)
все с этого начинаю, но есть более классные решения
.
смотри в сторону блока или rx
DVS (Read The F.ng Manual) Studio (NoHello)
да и на конфе сказали блок юзать. он более гибкий
Evgeny Kot
[
{
"type": "link",
"text": "https://www.youtube.com/watch?v=fahC3ky_zW0"
}
]
Igor
Это тот доклад где чувак пол доклада рассказывал про тормоза в списке, вместо архитектур? Он еще сказал что flux/redux не рекомендует (хотя он его в первый раз в жизни увидил), а на ведре популярен MVC - ну фиг знает, стоит ли его слушать.
DVS (Read The F.ng Manual) Studio (NoHello)
попробуем - посмотрим )
Анатолий
Это как так вообще? ты ж данные куда-то записываешь и они должны будут потом отрисоваться после иницализации виджета
DVS (Read The F.ng Manual) Studio (NoHello)
поставить задержки. даешь тротолинг!
DVS (Read The F.ng Manual) Studio (NoHello)
+ люди любят когда прогрессбар крутится
DVS (Read The F.ng Manual) Studio (NoHello)
или изза слишком быстрого ??
Maria
отличный был вопрос про то, что делать, когда блокам надо общаться между собой. Если мне кто-то пояснит ответ (что-то вроде "используйте инкапсуляцию вместо наследования"), буду признательна =)
Evgeny Kot
[
"\"Чуваку\" свой фидбек можно донести лично\n",
{
"type": "mention",
"text": "@orcDamnar"
},
""
]
Evgeny Kot
И можно более уважительно, пожалуйста
Igor Filippov
Я вот из фронтента и мне как-то лесенка нравится больше чем jsx подход
Mike
Я из замла, реакт (jsx) подход очень нравится, но решил все же флаттер попробовать (:
Igor
[
"Ты про этот? ",
{
"type": "link",
"text": "https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer"
},
"\nИли вторую версию используешь? Ты его дополнительно никак не настраивал?"
]
Pavel Shilyagov
да именно этот использую, 1.0.61. Ничего не настраивал специально, скобочки красит.
Alexey Perelygin
Ответ был про использовать композицию. Из 2 блоков, внутри третьего. Причем тут инкапсуляция?
Maria
я не очень хорошо запомнила, поэтому написала "вроде". Спасибо!
DVS (Read The F.ng Manual) Studio (NoHello)
callback hell напоминает
DVS (Read The F.ng Manual) Studio (NoHello)
есть во флаттере Zone
DVS (Read The F.ng Manual) Studio (NoHello)
[
{
"type": "pre",
"text": " FlutterError.onError = (FlutterErrorDetails details) {\n if (isInDebugMode) {\n // In development mode simply print to console.\n FlutterError.dumpErrorToConsole(details);\n } else {\n // In production mode report to the application zone to report to\n // Sentry.\n Zone.current.handleUncaughtError(details.exception, details.stack);\n }\n };",
"language": ""
},
{
"type": "pre",
"text": "\n runZoned >(() async {\n//some code\n }, onError: (error, stackTrace) {\n print('Caught error: $error');\n print(stackTrace);\n });",
"language": ""
}
]
DVS (Read The F.ng Manual) Studio (NoHello)
Нашел с тем же вопросом в доке флаттера
First Last
Не, redux рили говно
Igor
Потому что ты не осилил или не понял?
First Last
Что там осиливать/понимать?
First Last
Потому что абстракции ради абстракции и конченая концепция редьюсеров
DVS (Read The F.ng Manual) Studio (NoHello)
[
{
"type": "link",
"text": "https://www.dartlang.org/articles/libraries/zones"
},
"\n",
{
"type": "link",
"text": "https://flutter.io/docs/cookbook/maintenance/error-reporting"
}
]
First Last
Кстати, что за мода пошла на > enthusiast ??
Оганнес Асатрян
хм. а я вчечатлен. пишешь кракозябры и вжух. оно работает)
Оганнес Асатрян
сложно принять момент когда пишешь запятая и круглая скобка))
Igor
Чет сплошной негатив, без конкретики - больше похоже на вкусовщину. Хотя мне Redux тоже не очень заходи, имхо Elm/TEA лучше, но язык не позволяет использовать.
First Last
В инете куча статей, ну
First Last
Мне лень их пересказывать
Igor
Те лично опыта нет. Типа не использовал, но не одобряю - ну ОК (потому шо не ОООООООООП)
First Last
В смысле не использовал?
First Last
Я ненавижу людей которые делают умозаключительные выводы
First Last
На реакте я только его и юзаю
First Last
И причем здесь вообще "ооп"?
Оганнес Асатрян
Нормально. Первый туториал норм. Там где бесконечный лист с рандом парой слов
Оганнес Асатрян
Но оно начало подтормаживать
Оганнес Асатрян
Наверное этот листвью не аналог ресайклера
Оганнес Асатрян
Я бы посмотрел на код который в сеть ходит
Оганнес Асатрян
И парсит Джсон
Оганнес Асатрян
А потом в бд кладет
Igor Filippov
`Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE]` Вопрос, кто-нибудь встречал такое? Читал что это распространенная ошибка. Фиксится вроде бы перезагрузкой андроид студии или же добавлением в манифестхмл пары строчек, мне ни то, ни то не помогло
Оганнес Асатрян
Эмулятор?
Оганнес Асатрян
Бери физ.девайс
Оганнес Асатрян
Или эмулятор мощного
Igor Filippov
Та там же усложненный какой-то процесс, надо каждый раз делать релиз или я что-то усложняю?
Оганнес Асатрян
Чтобы что??
Igor Filippov
Чтобы на мобиле смотреть что получается
Оганнес Асатрян
Неа. Релиз не нужен
Igor Filippov
Можешь скинуть линк где описывается как это делать
Оганнес Асатрян
Накодил, подрубил моб и запустил
Оганнес Асатрян
В офф. Доках прям туториал же
Оганнес Асатрян
Где дроид
Оганнес Асатрян
Ты АПК каждый раз собирать хотел?? Просто ран ран
Igor Filippov
Ну с эмулятором работало стабильно неделю где-то по вечерам
Igor Filippov
?? Помогло. Завтра попробуем через телефон, когда под рукой будет usb кабель
DVS (Read The F.ng Manual) Studio (NoHello)
== (к счастью это не java и тут так можно)
DVS (Read The F.ng Manual) Studio (NoHello)
или ручками по полям
DVS (Read The F.ng Manual) Studio (NoHello)
вот тут хз, не сравниваю обычно списки. через какое то время господа сверху ответят мб
Max Greb
Два списка по умолчанию равны только если это один и тот же список. Для сравнения надо использовать список с переопределенным ==. Например, built collection
Max Greb
Неважно. Только по ссылке либо ручками сравнить
Max Greb
Есть builtList в пакете built collection и он уже может сравнить списки с учётом внутренних значений
Ed Briton
bloc это overhead по мне я лично делаю что то близкое к mvvm с помощью scoped
Alexey Perelygin
оверхед в чем? Для меня минус scoped_model - в необходимости двухкомпонентного механизма для скрытия калбека на одном уровне - в представлении.
Maria
Прокидывать данные все равно как-то надо же. С помощью блоков пока непонятно как это красиво сделать. Ладно если два-три уровня. А если 10?
Alexey Perelygin
если у вас 10 - значит организовали архитектуру не правильно. Есть пример?
Maria
Флатер быстро учит делить виджеты на много маленьких??
Alexey Perelygin
да и блок - он не должен ничего прокидывать. если вам нужно шарить данные - шарить нужно не блоки не модели а имеено данные.
Alexey Perelygin
если у вас есть виджеты, пусть 10, которые работют с одними данными - одинаково то в каждом из них можно создать инстанс одного и того же блока, который получает и сохраняет данные в одно место, например в бд, другие из бд при изменении получают. И нужно рассматривать так каждый конкретный случай.
Maria
Каждый раз к бд обращаться кажется дороговато будет
Alexey Perelygin
[
"вот тут ",
{
"type": "link",
"text": "https://www.ozon.ru/context/detail/id/4884925/"
},
" можно найти множество способов как это сделать легче."
]
Alexey Perelygin
при желании, конечно.
Maria
Но я не про то. А про случай, если мне нужна модель наверху и где-то далеко внизу дерева виджетов. Классический случай для inherited. А scoped чуть более удобный вариант его применения. Блоки могут при этом существовать параллельно
Pavel Shilyagov
Ну так мне кажется нормальным совмещать scoped и bloc
Alexey Perelygin
я об этом и говорил. Просто строить архитектуру взаимодействия с данными - не стоит, но как механизм для виджетов ок. И я бы рекомендовал в таком случае использовать InheritedWidget или InheritedModeld в зависимости от целей. Хотя, одно то что у вас одинаковые данные используються для обновления родителя и его глубокого потомка гогворит о проблемах в посотроении всего дерева.
maxnemoy
Доброго дня. Есть 2 Stateful виджета. Второй ребенок первого. Как я могу вызвать setState первого виджета из второго и наоборот? Работал с QML, там все просто, можно обратится к виджету по id, а как тут не могу понять.??
Andrey Smirnov
ну навскидку такие варианты: 1. каким то образом связать оба виджета через нотификации через события (Stream, StreamController) 2. GlobalKey 3. путем смены стейта через некий общий стейт
Дмитрий Скрыльников
Redux!
Дмитрий Скрыльников
Он кстати есть под флаттер?
Andrey Smirnov
есть, redux packages, built_redux
Roman Ostolosh
Я бы начал с самого примитивного как по мне это с передачи функции как параметра, по типу как в кнопках сделано onPress к примеру
Roman Ostolosh
а setState делал в самом виджете где этот стейт доступен
Pavel Shilyagov
[
"а я бы начал с беглого осмотра доступных вариантов управления состоянием для флаттера. Например вот от сюда ",
{
"type": "link",
"text": "https://github.com/brianegan/flutter_architecture_samples"
},
""
]
maxnemoy
а я вот что-то не сумел найди, как получить в виджет аргументы, но погуглю еще, благодарю за наводку)
Roman Ostolosh
я не спец, но как бы думалось что через конструктор
maxnemoy
а я вообще можно сказать только открыл?? попробовал вот сделал небольшую аппку, все на разных страницах, сеть, бд, камера, все хорошо, вот теперь пытаюсь как то юзабильнее сделать, но пока больше вопросов чем ответов??
Алексей Данилевский
Есть вакансии для дарт-разработчиков. В том числе и к флаттеру прикоснуться можно будет
Igor Filippov
А для того чтобы запустить в девмоде аппку на телефоне нужен вообще андроид сдк?
Dmitry Gordin
если телефон - iphone то нет
Igor Filippov
андроид у меня
Dmitry Gordin
иначе да, потому что apk нужно собирать, сборкой занимается тулзы из android sdk
Igor Filippov
Просто механизм работы не понимаю вот и вопросы дурные
Alexey Perelygin
flutter doctor будет ругать тебя точно
Alexey Perelygin
не думаю что апп на андроиде без сдк запуститься
Alexey Perelygin
там все таки FlutterActivity
Dmitry Gordin
там обрати внимание, есть папка android и ios. в них лежат обычные android/ios проекты нативные, в которые будет встроенно flutter приложение
admin
угу, пришлось комп захламить из-за этого
Dmitry Gordin
наподобии как webview ты бы открыл, так же MainActivity просто даёт окошко во flutter
Sergey Chuvashev
ребят, а слайды с конфы будут расшарены?
Sergey Chuvashev
вместе с видосами? или раньше
First Last
[
{
"type": "mention",
"text": "@sergey_chuvashev"
}
]
First Last
Я пока нашел это сообщение среди холиваров - поседел(
Evgeny Kot
Постараемся раньше
First Last
Упс, извиняй, не хотел пингануть :)
Igor Adrov
4 числа еще релиз новой версии хрома. совпадение ли
First Last
Отета у вас догадок конечно)
First Last
И релиз desktop'a, и выход из беты
DVS (Read The F.ng Manual) Studio (NoHello)
и конфа amoCRM (offtop, no_ads)
DVS (Read The F.ng Manual) Studio (NoHello)
и опять всё в один день
Artem
Ой скажите а небольшая эскурсия по офису Wrike будет? Жутко интересно
Anton Anokhin
приходите на полчаса пораньше, кому интересно, можем устроить
Anton Anokhin
[
"Для тех, кто не сможет прийти, вот ребята недавно заходили ",
{
"type": "link",
"text": "https://www.youtube.com/watch?time_continue=451&v=eM-fuw3KuqQ"
},
""
]
Anton Fenske
Уважаемые, поделитесь для какой цели обычно используете Flutter и почему именно этот фреймворк?
admin
для целей когда нужно дочернее MVP для двух платформ но не хочется учить ведроразработку или искать андроидера
admin
Flutter а не RN потому что нет желания косить под нативный вид платформы
Anton Fenske
А какой тип проекта? Свой после работы, стартап или ещё что-то?
admin
внутренний в компании на парт тайме
Igor Filippov
Планирую для личных, по крайней мере в ближайшее время
admin
надеюсь что для любых)), но как пойдет
Mike
немного офтопик, но вот использую редакс в RN и немного не понимаю, почему не запилить класс или iife и просто дёргать методы класса, чтобы менять состояние модели (что внутри самого класса), зачем такая сложная прослойка.. Видимо, я не очень понял редакс
Mike
в итоге я в редьюсере ловлю экшон и дёргаю всё тот же метод :(
Nikita Kononenko
Использую, чтобы переписать нативный MVP под андроид и сравнить производительность по всем параметрам (скорость разработки, отзывчивость приложения, удобство внесения изменений, компонуемость и т.д.)
Nikita Kononenko
Почему именно Flutter: нет прослойки между JS и нативом как в RN => рисует весь UI самостоятельно. Значит в андроиде мы отвязаны от support library/androidX. По большому счёту нормальных альтернатив, чтобы получить приложение "бесплатно" на вторую платформу сегодня пока нет. Судя по тому, что говорит документация, flutter может покрыть довольно большое кол-во требований. Пока как-то так :) Думаю, что когда закончу процесс переписывания, напишу, может статью о том как это было и к чему это привело вообще :)
Igor
Ну а они у тебя будут чистыми?
Aleksandr K
Ребят а для флаттера есть что то типа ретрофита?
Антон
Есть нормальный http элементарный
Fearless Cry
это удобно как ни крути
Underground ??
тут есть http
Underground ??
скорее привычней
Антон
[
"chopper | Dart Package\n",
{
"type": "link",
"text": "https://pub.dartlang.org/packages/chopper"
}
]
Антон
Возможно стоило загуглить, прежде чем спрашивать, но вот есть нечто похожее
Igor
Есть кое-что получше - swagger (open-api) для dart/flutter
Fearless Cry
ну чоппер и ретрофит далеки друг от друга
Fearless Cry
вообще ретрофит фактически не реализуем во флаттере ввиду отсутствии рефлексии
Anton Anokhin
[
"Мы сделали форму обратной связи для участников конференции DartUP, которая прошла 1 декабря в Питере. Пожалуйста, оставьте ваш фидбек о конференции, нам важно знать, в чем мы молодцы, а что стоит сделать лучше :) ",
{
"type": "link",
"text": "https://ru.surveymonkey.com/r/DartUP2018"
},
""
]
Fail Shahmaev
Кто-нибудь выиграл повебанк в код батле?
Дмитрий Скрыльников
А че так можно было???
Fail Shahmaev
да, три раза выиграть нужно было
Дмитрий Скрыльников
Я был только утром, там js не работал, печаль в общем...
Fail Shahmaev
похоже никому шансов не дали )
Anton Anokhin
в этом чате так нельзя
admin
Building for iOS is only supported on the Mac. Ха-ха
Fail Shahmaev
Так всегда было под iOS
Fail Shahmaev
поэтому порог вхождения большой
Fail Shahmaev
причем финансовый
Fail Shahmaev
либо ставь хакинтош, либо раскошеливайся на мак
Fail Shahmaev
потом еще 100$ за право публикации заплати
Оганнес Асатрян
Сек. Я ж щас в андроид студии кодю и могу же собрать сборку под иос?
admin
мне и под ведроидом норм
Fail Shahmaev
что-то мне подсказывает, что... нет
First Last
Qt так не работает по крайней мере
Pavel Shilyagov
конечно можно. Только надо чтобы стоял xcode и все необходимые тулы для сборки
First Last
Точнее, как Можно, но невероятно геморно
Pavel Shilyagov
плагин флаттера на маке под AS по дефолту даже настроен на запуск iOS симулятора а не андроид
Оганнес Асатрян
Все понятно
Fail Shahmaev
Собрать то приложение можно?
Pavel Shilyagov
я ж написал выше. Надо чтобы стоял xcode и все необходимые тулы
Pavel Shilyagov
конечно на маке только
|