Программирование : Dart & Flutter по-русски
Дмитрий Митрофанов
Может ли это произойти из-за того что я в xcode открывал проект что бы посмотреть файлы?
Дмитрий Митрофанов
flutter clean делал pod install/pod update тоже удалял podfile.lock и директорию pods ничего не помогает
Ivan
Ты смотрел, файл на который ругается есть или нет?
Mitai
Доброго времени суток, установил ангулярдарт и django каждый теперь выводит свою стандартную страницу, а как мне их поженить?
Max Greb
[
{
"type": "mention_name",
"text": "Mitai",
"user_id": 480193086
},
" вывести сбилдженный index.html через django"
]
Савостьянов Андрей
Минутка вареза:
Дмитрий Митрофанов
да, там этот импорт есть. Причем если на чистом новом проекте запустить - то все нормально запускается
Fearless Cry
flutter build делали?
Савостьянов Андрей
Да, это варез, и это плохо. Но мой опыт показывает: читать книги перед покупкой НЕОБХОДИМО. Тот же Pact печатает неприемлемую мерзость. Если содержимое "зашло" - купить. Серьезные издательства, кстати, вполне себе дают почитать онлайн перед покупкой (Manning, Flutter in action).
Fearless Cry
флейвор билда совпадает со схемой в икскоде?
Дмитрий Митрофанов
Хороший вопрос, завтра проверю, спасибо!
Krat0S
Cocoapods ставил через brew? У меня была такая ситуация, помогла установка Cocoapods через sudo gem install cocoapods с подтверждением перезаписи исполняемых файлов
Mitai
я думал выводить должен как раз таки ангулярдарт, ведь он на фронте, вам не попадлся материал по данной связке? или можно посомтреть и простой дрф+ангуляр(жаба скрипт который)?
Олжас Сулеймен
[
{
"type": "link",
"text": "https://medium.com/dartlang/dart-nullability-syntax-decision-a-b-or-a-b-d827259e34a3"
}
]
IB Akhrorov
Is it possible to connect the phone through the wifi and hot reload?
DVS (Read The F.ng Manual) Studio (NoHello)
adb connect ip:port
Егор Шепелев
Народ, кто-нибудь работал с сокетами из под флаттера? Как скорость? Сильно задержки ощущаются?
IB Akhrorov
I tried but there is no such command
Влод
Думаешь будет медленней чем на других языках/платформах?
Егор Шепелев
Опасаюсь скорее. С покупкой тв бокса пара мыслей пришли в голову, вот и хотел сначала посоветоваться с опытными в этом вопросе коллегами
Егор Шепелев
Понял, буду пробовать значит. Спасибо
Олжас Сулеймен
а можно как то отловить какой виджет под курсором
IB Akhrorov
ребят как можно узнать port ip adress на андроид
Влод
тот который тебе нужен в настройках есть
IB Akhrorov
я нашел ip но не могу конеектить
Влод
ну порт соответственно 5555
Влод
это вроде нужно сделать пока соединён по usb
IB Akhrorov
adb server version (41) doesn't match this client (39); killing... ADB server didn't ACK Full server startup log: /tmp/adb.1000.log Server had pid: 25263 --- adb starting (pid 25263) --- adb I 08-27 01:43:11 25263 25263 main.cpp:57] Android Debug Bridge version 1.0.39 adb I 08-27 01:43:11 25263 25263 main.cpp:57] Version 1:8.1.0+r23-5 adb I 08-27 01:43:11 25263 25263 main.cpp:57] Installed as /usr/lib/android-sdk/platform-tools/adb adb I 08-27 01:43:11 25263 25263 main.cpp:57] adb I 08-27 01:43:11 25263 25263 adb_auth_host.cpp:416] adb_auth_init... adb I 08-27 01:43:11 25263 25263 adb_auth_host.cpp:174] read_key_file '/home/sony/.android/adbkey'... adb I 08-27 01:43:11 25263 25263 adb_auth_host.cpp:391] adb_auth_inotify_init... adb I 08-27 01:43:11 25263 25263 adb_auth_host.cpp:467] Calling send_auth_response adb server killed by remote request * failed to start daemon error: cannot connect to daemon
Aynur
есть кто работал и работает с mobX?
Влод
ну они должны быть в одной сети
Влод
ну ещё можешь попробовать убить adb
Влод
но в целом думаю я уже не помогу
Max
А ты точно искал в интернете adb through wifi?
Влод
так а так то он же все норм делает
IB Akhrorov
вы красавчики)
Max
Ну не все было однозначно. В любом случае, вопрос со всем не относится к теме чата
Олжас Сулеймен
[
{
"type": "pre",
"text": "x[Index(n, 0, i)] = b == Boundary.horizontal ? -x[Index(n, 1, i)] : x[Index(n, 1, i)];\n",
"language": ""
},
"из за минуса \n",
{
"type": "pre",
"text": "-x[Index(n, 1, i)]\n",
"language": ""
},
" тернарник возвращает динамик"
]
4??uzhoy .
Во влаттере есть возможность в методе map.update вытащить значение карты ( которое объект а не примитив) и обновить поля этого объекта ?
4??uzhoy .
иными словами как сделать подобие как если бы в java я написал Map.get(dataObject.agent).agentName =" new Name"; ?
4??uzhoy .
потому что все примеры что я вижу вида user["age"] = 25; user.update("age", (dynamic val) => ++val); // => 26
4??uzhoy .
то есть карта изначально хранит
Олжас Сулеймен
вынести ее в отдельную переменную и юзать в теле обновления?
Влод
звучит как задача для линз)
Влод
ну а так что тебе мешает сделать user.update(personId, (v) => v.age++)
Влод
[
"или\n user.update(personId, (v) => v..age++\n..name = ",
{
"type": "link",
"text": "v.name"
},
" + \"older\")"
]
Влод
наверное повод написать очередной ишью)
4??uzhoy .
да с примитивом в качестве значения ясно то все
4??uzhoy .
костноязычно наверное объяснил, просто не могу сообразить как получить объект по ключу из hashmap и обновить ему значения
Влод
давай без map.update
Влод
приведи пример что ты хочешь сделать
4??uzhoy .
такс, есть карта agentMap
4??uzhoy .
где стринг это айди, ну имя в общем, Агент - объект и в нем хранятся totalSales, Name и тд
4??uzhoy .
хочу получать объект из карты и увеличивать значение totalSales допустим
Влод
ну вот в этом примере я у обьекта обновил поле
4??uzhoy .
странно, когда я вызваю v. он выдвает методы toString, параметр hashCode, метод NoSuchMethod и тд
4??uzhoy .
HashMap agentMap = new HashMap (); объявил мапу так
4??uzhoy .
agentMap.update( dataObject.agent, ( v) => v., ifAbsent: () => new Agent( agentName: dataObject.agent, totalSummOfOrders: dataObject.ordersTotal, ));
4??uzhoy .
пытаюсь апдейт сделать так
4??uzhoy .
т.е ифАбсент то суем нового агента, а если уобновить то v. иии, ломаю мозг почему не как в джаве
4??uzhoy .
выражение в скобка принимает типа либо dynamic либо просто так без типа, я так понимаю по молчанию dynamic
Влод
ну то что динамик это ок
Влод
болезнь дарта он все везде за динамик считает
Влод
к этому можно привыкнуть и все типы держать в голове
4??uzhoy .
ну это фиг с ним, пусть считает, есть возможность достучаться до объекта и сказать ему что у этого агента тоталСуммОфОрдерс выросло на N ?
Влод
а вот насчет того что я посоветовал там придется ещё контейнер вернуть (v) { v.age++; return v; }
Влод
или все таки две точечки
4??uzhoy .
Так говорю ж, когда прописываю v. Он же не знает полей объекта моего, он как динамик и идёт, или это я что то не так делаю ?
Влод
тут крч довольно много лишнего написано
Влод
просто песочница у меня. но суть что две точки ок работают в апдейте
Влод
ну и изменяешь любые поля у динамика
Влод
на самом деле ты конечно можешь уточнить тип у него
Влод
m.update("a", (SimpleContainer v) => v..t = v.t + 1);
Даниил
[
"Всем привет. Не понимаю как это работает в Dart'е.\nЕсть ",
{
"type": "code",
"text": "abstract class base{}"
},
". 2 наследника: ",
{
"type": "code",
"text": "class a extends base{}"
},
" и ",
{
"type": "code",
"text": "class b extends base{}"
},
".\nДелаем список ",
{
"type": "code",
"text": "List list;\n"
},
"Работает:\n",
{
"type": "code",
"text": "list = [a(), a(), a()];\nlist += [b()];\n"
},
"Не работает:\n",
{
"type": "pre",
"text": "list = [1,2,3].map((_) => a()).toList()\nlist += [b()];\n",
"language": ""
},
"Ошибка:\n",
{
"type": "pre",
"text": "TypeError: type 'List ' is not a subtype of type 'List'\n",
"language": ""
},
" ",
{
"type": "code",
"text": "of other\n"
},
"Вопрос: что я делаю не так?\nGist: ",
{
"type": "link",
"text": "https://gist.github.com/ProOrange/f9c9340c31d4a824c6d7dfd80ea1c2d2"
},
""
]
Max
[
{
"type": "link",
"text": "https://dart.dev/guides/language/sound-dart#dont-use-a-dynamic-list-as-a-typed-list"
}
]
Даниил
Так лист не dynamic. Чётко указано что List list
Max
После слова "не работает"
Влод
[
{
"type": "pre",
"text": "abstract class base{}\nclass a extends base{}\nclass b extends base{}\n\nvoid main() {\n List list = [];\n list = [1,2,3].map ((_) => a()).toList();\n list += ([b()].toList());\n print(list);\n}",
"language": ""
}
]
Влод
[
"в мапе вывелся тип ",
{
"type": "code",
"text": "a"
},
"\nстранно что не dynamic по дефолту"
]
Max
Ты же отдаешь четко а
Даниил
[
"Так, что-то идёт не так. Это был тестовый пример. В реальности оно падает так:\n",
{
"type": "code",
"text": "void showUsers(List users){\n List data = users.map((user) => EmployeeListUserModel(user)).toList();\n if(true){\n data += [EmployeeListLoadingModel()];\n }\n _usersListStreamController.add(data);\n}"
},
""
]
Влод
ну когда ошибки читал он часто делает асамшон на динамики
Даниил
[
"Где ",
{
"type": "code",
"text": "EmployeeListItemModel"
},
" - базовый класс для ",
{
"type": "code",
"text": "EmployeeListUserModel"
},
" и ",
{
"type": "code",
"text": "EmployeeListLoadingModel"
},
""
]
Даниил
Т.е. тут уже явно указано что результат мапа будет в лист<суперкласс>
Даниил
Unhandled Exception: type 'List ' is not a subtype of type 'List' of 'other'
Влод
у мапа все таки уточни тип
Даниил
[
"падает на строчке ",
{
"type": "code",
"text": "data += [EmployeeListLoadingModel()];"
},
""
]
Влод
присваивает в List тк это уместный каст
Влод
и потом бросает эксепшон что не может добавлять в себя другие инстансы бейса
Влод
блин у меня со стримами такое же было
Влод
не мог тогда минимальный пример придумать чтоб ишью завести
Влод
а ишью по дженерикам и так уже есть
Даниил
Таки помогло, спасибо. Но я не понимаю. Ведь data - это List , даже если он протолкает туда результат мапа List , почему data становится List
4??uzhoy .
глянул, поменял объявление своей мапы
4??uzhoy .
на вот это Map agentMap = HashMap();
4??uzhoy .
теперь все доступно, мде
4??uzhoy .
значит не лыжи не ехали, хотя все равно странно, пасиба большое)
Влод
ну это ты такой тип ему написал
Влод
а при выводе типа он на лямбду смотрит
Влод
и решает какой именно инициализировать
Влод
вообще забавно что аргументы дженериков живут в рантайме и проверяются
Влод
ну наверное так и надо
Даниил
Как-то кривоватенько. Имхо указанный тип должен быть первичным над тем, что он выводит из лямбды. Ну да ладно, видимо так было нужно. Спасибо ещё раз :)
Vova
Всем привет кто-то работал с Server-Sent Events. Как начать слушать ответ сервера
Влод
ну там же есть фича автовывода типа если ты не указал тип. и тип две эти системы видимо несовместимы которая top-down и down-top То что ты пишешь тип переменной он потом проверяет справедливость
Даниил
Я ожидал что он проверит можно ли результат map'а присвоить в data (List ). Но он же вывел из результата map'а тип и переписал явно указанный тип у data.
Влод
[
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/19718"
},
"\nзабавно\nборолся за то чтобы оплата выглядела более менее ок в приложении а в итоге все равно в браузере придется октрывать"
]
Karen
есть ещё flutter_webview_plugin от комьюнити
Влод
[
{
"type": "link",
"text": "https://pub.dev/packages/flutter_inappbrowser"
}
]
Влод
не знаю в чем разница
Влод
ну вот этот попробую. звездочек побольше
Karen
он не такой гибкий, как вебвью от гугля, но всё ешё лучше чем открывать в браузере. мы сами через него платёжку добавляли
Влод
на самом деле меня волновало ещё как мне от джиуса послать на дарт сигнал что все ок
Влод
думал страницу перезагрузить с инфой в урле
Karen
по изменению урла мы делали
Karen
больше особо никак вроде
Влод
ну слава богу не у одного меня все так
Игорь Чичерин
[
"ребятки подскажите пожалуйста как мне в конструктор геттер завернуть? или так вообще нельзя делать и я что то не понимаю? ошибка вот такая (Only static members can be accessed in initializers) паста ",
{
"type": "link",
"text": "https://pastebin.com/kyPiWFR7"
},
""
]
Serge Shkurko
ты пытаешься обратиться к this.venues в тот момент, когда класс ещё не инициализирован
Serge Shkurko
[
{
"type": "pre",
"text": " static makeList(venues) => venues?.map ((Venue item) => LatLngAndGeohash(\n LatLng(double.parse(item.lat), double.parse(item.lon))))?.toList() ?? [];",
"language": ""
},
"\n\nбез статической функции не как"
]
Jacob
помоему если сделать latLngList не static должно быть норм
Игорь Чичерин
спасибо большое
Арчи
Hi. кто-нить знает как сделать расширяющийся по мере заполнения textfield?
Aleksey
[
{
"type": "code",
"text": "maxLines: null,"
}
]
Aleksey
сложно догадаться)
Арчи
эт, я знаю, но данный способ дает лишь скролл в text field, мне же нужно его расширять до N строк, потом скролл
Арчи
оказалось все просто, у меня жестко height был выставлен... а решение оказалось, min:1, max N,
Aleksey
[
"положи его в скрол контейнер и убери все лишнее кроме ",
{
"type": "code",
"text": "maxLines: null"
},
""
]
Ruslan Kryzhanovskyi
Привет, кто знает как сделать такое: Есть async задача "А" которую надо выполнить. Она выполняется 1-2 секунды после чего выполняется задача "В", мне же надо что-бы задача B начала выполнятся ОБЯЗАТЕЛЬНО скажем через 5 секунд от начала выполнения А и вне зависимости от того выполнялась А 1 секунду или 2
Eugene
Всем привет, кто-нибудь сталкивался с покупками в приложении. В документации написано, что тестировать покупки можно только в альфа-канале. Но у меня пользователи из бета-канала пишут, что у них тестовые покупки вместо настоящих.
Ruslan Kryzhanovskyi
[
{
"type": "code",
"text": "Future<"
},
{
"type": "bold",
"text": "void"
},
{
"type": "code",
"text": ">.delayed"
},
"(duration, computation) выполняет computation через заданный duration, а мне надо что бы computation начала выполнятся и сразу запустился таймер длительностью duration и как только он окончится (computation давно завершит работу) приложение продолжит работу"
]
admin
не очень тебя понял.. но возможно поможет: await A().then( () {....} );
admin
где A() твоя футурка
Ruslan Kryzhanovskyi
ненене представь что асинк таск А - сходить в магазин, В - разложить продукты в холодильник и мне надо что бы с момента твоего выхода в магаз до того как ты начнешь раскладывать продукты прошло ровно пол часа не важно сбегал ты за 4 минуты или сходил и основательно закупился за 26 важно то что ты начнешь раскладывать продукты через пол часа
Ruslan Kryzhanovskyi
это если упростить и абстрагироваться)
admin
ну или так: A(); « запуск основной футурки Future.delayed(new Duration(milliseconds: 5000), () {....}) тут твоя B() в ...
admin
собсно запустятся одинаково - первая сразу начнет работать, вторая аккурат через 5 сек
Ruslan Kryzhanovskyi
ну я думал об этом решении но думал может что получше есть)
Ruslan Kryzhanovskyi
однако спасибо)
IB Akhrorov
Guys я перешел не давно с котлина на dart и все не получается понять ключевое слово new
Виталий
Оно необязательное после Dart 2.0
IB Akhrorov
А зачем она была ? И она необязательно для flutter?
Виталий
Не только для flutter
Виталий
В Dart вообще после выхода 2 версии сделали его необязательным
Виталий
Пиши - или не пиши, без разницы
Виталий
Оно выполняет ту же функцию что и в других языках программирования где оно есть
IB Akhrorov
Создавал динамичную память?
Виталий
Ну, настолько точно я не смогу ответить на вопрос «что оно делает», ибо можно не использовать - не использую
IB Akhrorov
Кстати factory тоже что то новенькое
Ed .Zh
I want to add items to Dropdown button.
Ed .Zh
Items are loaded from firestore.
northelks
добрый вечер, если в гриде или в pageview много фотографий, при скролинге видны достаточно заметные тормоза может кто знает проверенные либы/плагины по работе с фотографиями в лист вью подобном компоненте, перепробовал много всякого, но так и ничего особо интересного не нашёл
northelks
(фотографии хорошего качества, поэтому весят относительно немало)
Max
Надо делать кэш из превьюшек
northelks
весь нетворк слой "закэшил" холодным и горячим
northelks
проблема в нагруженности флаттера, когда ему скармливается тяжёлая фотография и сам процесс рендера становится для него тяжёлым
northelks
даже когда все фотографии уже в памяти телефона
IB Akhrorov
Можете обяснить ,Флаттер состоит из виджетов , в чем отличие активити
Ярослав Капустин
Есть такое
Ярослав Капустин
Можно сжать фотки ...
Ярослав Капустин
Как вариант
Max
Так кэш именно превьюшек. Ты уменьшаешь / кропаешь изображения и их показываешь
northelks
можно, но нужны фотографии в хорошем качестве
IB Akhrorov
То есть это хорошо чем активити
IB Akhrorov
Что то я не в тему??
northelks
превьюшки тоже нужно чтобы были в качестве
Max
Без кейса сложно что-то подсказать. Если нужно много фоток на экране, то, наверняка, они будут мелкими. Следовательно можно снизить качество без видимых потерь
Ярослав Капустин
Ну тут ничего не поделаешь
northelks
ну даже если их делать без качества, то нужно быстро подгружать качественную фотографию потом, а это всё равно медленно происходит
northelks
получается эффект мерцания
Ярослав Капустин
Какой максимальный размер фото ?
northelks
ну, эти все методы и способы уже были пройдены)
Ярослав Капустин
Flutter плохо есть фотки больше мб
Ярослав Капустин
Можно сделать нативный вью для подобных целей
northelks
я уже ужимаю превьёшки до 300кб
Ярослав Капустин
Оригинал ест ?
|