Программирование : Dart & Flutter по-русски
Denis Chuvasov
ну а зачем нужно ограничение в 80 символов когда у людей 4к мониторы стоят?
Ali Isyanov
Я жену жарю, поэтому и не приходится думать чем проституток жарить. И вам рекомендую. На счёт начала с линтеров это вы не джунам объясняйте а ребятам кто курсы по Флаттершай даёт. А во вторых на Swift тоже ребята дела делают, но я не видел чтобы там строки в Swift UI переносить надо было, либо уже читать нельзя
d
Readability studies show that long lines of text are harder to read because your eye has to travel farther when moving to the beginning of the next line. This is why newspapers and magazines use multiple columns of text.
Andrey Unger
т.е вы у нас многодетный отец? ну чтож, поздравляю
Валерий
Поэтому и катимся в жепу. Зачем заниматься оптимизацией если у людей по 64 гига оперативы, зачем заниматься правильным форматированием если у людей мониторы по 3 метра в длинну, можно херачить все в одну строку и не париться
Denis Chuvasov
ну ок, выразился не так, я скорее про то что 80 это уже мало, мы на проекте выставили 100
Denis Chuvasov
100 символов спокойно охватываются взглядом при текущем разрешении мониторов
toTheMoon??
Посоветуйте что пилить для резюме джуну?
Andrey Unger
а, ок. вы там походу все инопланетяне раз 100 символов в строке можете прочитать без смещения глазного яблока. Годам к 60 не жалуйтесь что глаза болеть начали чего-то…
toTheMoon??
Я к тому какте нынче требования, завернуть в блок? Сколько экранов, есть ли смысл пилить крутые анимации, на что обращают внимание
Denis Chuvasov
о боже, как ты хабр читаешь, медиум, книги? не умер еще?))
Denis Chuvasov
разорвало поди глазное яблоко
Andrey Unger
иди на хабр, разверни браузр во весь эжкран и посмотри сколько там в строке помещается при 0 зуме.
Andrey Unger
или на медиум
Andrey Unger
почему-то на всех этих сайтах контент узок и отцентрирован. Наверно они дураки и не знают про 4к мониторы
Denis Chuvasov
хабр 96 символов
Andrey Unger
вот только текст в статье ты читаешь последовательно. а код фрагментировано. Т.е читать код все-таки сложнее чем статью. Стало быть и строка должна быть меньше.
Denis Chuvasov
медиум вроде и правда в 80 символов укладывается, ну да ладно
Andrey Unger
не дураки эти 80 символов придумали. И далеко не из-за ширины экранов
Denis Chuvasov
из-за ширины как раз таки
Denis Chuvasov
ну точнее не ширины экрана, а занимаемого текста
Andrey Unger
вы читали ссылку что я давал выше на официальное мнение разработчиков дарта по этому поводу?
Denis Chuvasov
я согласен с читаемостью кода, но не согласен с 80 символами при текущих экранах это мало
ManBearPig
Понеслась......????
Andrei Abramenko
А с мобилок код никто не читает?)
ManBearPig
Только чужой тут, когда в авто )??
Denis Chuvasov
[
"ну надо отдать должное что effective это не официальное творение, точнее сам код флаттера не использует его, если кидать аргументы, то они сейчас переходят на ",
{
"type": "link",
"text": "https://pub.dev/packages/flutter_lints"
},
""
]
Denis Chuvasov
а там этого правила пока нет
Denis Chuvasov
[
"точнее его закомитили пока ",
{
"type": "link",
"text": "https://github.com/flutter/packages/blob/5ec330f81d4a96685e2cd915fe026f373607ebc1/analysis_options.yaml#L105"
},
""
]
Denis Chuvasov
видимо потому что сами вертели на 4к мониторе это правило
Denis Chuvasov
но такое я осуждаю сам))
Andrey Unger
вообще в ide когда раскрыты инструментарные окна справа и слева от кода, на код остается не так уж много места. Попробуйте в тойже Intellij например открыть проджект эксплорер и флаттер инпектор одновременно. Да еще снизу подпереть дебагером. Если бы у меня код при этом был длинее 80 символов - без скроллинга бы точно не обошелся
Denis Chuvasov
100 и остается еще
Denis Chuvasov
[
"забавный коммент ",
{
"type": "code",
"text": "# not required by flutter style"
},
""
]
Andrey Unger
ну не все на 4к мониторах работают. У меня например прошка на м1, тут не 4 к на монитроре)
Michael K
добрый день! подскажите плиз! final response = await http.get(Uri.parse(url)); http подчеркнуто красным...сверху импорт http.dart синий...
Michael K
почему не приеимает http?
MiT
Убери http. в http.get или в импорте добавь префикс as http
ManBearPig
А уже ответили )
Michael K
сделал! работает! спасибо
Timur M.
А чего такая битва за эти 80 символов в строке? Откуда это взято?
Timur M.
Почему 80? Число красивое? Почему не 55 например?
ManBearPig
Дали сверху ссылку на правила языка..
Timur M.
Ну а правила кто писал? Откуда 80?
MiT
Все пошло из 60 годов
MiT
Потом появились всякие модные языки на 120
Dmitrij Kuznetsov
если правильно помню в досе было 80х25 знакомест, может от туда
ManBearPig
[
{
"type": "link",
"text": "https://en.m.wikipedia.org/wiki/Characters_per_line"
}
]
Timur M.
Вот! Вы знаете почему шина колеи на жд дороге в Европе 1455мм? Потому что в Риме это была ширина колесницы , чтоб туда влезло две лошадиные жопы
Timur M.
А теперь с этим сложно бороться Анахронизм
Владимир Калашников
Всем привет. У меня есть джсон типа {'carbs': {'unit': 'g', value:20}, 'fat':{'unit':..}}. Мне нужно создать модель с 3 полями: имя, единица имзерения и значение, где именем будет ключ этого словаря. Как я должен написать конвертцию такой модели в джсон и получение модели из джсона?
d
старые мониторы вмещали 80 символов / строку 25 это количество строк на лог. единицу кода (метод и тп)
Timur M.
Вот и делай в своём проекте как тебе удобно, Хоть 1000 в строке
Владимир Калашников
Я использую json_serialaziable
ManBearPig
Я специально для Вас ссылку скинул History читайте ...
Timur M.
Это вы ее специально для себя скинули )
ManBearPig
Мне это интерферентно... Так и в с было
Timur M.
Верно Это анахронизм
ManBearPig
Это имхо вообще не тема для дискуссий .... Можно ещё начать обсуждать размер кегля и стиль в ide )
Vladislav Rudenua
Кто-то пользовался провайдером для стейта? Я просто не совсем понимаю как мне загрузить данные а потом их изменять? загружаю я фьючер провайдером, а как взаимодействовать с этим данными ?
Andrey Unger
все хорошо пока кто-то не начинает публичные библиотеки пилить так. Попробуй сделай в такую пуллреквест со своими 100 символов на строку
ManBearPig
Напишите класс , опишите поля, создайте конструктор. После , можно правой кнопкой мыши сренерировать модель для парсинга
Timur M.
Ну нечего компы брать с монитором в 13’ ))
Vladislav Rudenua
[
{
"type": "link",
"text": "https://flutter.dev/docs/development/data-and-backend/json"
},
" \nЕсли руками писать можешь просто сгенерировать"
]
Vladislav Rudenua
Примерно что-то такое должен получить
ManBearPig
Я согласен с Вами.... Просто немного удивляют такие дискуссии для не неприличные проектов.... Тут все как у вас в компании /команде принято ... Соблюдайте или нет....
Алексей Александрович
[
{
"type": "link",
"text": "https://app.quicktype.io/"
}
]
Владимир Калашников
У меня есть такой список. Я хочу чтобы, например, energy и его единица измерения и значение были на 1 уровне. А energy было полем name в этом классе.
ManBearPig
Влейте в гугле jsongenerate и json2darr Первый поможет создать и проверить на валидность json Второй создаст модель
ManBearPig
Какая разница какой уровень если это модель?
Andrew Vasilevskii
Привет, есть у кого вебка в проде? Есть проблема долгой загрузки аппки, интересно есть ли какое решение
Семён undefined
ну у меня на проде
Семён undefined
слишком долгая?
Владимир Калашников
Генератор создает модель с 8 полями. А мне нужен список моделей, где ключ этого словаря будет полем в моей модели, как и единица измерения и значение.
Mansur Panzerkampfwagen IV
[
"Всем привет. вопрос по диплинкам, а именно либе ",
{
"type": "bold",
"text": "uni_links"
},
".\nПодскажите, как и ",
{
"type": "bold",
"text": "где"
},
" слушать в одном месте ",
{
"type": "code",
"text": "uriLinkStream"
},
", чтобы можно было пушить named routes"
]
Andrew Vasilevskii
10-14 секунд до лаунч скрина
Andrew Vasilevskii
Сам JS примерно 4 секунды
Mansur Panzerkampfwagen IV
Я пытаюсь сделать это в main app widget, но там не получается дернуть navigator В семплах либы очень примитивный пример с простым парсингом и выводом данных из диплинка
Семён undefined
не из-за веба скорее
Mansur Panzerkampfwagen IV
вот код
Семён undefined
чекни как загружаются зависимости
Andrew Vasilevskii
А вы используете у себе deffered?
Семён undefined
у меня почти нет различий веб версии с приложением
Andrew Vasilevskii
Может использовал кто? Интересно влияет ли это на размер Main.js
Andrew Vasilevskii
Ну у меня тоже не очень много различий, но все же
Семён undefined
а в network что показывает? долго этот файл грузит или что?
Andrew Vasilevskii
я же говорю 4 секунды
Семён undefined
сделай в виде сервиса (контроллер без view), а сам сервис запускай перед runApp, к слову метод cancel тебе не нужен
Andrew Vasilevskii
Поэтому и интересно использовал ли кто deffered помогает ли это, а то чет не охота весь проект переписывать )
Mansur Panzerkampfwagen IV
С сервисами не работал еще, но гляну. Спасибо Получается у него есть свой контекст, через который я смогу получить navigator?
Семён undefined
а.. ну тут можно навигатор через key передать, я через getx вообще когда-то с роутами работал, там контекст по этой причине не нужен
Kit Khilobok
Ребята, тут возник спор. Где должны объявляться контроллеры к виджету(текстовым полям и т.д.), в слое логики или в самом виджете?
Kit Khilobok
Если логика написана в провайдере(хотя не суть важно, это может быть блок), следует ли туда пихать все контроллеры экрана?
Kit Khilobok
Мне кажется, это так не должно быть
Vladislav Rudenua
Смотря для чего надо
ManBearPig
Если контроллер то его нужно инициализировать перед использованием => нужно состояние и build Думаю виджет
Vladislav Rudenua
я делал так, по нажатию на кнопку все отправляется в провапйдер а до этого все само работало
ManBearPig
Смысл что в логике с ним делать будете ?
Kit Khilobok
Вопро больше не в том, как оно будет работать(спойлер, и то и то работать будет), вопрос в том, как делать логичнее в рамках флаттера
ManBearPig
Ну понятно, вы событие на выходе состояние , контроллер реагирует ... Но зачем его в логику то =/
Mykola Shevchenko
Логика, по идее не должна быть привязана к отображению. Допустим сейчас TextEditingController, потом что-то немного поменялось, и источник изменений текста другой
ManBearPig
Имхо это ближе к ui... это только uo вернее )
Kit Khilobok
Ну вот я тоже того же мнения
ManBearPig
В блок через конструктор подавать контроллер ... ну так себе
ManBearPig
У Меня только в 1 блоке есть импорт материал, и то нужен только цвет )
Roman Suleymanov
[
"подскажите, пожалуйста, как внутри ",
{
"type": "bold",
"text": "CustomScrollView"
},
" в ",
{
"type": "bold",
"text": "SliverList"
},
" сделать отдельный ",
{
"type": "bold",
"text": "ListView"
},
" с горизонтальным скролом со ",
{
"type": "bold",
"text": "snap"
},
" эффектом"
]
Семён undefined
sliverbox
Семён undefined
превратит любой ваш виджет в сливервиджет (нет)
Georgy Perepechko
SliverToBoxAdapter только, если не вру
Michael K
подскажите плиз! пытаючт достать инфу с сервера...
Константин Бобров
может кто объяснить как отправлять пуши одному конкретному пользователю через файрбейз?
ManBearPig
Конечно Получаете токен Себе и приятелю
Смертушка Твоя
Уже запарился искать в нете, поэтому пришёл спросить у вас, товарищи. Компилирую проект с помощью dart2native и хочу сменить иконку у полученного экзешника. Но после добавления оной в resource hacker экзешник просто перестаёт запускаться. Что можно сделать?
ManBearPig
После сохраняете у себя в бэке (шифровать не забываем )
d
Судя по всему вы стучитесь не в апишку
ManBearPig
После простой select по id берем токен
Michael K
я взял ссылку с Headers, Request Url
ManBearPig
После используя свой токен (хоть на php) посылаем сообщение... Ссылку дать ?
ManBearPig
[
{
"type": "link",
"text": "https://firebase.google.com/docs/cloud-messaging/server#implementing-http-connection-server-protocol"
},
"\nВроде тут описано"
]
Michael K
там в google chrome в окошке для разработчиков я нашел на сайте ссылку в разделе Headers... и собственно скопировал ее
Michael K
а в разделе Response... там все что мне надо из инфы...
Dmitry
ребят, пробовали под Android TV писать на флаттере? какие подводные?
Andrey
Скиньте, пожалуйста, пермишн на доступ к камере
ManBearPig
[
{
"type": "link",
"text": "https://developer.android.com/guide/topics/manifest/manifest-intro?hl=ru"
}
]
ManBearPig
Раздел разрешкния
ManBearPig
Там и на фронталтную и на вторую есть...
Otx
Здравствуйте, знает ли кто можно ли использовать функцию в которой реализуется Overlay, потому что когда я вызываю эту функцию, то мне выдает ошибку, что дерево виджетов еще не успело построиться, а если я пытаюсь положить это все дело в какой-нибудь контейнер, то он просто подчеркивает красным
Andrey
Можешь строкой, пожалуйста, кинуть, я не могу найти
ManBearPig
[
" {
"type": "link",
"text": "android.permission.CAMERA"
},
"\"/>"
]
ManBearPig
Посмотри там ещк запрос автофокуса вспышки есть ...
Andrey
Ох уж эта документация, я толкьо нашел на CAMERA
ManBearPig
Сожно просто в гугле вбить)
ManBearPig
[
"Ту на русском ",
{
"type": "link",
"text": "http://developer.alexanderklimov.ru/android/theory/AndroidManifestXML.php"
},
""
]
Noob Noobskiy
Кстати, хороший оказывается сайт. Познавательный, с полу-темной темой, с котиками, и реклама без рекламы - идеально)
oramcheg
ребят, подскажите пожалуйста, как мне сделать по макету этот экран регистрации? все что на скрине с макетом - это все один экран с разными формами
oramcheg
нужно чтобы изменялся размер контейнера в зависимости от вкладки ТабБара
oramcheg
не понимаю как это реализовать
Alexandr Drobyshev
запускаю вс код или андриод студию6 появляется на полтора гб Java в запущенных процессах. выключаю вскод/студию - жава остается висеть вечно пока не убью. это норм?)
ManBearPig
Конечно де нет.. у сеня vs по всеми дополнениями в процессе эмцляции ~вдвое болтше вчего то ...
ManBearPig
Аницация/ Видимость - самое простое, но не красиво будет
ManBearPig
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/widgets/Visibility-class.html"
},
"\nЭто для самого простого варианта , - переклбчать карточки будете , если 1 экран а форм вроде 2."
]
oramcheg
ну формы даже три, потому что регистрация в два этапа
ManBearPig
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/widgets/FadeTransition-class.html"
},
" так будет приятнее, с анимацией"
]
ManBearPig
Где табВью, раздел регистрации тоде смена....
ManBearPig
Т.е у вас 3 положения, карт нет Карта есть и открыто регистрация Карта открыта и нужно подтвердить номер
ManBearPig
Анимацию делайте, если все в 1м экране
oramcheg
да, все на одном экране
oramcheg
сейчас попробую, спасибо
ManBearPig
Удачи, разбирайиесь )
ManBearPig
Каждая вкладка отделтный виджет , который с expanded
ManBearPig
Тут вообще можно не ТабВью а кнопки, которые делают инверсию Bool _visible , который в свою очередь в widget который сбросил выше
ManBearPig
Без анимации , который...просто убирает из дерева или держит в дереве, но не рендерит ребенка
Vlad
Привет, завтра у меня собеседование. Вакансия: Flutter trainee. Кто знает, какие теоретические вопросы по Dart & Flutter могут быть?
Vlad
Я не очень знаю из флаттера о ключах Key, как пример
Vlad
один раз использовал его в блоке
Vlad
async это ожидание данных, например с АПИ async* это что-то типо потока изменяемых данных (Stream) Вроде так
Vlad
всм? немного не понял)
Vlad
Я тестовое задание сделал)
Vlad
Так а я неправильно ответил?
Noob Noobskiy
[
"Дядя Женя видео на час+ делал по ключам\n",
{
"type": "link",
"text": "https://youtu.be/5LW9gRDgU_4"
},
""
]
Andrew Vasilevskii
Как-то вы слабовато спрашиваете ??
Vlad
Понял, спасибо тогда)
Vlad
Ещё мне написали что нужно быть готовым, могут попросить врубить дэмку, и сделать маленькое задание. А если я забуду название виджета например, то гуглить это норм, или нужно знать на память?
R2R
ребят, подскажите, пожалуйста, как стейт обновить? copyWith почему-то не работает
ManBearPig
Приятная мелочь)
Vlad
Ага, понял, ещё раз спасибо)
ManBearPig
Наведите мышкой в ide и увидишь)) Widget
Georgy Perepechko
вы стейт в стейт пытаетесь запихнуть, кажется. или уберите обертку ProfileState.initial, или передавайте в нее не стейт
Vlad
Тут маленькая компания, на 10 человек
ManBearPig
Самое печальное, когда hr сам , мягко говоря.... не видит разницы между классом и методом =)))
ManBearPig
Причём, чем больше компания.....тем "провал глубже" Но это на первом этапе )
ManBearPig
Кстати, какая вилка в РФ сейчас ?
ManBearPig
Кстати, кто тут завтра на собеседование идёт. Ещё не забудьте про поток и как в очереди операции выполняются синхронные и асинхронные )
Mitai
Лис про это рассказывал
Rafael
Keystore file not set for signing config release — помогите куда копать
Mitai
[
{
"type": "link",
"text": "https://www.youtube.com/channel/UCRva5jH_39U-rLt6S9JJyUw/videos"
},
" вот он"
]
ManBearPig
[
{
"type": "link",
"text": "https://flutteragency.com/solve-if-keystore-file-not-set-for-signing-config-release-in-flutter/"
}
]
Rafael
спасибо челмеведосвин
ManBearPig
Пожалуйста, Рафаэль:)
Alexey Kudryavtsev
Привет! Подскажите, как грамотнее всего зайти в разработку на Flutter? Брать и начинать делать проектики? От видеокурсов голова кругом. Мой бэкграунд: сисадмин, несколько лет в devops, программировал на jvm based языках.
ManBearPig
Книги тут тоже есть , пробуйте и то и то, что больше зайдёт.... Тут ещё была roadmap...
Alexey Kudryavtsev
Спасибо! в общем нужно постоянно заниматься :)
ManBearPig
На скрине ссылка , у вас она тоже есть, в свойствах форума... Я выделил сегодняшний url на видеокурсы нашего форумчанина..
ManBearPig
Там вроде и язык и фреймворк Сам не смотрел, но все хвалят ?
Alexey Kudryavtsev
Большое спасибо, уже просматриваю
ManBearPig
Если в поиске вбить про карту - будет ссылка и на карту ))
|