Программирование : Dart & Flutter по-русски
Igor Terletsky
но пока она запустится - успевает проскользнуть белый экран
???????
Ну если это так, яб мб попробывал пойти по пути кармака с его "мегатекстурой")
???????
Был бы интересный опыт.
Igor Terletsky
это и смущает
northelks
но когда есть грид, и в нём картинок в ряд по четыре и грид этот как список может скролиться.. и вот в какой-то момент, забивается походу память и прилага вылетает
???????
Ну как id software делает не знаешь чтоли?
???????
У них есть мегатекстура, которая подгружается а потом кусочки этой текстуры мостят там где надо
???????
Я в вебе такой подход часто видел
northelks
это совсем другое)
???????
Не сгодится в твоем кейсе?
northelks
у меня больше кейс как в фотогалерее
???????
Тип картинки заранее не известны?
northelks
грид с большим количеством фотографий
northelks
они динамически подгружаются, фильтруются и тп
???????
Ну во флатере видел какт можно писать/переопределять свой загрузчик фотографий.
???????
Мое предположение - у файловой системы есть ограничение на одновременное количество чтений и флатер это ограничение не учитывает.
northelks
я вот про это тоже подумал
???????
Тобишь тебе надо принудительно грузить не больше 20, а остальные в очереди.
northelks
вот очереди уже начал применять, просто думал, может кто сталкивался с этим и смог заинвестигейтить и найти причину
northelks
есть ещё идея в том, что кэш картинок постоянно создаётся
northelks
то бишь одна и таже картинка может много раз "закэшиться"
Anton Anokhin
[
"Анонсировали дату Flutter митапа в Wrike (Санкт-Петербург). Пока без расписания, спикеров и описания встречи, все это появится чуть позже. Но по ссылке уже можно регистрироваться (пока только по ссылке)! Если хотите подать доклад, пишите мне лично или ",
{
"type": "mention",
"text": "@bunopus"
},
" ",
{
"type": "link",
"text": "https://wriketeam.timepad.ru/event/1025357/"
},
"\nP.S. Будет пицца и фирменное Wrike Dart пиво!"
]
???????
Планируете в Питере? Ориентировочный месяц?
Anton Anokhin
26 сентября, Питер, эта информация по ссылке есть
???????
Понял @ принял. Спасибо.
Anton Zheltov
ссылка не открывается чтото
Anton Anokhin
пробуйте! уже много людей зарегалось, работает
Anton Zheltov
открылось ??
admin
а в Сочи не планируете замутить? :)
Anton Anokhin
Нет. В Праге планируем
Игорь Кравченко
Москва? - планируете?)
Anton Anokhin
[
"Ближе к зиме планируем Dart/Flutter конференцию DartUP в Питере, приезжайте. Для тех, кто в Европе, будут ивенты в Праге на английском. Следить можно тут: ",
{
"type": "link",
"text": "https://www.meetup.com/Dart-Flutter-in-Prague/"
},
""
]
Dmitry Bubnenkov
[
"Я правильно понимаю что два класса для виджета нужно т.к. один хранит состояние виджета, а второй сам виджет т.е.\n",
{
"type": "pre",
"text": "class Counter extends StatefulWidget\n{\n @override\n _CounterState createState() => _CounterState();\n}",
"language": ""
},
"\nВы тут храним исключительно состояние ^\n\nА вот тут сам виджет:\n",
{
"type": "pre",
"text": "class _CounterState extends State \n{\n\n}",
"language": ""
},
""
]
DVS (Read The F.ng Manual) Studio (NoHello)
да. и в стейте надо переопределить метод build. он и определяет, как будет выглядеть виджет
Dmitry Bubnenkov
[
"А почему состояние виджета:\n",
{
"type": "pre",
"text": "class Counter extends StatefulWidget \n{\n}\n",
"language": ""
},
"Не статичный\\финальный т.е. по идее он же потомков не должен иметь т.к. просто хранит состояние"
]
Dmitry Bubnenkov
[
"И вообще какие поля класса попадают в createState?\nЯ разбираю вот этот пример ",
{
"type": "link",
"text": "https://flutter.dev/docs/development/ui/widgets-intro#changing-widgets-in-response-to-input"
},
""
]
DVS (Read The F.ng Manual) Studio (NoHello)
никакие. в стейте есть ссылка на виджет
DVS (Read The F.ng Manual) Studio (NoHello)
[
"т.е. можно сделать\n",
{
"type": "pre",
"text": "class Counter extends StatefulWidget\n{\nfinal int a;\nCounter(this.a);\n @override\n _CounterState createState() => _CounterState();\n}\n\nclass _CounterState extends State \n{\n...\nwidget.a; // это и будет тот аргумент виджета\n...\n}",
"language": ""
},
""
]
Dmitry Bubnenkov
Но при этом в нем самом в методе build этот виджет и описан?
DVS (Read The F.ng Manual) Studio (NoHello)
Counter - виджет, который состоит из других виджетов
DVS (Read The F.ng Manual) Studio (NoHello)
где-угодно можно в билде сделать Counter(15), ... и в том месте подключится этот виджет и отрисуется его build из его стейта
Dmitry Bubnenkov
[
"А почему:\n",
{
"type": "code",
"text": "class _CounterState extends State "
},
"\nЧерез подчеркивание называется?"
]
(;?_?) Ivan Zhuravlev ???>?
что бы не было доступа при import
Виктор
Типо нельзя его трогать, на сколько я понимаю Как в питоне __name Не рекомендуется изменять
DVS (Read The F.ng Manual) Studio (NoHello)
_ = private
Dmitry Bubnenkov
[
"У меня получилось, но я не совсем понял как это сделано. Когда мы вызываем ",
{
"type": "code",
"text": "Counter()"
},
" в другом виджете то автоматом экземпляр класса создается?"
]
DVS (Read The F.ng Manual) Studio (NoHello)
Считай что там написано new Counter() Самый обычный конструктор Дарт сам подставляет new и const где считает нужным
Dmitry Bubnenkov
[
"Никак не могу понять вот этот момент:\n",
{
"type": "pre",
"text": "widget.a; // это и будет тот аргумент виджета\n",
"language": ""
},
"Стейт хранит в себе ссылку на виджет так? Т.е. мы к его полям можем обратиться? Верно?"
]
Dmitry Bubnenkov
Для кажого экземпляра виджета будет создан свой стейт так?
Dmitry Bubnenkov
[
"Просто если я пишу ",
{
"type": "code",
"text": "widget.a;"
},
" то оно мне красным подсвечивает."
]
Mike
значит поле a не объявлено, либо с видимостью косяк (но насчёт последнего я не уверен, давно не писал, пусть подправят)
Mike
ну хотя там видимость через нижнее подчёркивание
Dmitry Bubnenkov
56 строка
Mike
в своём проекте нашёл пару stateful-ов
Mike
видимость не влияет (только что проверил)
Dmitry Bubnenkov
угу да ты прав
Dmitry Bubnenkov
[
{
"type": "pre",
"text": "class Counter extends StatefulWidget {\n @override\n _CounterState createState() => _CounterState();\n}\n",
"language": ""
},
"Читается так: \"Создаем стейт и вызываем констуктор класса этот самый стейт возвращающий\"\n\nт.е. теперь у нас есть стейт и сам виджет который мы создали в ",
{
"type": "code",
"text": "Widget build () {} "
},
" \n\nВерно все?"
]
Dmitry Bubnenkov
И внутри методов стейта мы можем обращаться к полям самого виджета
northelks
а у вас FlutterCrashlytics не пишет "[Fabric] [Fabric +with] called multiple times. Only the first call is honored, please pass all kits you wish to initialize"?
Андрей Хливнюк
я правильно передаю аргументы в роут?
Андрей Хливнюк
а то чет не приходят
Андрей Хливнюк
[
{
"type": "mention",
"text": "@kroppli"
},
" master"
]
Hrigorov
подскажите почему не видит метод setState
northelks
если не ругается
Андрей Хливнюк
мы тоже не видим
Андрей Хливнюк
может я просто принимаю неверно?
Андрей Хливнюк
чет не выкупаю
Anton ?? ? ??
//пожалуйста, объявляйте инициализаторы до пропертей
Андрей Хливнюк
так проще оказалось
Hrigorov
Ребят, подскажите почему не видит метод setState(),пожалуйста
Slava Marchenko
Наверное потому что это stateless виджет
Hrigorov
вот как знал что нужно было с этого момента начинать учить??????
Stanislav Sagan
[
"а как сделать бесконечный список конечным? Ну в том смысле что генерируемым по индексу, по типу ",
{
"type": "code",
"text": "ListView.builder"
},
" но при этом чтоб он останавливался когда контент кончается, или так незя?"
]
Anton ?? ? ??
если контент кончается, то лист вью конечный
Stanislav Sagan
Мм.. ну ладно
Stanislav Sagan
А если контент просто длинный
Stanislav Sagan
[
"то через что его делать если не ",
{
"type": "code",
"text": "ListView.builder"
},
" ?"
]
Виктор
Здравствуйте. Есть задача по введеному url показать видео. Видео воспроизводится через плагин video_player (vlc). Вопрос в том как передать в приложение url до того, как будет вызван build с плагином video_player. Как это можно реализовать? (Я так понимаю, что "обновить" значение url потом будет нельзя)
Виктор
Хм. Логично. Что-то я затупил
Jakos
Всем привет. Кто-то знает, как убрать отступы между элементами row в column?
Олег
Row MainAxisSize.min вроде
Олег
Column MainAxisSize.min
Jakos
Не, ничего не меняется.
Андрей Хливнюк
Поставь отступы просто каждому элементу от соседа
Jakos
так отрицательные нельзя
Jakos
а тут и так уже по нулям отступы
Jakos
Возможно у изображения ширина на самом деле больше
Олег
Картинка с прозрачными пикселями лишними значит. Либо с ней разбираться. Либо использовать Positioned, он позволяет отрицательные отступы делать
Jakos
Буду пробовать, спасибо.
Олег
Но второй вариант это костыль)
Denis
Никто не подскажет возможную причину проблемы? На клиент(flutter приложение мобильное) приходит картинка в формате base64 строки, я ее декодирую с помощью base64Decode получаю Uint8List и дальше рендерю с помощью Image.memory все хорошо но на старых телефонах не отображается к примеру galaxy s4,s5. Долго пробовал найти решение в итоге сделал через ImageProvider image = ImageMemory(uint8List), и просто это в обычный Image обернул. С чем может быть связано такое поведение, ибо в доке написано что Image.memory это просто сокращенная нотация
Hellomik
хай кто может помочь
Hellomik
надо подготовить приложение для релиза
Hellomik
и там надо менят com.example
Hellomik
я поменял в build.gradle
Hellomik
com.example.reus -> com.hellop.reus
Hellomik
агриться когда пытаюс создать app файл
DVS (Read The F.ng Manual) Studio (NoHello)
в android manifest, само дерево папок?
Slava Marchenko
Делай поиск по всему проекту
Slava Marchenko
На example
Stanislav Sagan
Ребята, я вам отвечаю, у Rust документация лучше чем у дарт/флаттер. Rust блин легче выучить чем какой-то фронтендик
Олжас Сулеймен
Ну он проще
Anton ?? ? ??
??? Что не так с документацией
Fearless Cry
Не написано как сделать чтобы было красиво и все работало
Fearless Cry
Это шутка, если что, пожалуйста не душните
Anton ?? ? ??
1) доброе утро 2) Раст тебе придется учить 1-2 месяца, хотя бы чтобы хелловорлд написать 3) и документация и комьюнити намного лучше чем в каком нибудь айосе 4) походу ты сам не разобрался
Fearless Cry
Ну флаттеру далеко до комьюнити натива
Fearless Cry
Даже с кордовой не потягаться
Fearless Cry
А кордова тот ещё кусок
Dmitriy
Привет ребят Такой вопрос: Хочется построить свою небольшую карту в приложении Но сложно понять, как это можно сделать на канвасе На сколько я понимаю, попытка работы с канвасом при перемещении картинок по нему - это перерисовка всего канваса, что очень затратно Может есть уже какое-то решение для карты? Flutter map, который работает с mapbox я видел, но это не то, что нужно Мне нужно написать свою небольшую кастомную карту с перемещающимися картинками Может есть варианты, кроме канваса? Либо канвас это не так затратно по эффективности, тогда как это попробовать делать наилучшим образом? Спасибо :)
northelks
кто-нибудь знает как сконкатить/соединить два видео файла в один во флаттере/дарте?
northelks
кроме как flutter_ffmpeg
northelks
и хорошая ли это вообще идея делать это на телефоне
Fearless Cry
На ПлАтФОрМе
Valerii Kuzivanov
Ну камон чувак, хорош уже
Valerii Kuzivanov
Со своими ссанными пинами
Valerii Kuzivanov
1 правило любого телеграм канала, не пинь до тех пор, пока телега не сделает функционал мута пинов. Они пиликают везде, на работе, ночью, когда ты дрочишь или пишешь код. Это отвлекает, понимаешь?
Fearless Cry
Какой ты чувствительный мальчик, Томми
Sergey ?
Можно же мютить пины )
Valerii Kuzivanov
Я свечку за тебя поставлю, если расскажешь как
Sergey ?
В настройках телеграмма
Sergey ?
Notification and Sounds -> Events
Valerii Kuzivanov
Искал, даже гуглил, не было такого. Неужели вкрутили?
Sergey ?
Всегда было. Telegram (не Х)
Valerii Kuzivanov
Я хз, где именно?
Valerii Kuzivanov
Ты сделал мой день
Valerii Kuzivanov
Спасибо вообщем
Fearless Cry
И даже не извинился за ссаные пины!
Valerii Kuzivanov
Извиняюсь, но пины все равно осадочек оставили
Valerii Kuzivanov
Детская травма)
Serge Shkurko
[
"Всем привет\nЗапилил тулзу, может кому-то интересной покажется)\n\n",
{
"type": "link",
"text": "https://pub.dev/packages/dpm"
},
""
]
Daniil Kolyasnikov
А зачем ?
Дмитро Годун
Спасибо, Виталий, уже решилось! Оказалось что провайдер сверху зарегистрирован несколько раз и разные шаги регистрации подхватывали разные инстансы. Если оставить один то все стало нормально
Дмитро Годун
А RegisterLayout может как то влияет на такое поведение клавиатуры? Ибо скрыть её можно вроде как через SystemChannel и сабмит с действием Done
Serge Shkurko
Чтобы работать с pub через cli
Daniil Kolyasnikov
Я просто не встречал задач подобных. Можешь пример накинуть ?
Serge Shkurko
Не для решения каких-то специфичных проблем, для удобства
Dmitry Bubnenkov
А можно пример удобства?
Anton ?? ? ??
Мне понравилось, очень понравилось, спасибо
Anton ?? ? ??
Но одно, не зависящее от тебя... Флаттер и так имеет миллион папок и файлов, чтобы просто запустить хелло ворлд, можно лишь обойтись без .dpm_bin?
Serge Shkurko
конечно можно
Anton ?? ? ??
Я имел в виду использовать dpm без .dpm_bin
Serge Shkurko
он только при выпонении специфичной команды появиться должен
Андрей Медведев
Всем привет в этом чятике
Андрей Хливнюк
я вообще правильно тип определяю?
Андрей Хливнюк
или мне надо оставить bool checked и проверять на null?
Evgenii Egorov
Да, буля может быть нулькой, динамик не нужен
Андрей Хливнюк
в двух словах, что нужно сделать, чтобы блок не вызвал dispose и сохранил данные при переходе на другую страницу, чтобы потом вернуться и данные уже были?
Serge Shkurko
не вызывать dispose)
Serge Shkurko
инициализировать блок на уровень выше
Андрей Хливнюк
это ок? в routes
Андрей Хливнюк
ну, грубо говоря
Fearless Cry
нулл ор булл
Андрей Хливнюк
по итогу блок не решает одну из проблем - проброс кучи пропсов, да?
???????
Ну так если у тебя блок в дереве виджетов создается и дерево отсекается вместе с ним
???????
Что с ним тогда будет?
???????
Создавай блок в корне или создавай синглтон и пользуй в любомместе.
Андрей Хливнюк
синглтон? хм)
Андрей Хливнюк
понял тебя кажется
???????
Ну или создай чуть выше экрана.
Кирилл Пешин
Всем привет. Как сейчас у Flutter дела с app bundle?? Раньше помню был баг то ли с 32 битной, то ли с 64 битной сборкой?? Поэтому собирал два apk. Сейчас в 1.7.8 поправили?
Anton ?? ? ??
[
{
"type": "link",
"text": "https://github.com/flutter/flutter/wiki/Release-Notes-Flutter-1.7.8"
}
]
Кирилл Пешин
Релиз превью я читал... к сожалению иногда решение одной проблемы порождает другую :-( Мне хотелось бы услышать тех кто уже выкладывал... Есть ли проблемы??
Dmitry Bubnenkov
Я не совсем понял. Если stateless отрисовывается разово и не меняет свое состояние, то как часы могут быть stateless ?
Fearless Cry
Stateless не имеет своего состояния
Кирилл Пешин
stateless - просто не содержит состояния (изменияемого содержимого), но содержимое для него приходит из вне, и оттуда же ему можно сказать, что содержимое изменилось.
Fearless Cry
он статично рисуется но если ты поменяешь в нём что-то он может перерисоваться
Fearless Cry
Как флаттер понимает что надо перерисовать виджет - по диффу
Dmitry Bubnenkov
А метод build не вызывается?
Serge Shkurko
если у тебя в Stateless компоненте например bloc он будет перересовываться
Serge Shkurko
но сам компонент - нет
Serge Shkurko
только его определенная часть
4??uzhoy .
Добавлял кто флаттер в андроид приложение существующее за недавнее время?
4??uzhoy .
По мануала следую ругается на файл отсутствующий в jdk, его тупо выпилили из новой версии как я понял
Kirill Saltykov
А Wrike всё ещё использует AngularDart?
Constantine
а куда они без него?)
Vitaly Pashichev
Недавно пилил
4??uzhoy .
Когда пытаюсь собрать флаттер проект гредл выдает ошибку что не может найти tools.jar в lib его там просто нет, подумал может сталкивался кто с такими проблемами, ну а если удачно получилось то может остался мануал ?
4??uzhoy .
Текущая версия jdk 12
Anton ?? ? ??
[
"Ребят, вопрос по platform-channel: как мне добавить депендси в ios/ проект? у меня есть файл ",
{
"type": "code",
"text": " project.podspec "
},
", и в него я вот так добавил депендси \n",
{
"type": "pre",
"text": "s.dependency 'sdk'",
"language": ""
},
"\nкак мне теперь получить под?"
]
Slava Marchenko
А у всех такая проблема с Step out (F10) что при проходе по await на следующую строку уже не попадает
Vitaly Pashichev
На tools не ругался. Только на androidx. Есть пример приложения, напиши в лс, скину реп
Slava Marchenko
Android Studio / IntelliJ
Anton Anokhin
Да, используем
???????
Опыт реакта (не натив) был? Что ближе к флатеру из SPA, реакт или ангуляр? Из праздного любопытсва спрашиваю.
Anton ?? ? ??
[
{
"type": "link",
"text": "https://pub.dev/packages?q=connectivity"
}
]
|