Программирование : Dart & Flutter по-русски
Павел
; n line feed U+000A
Павел
А вот кстати да! тут же декодит нормально?
Павел
если у дио под капотом json.decode
Dmitriy Orteney
там из-за двойных ковычек сперва экранируется слэш, чтобы положить в строку)
Fearless Cry
а если я реально вот отправлю \n как текст, он будет отправлен как \\n, а после декодинга окажется что это перевод строки?)
Nikita Domnitskii
[
"Ты уверен что у тебя не ",
{
"type": "code",
"text": "\\\\\\\\n"
},
" какой-нибудь?"
]
Павел
[
{
"type": "link",
"text": "https://i.imgur.com/n4soSoC.png"
}
]
Павел
[
{
"type": "link",
"text": "https://i.imgur.com/p55qG49.png"
}
]
Павел
он вообще не использует decode чтоль
Fearless Cry
ты не туда смотришь
Dmitriy Orteney
он в трансформере делает
Павел
ага не все посмотрел еще
Павел
[
{
"type": "link",
"text": "https://i.imgur.com/5RKRkM7.png"
}
]
Павел
вроде то же самое по-умолчанию
Dmitriy Orteney
ну так дио не причём, оно так не должно работать)
Fearless Cry
дио сохраняет \\n как \\n ?
Павел
нормально деэкранирует и сохраняет как \n
Павел
предполагал что \n в любом случае есть перевод строки
Павел
то есть Text('Text1 \n Text2') работает нормально
Павел
либо дио сохранает как \\n
Fearless Cry
что и должно происходить если пришло \\n
Павел
По логике при экранировании уходит один слэш и должно остаться \n . На этом и основано экранирование.
Fearless Cry
ну вот я хочу отправить строку, в которой будет \n
Fearless Cry
у юзера по твоей логике должен быть перевод строки
Fearless Cry
я пишу в чате \n
Fearless Cry
а юзер получает перевод строки
Павел
запутался я) пытаюсь пробовать пока без бэка
Ruslan Yupyn
[
"всем привет. мне дали тестовое задание с существующим проектом, но никак не пойму в чем проблема.\n\n",
{
"type": "pre",
"text": "flutter pub get",
"language": ""
},
"\nвыдает следующее\n",
{
"type": "pre",
"text": "Because every version of flutter_driver from sdk depends on intl 0.16.0 and depends on intl ^0.15.8, flutter_driver from sdk is forbidden.",
"language": ""
},
"\nкуда мне смотреть или как установить старую версию 0.15.8 библиотеки intl?"
]
Fearless Cry
и нажать паб гет
Павел
const String _string = '{"title" : "Text 1 \\n Text2"}'; final String _decoded = jsonDecode(_string)['title'] as String;
Fearless Cry
а, у тебя его типо нет
Павел
почему это работает?
Павел
то же самое приходит с бэка
Dmitriy Orteney
[
"если хочешь как с бека, то надо ",
{
"type": "code",
"text": "const String _string = '{\"title\" : \"Text 1 \\\\\\\\n Text2\"}';"
},
""
]
Павел
но у меня с бэка так не приходит
Павел
и эта штука как раз и получает \n как текст
Павел
без перевода строки в Text
Dmitriy Orteney
[
"Но ты создаешь строку в дарте, а тут экранируются символы и в декод приходит не ",
{
"type": "code",
"text": "\\\\n"
},
", а ",
{
"type": "code",
"text": "\\n"
},
""
]
4??uzhoy .
String _json="{\"id\":\"8c6f06b6-65df \\n -49e1-a842-1b5d971dd31f\"}"; Text(_json), Text('${jsonDecode( _json) }'), дает такой результат
4??uzhoy .
поэксперементируй с raw json в виде строки, потом через декод
4??uzhoy .
jsonDecode из dart:convert
Павел
[
{
"type": "link",
"text": "https://i.imgur.com/IbUJXSK.png"
}
]
Павел
вот моя модель и в ней поле String c одним \n
Павел
я его передаю в Text . Чо ему еще надо?)
Dmitriy Orteney
[
"Короче у стринга есть ",
{
"type": "code",
"text": "string.codeUnits"
},
". 10 - это символ переноса, если нет 10, то нет переноса х)"
]
Павел
а почему тогда Text ('Text1 \n Text2) работает? Другоймеханизм у констант?
Dmitriy Orteney
Потому, что когда стринга создается, она заменяет \n на 10 символ
Dmitriy Orteney
Это не Text превращает \n в перенос
Павел
Text(journalStore.article.institutions.replaceAll('\\n', '\n')),
Павел
вот и костыли подвезли
Павел
запихну лучше в конструктор модели)
4??uzhoy .
лучше уж в фактори спрятать
Nikita Domnitskii
Чота такое выходит
Nikita Domnitskii
Передавай 4 слэша с бэка)))0)))0
Павел
бэк крутая система ) он стандартизирован
Павел
[
{
"type": "link",
"text": "https://i.imgur.com/snCTP10.png"
}
]
Evgenii Elchev
у тебя бек данные из базы берет?
Evgenii Elchev
в ней что лежит?
Roman Vasiliev
Только n же бывает да
Evgenii Elchev
да это выглдяит все как ультра костыль на самом деле
Павел
[
{
"type": "link",
"text": "https://i.imgur.com/mzzGjKm.png"
}
]
Павел
ну будет туда из формы textarea уходить
Nikita Domnitskii
Так может вообще массив строк возвращать?
Павел
даже не задумывался, что отдает textarea
Павел
В базе выделил под это дело обычную varchar поле. Тогда костыль перемещается на бэк)
Павел
можно там разбить на \n и отдать. Хорошая идея. Грузнуть бэк
Nikita Domnitskii
По-моему, разделять строку ньюлайнами больший костыль чем хранить это отдельными строками
Павел
Ну есть поле для редактора textarea. Это его право, ставить новую строку или нет
Павел
вот сейчас специально гляну что отдает форма
Evgenii Elchev
это же пых? '\n' - это как раз \\n, он строки в одинакрных кавычках обрабатывает не так же как в двойных) для него буквально все что в одинарных то текст)
Evgenii Elchev
замени "\n")
Evgenii Elchev
но вообще лучше хранить строки отдельно
Evgenii Elchev
и я все таки был прав на счет бека)
Evgenii Elchev
php замечательный инструмент, который почему то никто не хочет учить, и юзают как попало
Павел
о спасибо) век живи век учись
Evgenii Elchev
или один раз доку прочти)
Павел
там доки на всю жизнь читать
Павел
но про строки согласен
Павел
просто везде рекламирую одинарные. они типа быстрее )
Evgenii Elchev
за месяц можно управится)
???????
Ничоси у вас тут сага одной строки)
Evgenii Elchev
ну так ясен перец быстрее, там нет интерполяции
Evgenii Elchev
и это выгодно, когда она тебе не нужна)
Павел
ага, и пару мес на js и еще пару на react и vue
Павел
и флаттер не забыть с дартом
Evgenii Elchev
ну три месяца это конечно таааак много)
Павел
так и проходим на ошибках
Павел
думаешь гугл или фб не юзают костыли?
Roman Vasiliev
Это не оправдание
Evgenii Elchev
костыли могут быть оправданы
Evgenii Elchev
а могут быть нет
Павел
самобичевание тоже зло)
Павел
записал в технический долг и пошел дальше
Павел
не всем же Денами Абрамовыми быть
Evgenii Elchev
я однажды 4 дня ресерчил как в ios. экран принудительно развернуть как мне надо, и в итоге понял что без костыля мне UIKIt не позволит, сделал костыль, но там было 4 дня ресера, я одним местом чувствовал что так нельзя) дошел до знакомого из apple что бы уточнить, точно ли я не пропустил какой нибудь специальный метод)
Evgenii Elchev
и не надо быть им, надо просто почитать документацию и подебажить с самого начала)
Павел
ну я и начал с RFC )
Evgenii Elchev
и с автором согласен)
Evgenii Elchev
если лень читать, то там говориться что саната выделил отдельные круги ада, тем ко сколняется к утвержденям выделенным жирным шрифтом)
Павел
почитал, весело написано
Evgenii Elchev
почти каждый костыль стреляет со временем, и хорошо если он тихонько отстрелит руки тому кто его написал, но скорее всего он с шумом взорвется, разнеся пол проекта)
Павел
внезапно из формы textarea приходит \n )))
Павел
то есть в базу пойдет \n
Павел
хотя не, отработал и в базу отправил с кодом
Артем Терещук
Здравствуйте, подскажите пожалууййста как управлять анимацией showModalBottomSheet ??
Артем Терещук
а то она слиишком дефолтная
Nikita Domnitskii
Роут свой напиши
IB Akhrorov
у кого возникал такая ошибка
IB Akhrorov
при добавлении sdk firebase:crashlytics
Олег gygyms
День добрый, подскажите, пожалуйста: по нажатию на кнопку открываю AlertDialog, по кнопке "Да" отправляю запрос на сервер. Запрос отправвляется, ответ приходит, но не вызывается then, почему так происходит?
Олег gygyms
[
{
"type": "link",
"text": "https://pastebin.com/UK2VJUhE"
}
]
???????
Как назвать класс (миксин) который является одновременно и издателем и подписчком? (Subscriber Publisher)
iamthevoid
[
{
"type": "link",
"text": "https://github.com/JakeWharton/RxRelay"
}
]
Rinat Kurmashev
как перехватить нажатие по локальной нотификации, показанной либой?
Rinat Kurmashev
на надроиде
Sergey Hottabych
У меня тупит IntelliJ, не показывает эмуляторы и не запускает их при старте. Приходится открывать Android Studio, залезать в AVD Manager и включать. Можно ли это как-то пофиксить?
iamthevoid
можно написать скрипт
iamthevoid
$PATH_TO_SDK/emulator/emulator @ [options]
iamthevoid
главное не пользоваться $PATH_TO_SDK/tools/emulator -avd [options]
iamthevoid
[
{
"type": "link",
"text": "https://developer.android.com/studio/run/emulator-commandline#starting"
}
]
Andrew Cherniakhov
Ребят привет. может подскажете Response >
class Reponse {}
как внутри ресонса вытащить bool?
iamthevoid
понятия не имею, чтр у тебя за response, но посмотри автокомплитом, какой метод у тебя возвращает T или List . Или провались в класс и посмотри как там реализовано
Andrew Cherniakhov
это мой респонс, мне в нём нужно вытащить этот тип сейчас внутри T == List но вот именно получить bool не могу
iamthevoid
обычно бывает так class Response {
T item;
Response(this.item); }
Response> response = Response([true, false, true]); List list = response.item;
Andrew Cherniakhov
я только создаю этот класс, фабрика, которая разбирает json, и вот что бы разобрать корректно, нужно понять что должно быть в листе
Sergey Salnikov
Subject как в реализации Rx =)
???????
Кстати, хорошая идея)
Andrew Cherniakhov
сейчас оно сделано так что разбирает модель, а нужно что бы если эта модель в листе то разбирало лист этих моделей
???????
Блин. Боюсь только потом поиметь коллизий с неймспейсом Rx
iamthevoid
сабжект это эмиттер и конзюмер, но не сабскрайбер
Sergey Salnikov
import as зато понятие одно и сам не запутаешься
???????
Ну я понимаю, что разгрести то можно
???????
Но неудобно жеж, ide будет автоимпорты делать весьма странные
???????
в чем принципиальная разница между подписчиком и потребителем?
iamthevoid
сабжект это водосточная труба, а сабскрайбер это сток, куда из трубы вытекает
???????
Вопрос именно про подписчика.
???????
с синком/эмиттером/паблишером то понятно
iamthevoid
подписчик это и есть сабскрайбер
iamthevoid
Так, я немного запутался )
???????
Ну ты первый меня запутал)
iamthevoid
У нас есть сабжект, он одновременно конзюмер и эмиттер. Есть сабскрайбер, он потребитель
iamthevoid
Тебе нужно что? Конзюмер и эмиттер или сабскрайбер и эмиттер?
???????
В чем разница между конзюмер и сабскрайбер?
iamthevoid
Конзюмер и эмиттер это сабжект, и велосипеды изобретать не нужно, а сабскрайбер и эмиттер это другое
iamthevoid
конзюмеру можно скормить айтем руками, а сабскрайбер получает айтем из подписки
iamthevoid
они оба могут делать с полученным эмитом что угодно, но разница в том, откуда доступ
???????
[
"В общем пока, видимо, не реализую этот шоткат.\nТк не могу придумать годного названия, вписывающегося в \n",
{
"type": "link",
"text": "https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern"
},
""
]
Alexander
Привет всем! подключаю нативную библиотеку в build.gradle не собирает Could not find method implementation() for arguments , тыкните куда глянуть, покапал gradle не помогло
Dmitriy Orteney
ну ты хоть покажи куда чо добавил)
Alexander
[
"repositories {\n maven { url '",
{
"type": "link",
"text": "https://dl.bintray.com/yandex-money/maven"
},
"' }\n}\n\ndependencies {\n implementation '",
{
"type": "link",
"text": "com.yandex.money"
},
":checkout:3.0.3'\n}"
]
Fearless Cry
это в какой билд.градл хоть
Fearless Cry
модуля или аппы
?? Назар Калитюк
[
"Ребят, есть ли похожий пакет на дарте? ",
{
"type": "link",
"text": "https://github.com/OptimalBits/bull"
},
" \nИ я так понял этот пакет ",
{
"type": "link",
"text": "https://github.com/dart-gde/chrome.dart"
},
" только для дарт < 2. Есть новое что то?"
]
Fearless Cry
ваще связи не понял между пакетами)
?? Назар Калитюк
а должна быть связь? Мне просто нужно 2 пакета
?? Назар Калитюк
с 0 писать менеджер очередей как то ваще не охота.
???????
[
{
"type": "link",
"text": "https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern"
}
]
???????
Такое хочешь чтоля?
?? Назар Калитюк
не знаю. У меня есть проект на ноде, хочу на дарт перенести.
Fearless Cry
при чём тут ето
???????
При том, что это MQ
???????
Связь прямее не бывает. Прямая как шпала
?? Назар Калитюк
попрактиковать дарт, я недавно учу.
Fearless Cry
лучше в дартпаде потыкайся
?? Назар Калитюк
ну вообще связь есть. Но пакета нету, разве что просто редис голый.
???????
Ну я по пабу шарился. Ничего прям грандиозного не нашел.
???????
Есть интересные наработки, но не настолько, чтоб самому не написать.
???????
Ну и да, редис это же суть просто NoSQL (никогда не лапал его), нет?
?? Назар Калитюк
по сути для простой очереди можно и самому попробовать. У меня было раньше самописное на ноде, пока не нашел bull.
???????
Если бэкенд, то лучше не пиши сам. Возьми из модного крутого - NATS
?? Назар Калитюк
юзаю его. Как базу и как pub/sub
Di
Добрый день, есть таб листенер, в котором в зависимости от индекса пушится страница. Почему-то одна из страниц пушится по 5 раз, другая нормально, через брейкпоинты не отловить, а название роута - нулл. Как это можно решить?
???????
[
{
"type": "link",
"text": "https://nats.io/"
},
"\n\nПопробуй лютую годноту."
]
???????
В пабе есть адаптер к нему, я видел
?? Назар Калитюк
просто это все я на джс делал. А в дарте нужно разбираться.
Fearless Cry
разберись с чем-то более фундаментальынм что ли
???????
Ну вот для реально Ъ высоконагруженного бэка, тебе надо брать именно такую штуку
?? Назар Калитюк
а на счет написания расширений на дарте ниего не посоветуешь?
Fearless Cry
система типов, фьючи, стримы
???????
Если надо просто очередь внутри кода - можешь ко мне в репозиторий заглянуть. Но я делаю по большей части для себя шину.
?? Назар Калитюк
да там нагрузки нету вообще. Просто очереди, и чтоб их можно было с разных процессов менять
???????
Расширений? Method extensions и Mixin ?
?? Назар Калитюк
для хрома). Забыл дописать
???????
Ну dart2js в лапки
?? Назар Калитюк
а как апи хрома из дарта вызывать?
???????
а как из js его вызывать?
|