Программирование : Dart & Flutter по-русски
Александр Котков
у меня кстати интерсный вопрос если сделать module A в нём модуль B, а в нём модуль C,D при изменение модуля B С,D будут пересобираться?
Roman Vasiliev
Нельзя же, он строит оба варианта, получишь те же ошибки
RV
кто-нибудь может подсказать - есть где в доступе функционально законченные проекты на флаттере? со всей обвязкой в виде аналитики, и прочей фигни - так что бери и смотри? примеры лаб не интересуют
Ivan Nazarov
У меня нет ошибок же
Ivan Nazarov
Просто по логике спросил, как сделать правильно
Sergey Hottabych
Обычно такие под NDA :)
RV
понимаю, поэтому и спрашиваю)
Sergey Hottabych
А в чем проблема самому обвязать аналитикой?
RV
тут не в аналитике дело, хочу посмотреть на промышленный код
Nikita Kanunov
Здравствуйте, подскажите, как следует обрабатывать в google maps ситуацию, если пользователь запретит доступ к геолокации?
RV
продакшн знаете ли сильно отличается от примеров
Dima Kotlyarov
например я присваиваю cameraPosition дефолтное значение LatLang
Sergey Hottabych
Сам придумывай! Ты не поверишь, какой говнокод иногда в промышленных проектах.
Roman Vasiliev
Устраивайся на работу и смотри сколько угодно
Sergey Hottabych
Я видел исходники "Карусель. Аренда самокатов". Там вообще стейт-менеджментом и не пахнет.
Sergey Hottabych
Баг на баге.
Dima Kotlyarov
его можно захардкодить! но я бы на твоем месте каждый раз при инициализации приложения кидал текущее местоположение в sharedPref а потом вытягивал
Sergey Hottabych
И вся Москва этим дерьмищем пользуется.
Dima Kotlyarov
для значения камеры в случае если геолокатор выклчен
Nikita Kanunov
А если он был изначально выключен?
RV
дело в том что я скорее к бэкенду имею отношение, мне интересно какой код пишут профи, какова структура проекта - короче best practices, включая и сборку, короче - проще посмотреть, чем придумывать велосипед
Dima Kotlyarov
при инициализции ?
Nikita Kanunov
Да, при самом первом запуске
Serhii
Всем привет, кто-то делал бекграунд приложения в виде свг картинки на весь екран? Может у кого-то есть ссылка на код с оберткой, которая рисует эту свг на канвасе? Потому что в decorationImage должен залетать именно imageProvider, а не свг картинка
Dima Kotlyarov
1) опиши несколько кейсов! если гелокация выключена при инициализации - permissionDenied - и в prefs нет ничего то выводи какоето хардодное место (или найди по городу котоый у человека в настройках если такой есть) второй кейс - если пермигнденай но есть широта и долгота в прейфах - бери из префов
Sergey Hottabych
Нет best practices и нет профи ) Тортик — это ложь.
RV
best practices всегда есть. Потому что все учатся, наступая на грабли. Вот обход граблей - это и есть best practices
Roman Vasiliev
У каждого свои грабли и понимание проблем
Nikita Kanunov
Есть другой вопрос, есть две функции future, одна их которых void. Как их обрабатывать в future.wait?
Nikita Kanunov
Во future.wait нет await
Dima Kotlyarov
я не совсем понял
Sergey Hottabych
Ну она не должна быть void. Она должна быть Future и async.
Sergey Hottabych
Future.wait ждет, пока все фьючи внутри не завершатся.
Sergey Hottabych
Как ты собрался не фьючу ожидать?
Nikita Kanunov
А future.wait не работает с однотипными future?
Dima Kotlyarov
[
{
"type": "pre",
"text": "Future deleteAll(List stuff) {\n return Future.wait(stuff.map((s) => delete(s)));\n}\n\nFuture delete(Stuff s) async{\n ....\n await file.writeAsString(jsonEncode(...));\n}",
"language": ""
}
]
Павел Бабинцев
Друзья, вопрос. Насколько возможно и удобно ли создание какого-либо более-менее сложного бэкенда, используя Firebase?
Павел Бабинцев
Или его можно только рассматривать как балалайку для прототипирования?
RV
можно вполне - functions заюзать. Но неудобно
RV
можно Firebase использовать как сервис аутентификации для бэка, а сам бэк пилить на чем-нибудь
Павел Бабинцев
А если мне например нужна реляционная БД, то как это лучше всего сделать используя бэк на firebase?
Павел Бабинцев
там же носкл только
RV
[
{
"type": "link",
"text": "https://cloud.google.com/sql/docs/postgres/connect-functions"
}
]
Павел Бабинцев
Спасибочки
Темирлан
[
"Всем привет, я использую moor ORM\nу меня есть три таблицы\n1) Oxides -> id, name\n2) Materials -> id, name\n3) MaterialOxides -> id, oxideId, materialId\nв последней таблице идет связь между Material и Oxide так как в Material может быть множество Oxide\n\nя создал соответственно OxideDao, MaterialDao и MaterialOxideDao\n\nПосле чего я создал форму\nMaterialWithOxide -> Material material, List oxides\n\nя хочу сделать Stream> watchAllMaterials, но не знаю как мне реализовать select с join, чтобы вконце я сделал ",
{
"type": "link",
"text": "rows.map"
},
"(row{ return MaterialWithOxides(material: Material , oxides : List)})"
]
Арчи
Привет. Подскажите, как определить, что виджет находится на экркане или за экраном(елемент находится в списке внизу)?
Architector FreeIT
Разобрался с Huawei!!!!!)))
Architector FreeIT
Классная компания
Alex Wow
уже всем интересно
Dima Kotlyarov
в кавычках насколько я понимаю?_)
Varga
Да ладно. Сколько знаю гугловых api - минимум половина максимально хитровыебанные
Varga
Так что гугл тоже такое себе
Nikita Kanunov
Народ, как побороть ошибку серого экрана при загрузке карт?)
Andreu
[
"все добрый, подскажите как загуглить, в андроиде были такие замечательные вещи в string.xml например ",
{
"type": "pre",
"text": "%d стаканов",
"language": ""
},
" и потом можно было в билдере подставить число"
]
Roman Vasiliev
Проблема в окончаниях или подстановке значения в строку?
Andreu
подстановке, не помню даже уже как эта вещь называется правильно)
Roman Vasiliev
$x или ${x.y.z} прямо в строке так пиши
Roman Vasiliev
[
{
"type": "link",
"text": "https://dart.dev/guides/language/language-tour"
},
"\nИ лучше сразу это прочитать"
]
Andreu
Вы вряд ли поняли меня правильно, я не новичок)
Andreu
[
{
"type": "link",
"text": "https://pub.dev/packages/sprintf"
},
" вот такую вещь искал"
]
Michael Bazilique
ребят, юзаю SocialSharePlugin, не работает share в фейсбук. Все настроено с facebook app_id, но получаю API_ERROR: API_ERROR. Может нужно что-то в facebook developer console настроить? Спасибо
Yahyo
Здравствуйте. Апк файл не открывается в некоторых телефонах. Из-за чего это может быть? Помогите пожалуйста
Владимир
Скажите используемую команду сборки
Andrew Shalaev
Стоило уехать по делам, и бот тут всех приветствовал за меня( Поправил паттерн)
Игорь
[
{
"type": "link",
"text": "https://pub.dev/packages/visibility_detector"
},
"\n\nЕсли я правильно понял, что нужно"
]
Арчи
то что нужно, благодарю)
Maksim
Это ведь должно работать или я что-то путаю? prefs выдает нул и появляется ошибка, а не подстановкаа ‘’
Александр
как победить? The current Dart SDK version is 2.10.5. Because rgd requires SDK version >=2.12.0 <3.0.0, version solving failed.
Nikita Kanunov
Чат, кто знает почему не отображаются гугл карты?
Andrew Shalaev
А в логах что?
Nikita Kanunov
Все нормально
Nikita Kanunov
Ошибок нет
Пронин Андрей
переключится на Beta channel
Evgenii Orlov
проверь ключ к sdk
Nikita Kanunov
Проверял, все правильно
Andrew Shalaev
[
"Могу предложить через mitm прокси (",
{
"type": "link",
"text": "https://mitmproxy.org/"
},
") смотреть какие запросы летят и какие статусы возвращаются"
]
Evgenii Orlov
Maps SDK for Android стоит в API enabled в google console?
Evgenii Orlov
тогда придется по приседать и поискать проблему, отпиши потом как решил.
Rahim M.
Всем привет! Ребята подскажите пожалуйста можно ли начать учиться на flutter dart без никакого знания программирования с нулевого уровня. Или нужно начать с другого языка например java?
Alexey Korzhavin ?
хочу получить контекст в интерсепторе дио для того чтобы хендлить ошибки и управлять роутами. подскажите как сделать контекст глобальным?
Dima Kotlyarov
Модно и нужно !
Dima Kotlyarov
В этом смысле dart и будет твоим первым языком
Alexey Korzhavin ?
флаттер идельано подходит как новискам, так и людям которые переходят на него с веба или нативной мобильной разработки
Roman Vasiliev
Контекст должен оставаться в пределах вью
Alex Wow
если начнешь с явы, можешь там и оставаться
Rahim M.
Например научился flutter/ dart дальше ещё какие знания нужны чтобы найти работу стать полноценным специалистом?
Alex Wow
посмотри что требуют работодатели от фалттер в данный момент, нормальных работтодателей а не фрилансеров и т.п
Alexey Korzhavin ?
не согласен. гугл обещают выкатить фуксию на замену андройду, чтобы полностью отказаться от котлина и жавы. другое дело что это может произойти как завтра так и через 20 лет. но я считаю что лучше перестраховаться и первым языком выбрать дарт
Alex Wow
перестраховаться и взять брейнфак. Для подстраховки выбирают классику,а не что то новое
Alex Wow
а на яве пишут не только мобайл
Alexey Korzhavin ?
[
{
"type": "link",
"text": "https://github.com/Tarikul711/flutter-development-roadmap/raw/master/docs/flutter-app-development-roadmap-by-tarikul.png"
}
]
Rahim M.
Спасибо всем за ваши советы ??
Alex Wow
Короче начни с дарта, лучше начать и делать,чем выяснять что лучше. Если язык уйдёт в помойку, у тебя уже будет опыт разработки на ООП. А языки сейчас +- похожи, поэтому не будет большой проблемы с переобувкой.
Aleksey Kharitonov
[
"Ребят, подскажите как справиться с проблемой Lost connection to device?\nКанал флаттера dev, IDE - Visual Studio Code, iOS 14.4 iPhone 8 эмулятор. Стартует без единой ошибки и ворнинга, ввожу логин и пароль от пользователя, жму «Войти» и тут же отваливается. Гитхаб излазил весь, обновлял brew, но ничего пока не нашёл.\nБыл один коммент что решение простое: ",
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/35099#issuecomment-505775031"
},
"\n\nНо я не понял что именно заменить и на что. \n\nМожет кто сталкивался? Спасибо!"
]
Michael Bazilique
[
"ребят, засунул app id и настроил пекедж SocialSharePlugin. \nполучаю API_ERROR вот от сюда (код из сора пекеджа): \n",
{
"type": "pre",
"text": "public void onError(FacebookException error) {\n channel.invokeMethod(\"onError\", error.getMessage());\n Log.d(\"SocialSharePlugin\", \"Sharing error occurred.\");\n }\n",
"language": ""
},
" \nв чем проблема? Спасибо"
]
Rahim M.
Все хорошо понел??
Michael Bazilique
[
"вот инфа с манифеста: \n",
{
"type": "pre",
"text": " \n\n ",
"language": ""
},
""
]
Яўген
Привет, у кого-нибудь такая фигня появлялась в текстовом поле? Это веб-флаттер. Как пофиксить?
Aleksey Kharitonov
Были подобные артефакты, просто сессию пересоздавал и всё уходило
Aleksey Kharitonov
Хром перезапусти в общем
Aleksey Kharitonov
Мне помогало
Миша
А Вы сами копались в нем? Или гайды есть какие-нибудь?
Dart Flutter
как избавиться от этой заливки на углах при нажатии
Яўген
используешь материал?
Vadim
У материала есть свой borderRadius
Dart Flutter
Container( decoration: BoxDecoration( color: Color(0xffFF7E00), borderRadius: BorderRadius.circular(12)), height: 46, width: double.infinity, child: FlatButton( onPressed: () {}, child: Text('Поделиться
Vadim
[
{
"type": "code",
"text": "shape: RoundedRectangleBorder(\n borderRadius: BorderRadius.circular(1"
},
"2",
{
"type": "code",
"text": ".0),\n side: BorderSide(color: Colors.red)\n),"
}
]
Vadim
У FlatButton добавь
Aleksey Kharitonov
Канал флаттера какой?
Dart Flutter
сработало! спасибо
Aleksey Kharitonov
Попробуй на дев встать
Cmndwn
Вечер добрый, кто-нибудь выкладывал в хуавеевский AppGallery приложения в которых есть firebase или другие какие-то сервисы от гугла? Вас не скрывали из поиска?
Robert Smith
вроде в google cloud platform надо активировать sdk и ключ предоставить в коде
Nikita Kanunov
Все, починил, просто сделал flutter clean)
Andreu
Может кто подкинет идею, как по номеру квартала вычислить DateTime from/to
admin
Дарт - аццкая смесь джавы, Пайтона и джаваскрипта, причем от них он взял все самое лучшее. По простоте он как Пайтон, а по возможностям и выразительности - очень мощный. Так что если бы у меня была возможность стартовать чуть раньше, я бы точно начал с Дарта. Мне очень нравится язык как чуть более продвинутому новичку.
Евгений
лучше выбери что-то менее нишевое
Евгений
нужно оценить рынок в первую очередь
Евгений
а спрашивать про дарт в чате про флаттер - такое себе, тут объективной оценки не будет
Dima Kotlyarov
Ну впринципе да )))
Roman Vasiliev
Дак ты гений
Roman Vasiliev
Можешь переделывать с нуля, у тебя все неправильно
Dart Flutter
уже сделал. Контейнер убрал и все параметры во флетбатон воткнул
Roman Vasiliev
FlatButton теперь TextButton, надизайнил ты ElevatedButton, спрашивается зачем были все эти пляски вокруг с декоратором
Dart Flutter
слушай не заню. вообще привычка издавна такая. где то увидел и понеслась. сам думаю какой я дебил
Kit Khilobok
Сервер статус код какой возвращает
Kit Khilobok
ну вот поэтому и false
Kit Khilobok
200 код => ошибки нет
Владимир
Как вы делаете адаптивный дизайн под разные размеры экранов? Через size.height * коэф размера виджета или каким-то другим образом?
Kit Khilobok
Я говорю про стандартное взаимодействие между клиентом и сервером, где 200 код это значит, что ошибки нет
Kit Khilobok
[
{
"type": "link",
"text": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Status"
}
]
Robert Smith
есть еще layoutbuilder
Владимир
Благодарю, сейчас загуглю
Varga
для рест запросов кто что советуют юзать? чистый http пакет или есть что-то удобнеее?
Урусай
Да пофиг на самом деле. С пакетами сторонними бывает случаются проблемы, но зато у них побольше функционала
Урусай
Я раньше dio использовал, retrofit и chopper. Сейчас сижу на http и мне норм
Kit Khilobok
чоппер на http работает
Kit Khilobok
Если мне память не изменяет
Урусай
Да, а retrofit на dio
Kit Khilobok
Ну мы сейчас используем retrofit+ dio
Kit Khilobok
Проблем никаких
Mikl Night
Всем салют, а как вы думаете, записывать Обьект в локальную sqlite базу, тупо замапив его в json, норм практика... или так себе?
Андрей Кузьмин
Добрый вечер, учусь по урокам в youtube. Но тут почему то у меня не получается в параметр другую функцию передать. Сможете объяснить в чем проблема?
Dmitry Bubnenkov
Кто MobX использует, он у вас с нул-сейфити нормально работает? У меня на тестовом примере сгенерился не правильный файл для подключения и при попытке перейти на ветку с поддержкой нул-сейфити оказалось что зависимости MobX с ней не совсместимы
TriXee { #include Life:me }
Подскажите пожалуйста, как решить это, при открытии клавиатуры последний итем в listview должен притягиваться к низу
Dima Kotlyarov
scrollCotnroller
TriXee { #include Life:me }
Подробнее, пожалуйста
TriXee { #include Life:me }
Я использую скроллконтроллер
TriXee { #include Life:me }
Но для того, чтобы при написании сообщения оно шло вверх
Fim
Здравствуйте друзья! Программисты, по моему мнению, они как художники- творческие люди). Могу я вас попросить чуток отвлечься от экрана? Мне коллега на 23 подарила запакованный наборчик, где были 3 рюмки со звёздами ВС, 0.2 норм конины и жёлтые носочки, выглядят как детские. Помогите придумать варианты ответочки на 8е))))
Kostya Tsymbaliuk
Букет ромашек, все звёзды на небе?
Dima Kotlyarov
тем кто дарит звезды - минет делает ветер
Dima Kotlyarov
так что лучше без звезд
Hellomik
Хай народ я делаю deep linking я дело в том что в симулторе получаете открыть приложение как бы но не могу пройти по странице которая нужна ? юзаю MaterialApp.router
Hellomik
[
"просто здесь ничего не говориться об uni_links\n\n ",
{
"type": "link",
"text": "https://flutter.dev/docs/development/ui/navigation/deep-linking"
},
""
]
Александр Виноградов
[
"Привет всем, вопрос возник один, получаю ответ от сервера ",
{
"type": "link",
"text": "time.google.com"
},
" и признаю в DateTime _ntpTime, для записи времени в базу использую _ntpTime.millisecondsSinceEpoch, но по неведомым причинам при выполнении он значение записывает со смещением в зависимости от локального часового пояса на устройстве/эмуляторе. Как принудительно отключать ему это смещение и переводить время в timestamp, которое приходит с сервера"
]
Aleksey Kharitonov
[
"Обычно ж бывает что ты дописываешь в классе методы",
{
"type": "code",
"text": " toJson "
},
"и `fromJson’ на этот случай.\nИли какая практика ещё бывает?"
]
Mikl Night
У меня в объекте, есть вложенный объект, не хочу плодить таблицы, и хочу его тупо сериализовать в текст, вот думаю на сколько здравая идея)
Fim
У нас -30, ромашки будут поникшие, не катит ))
Fim
Интересное наблюдение)) а варианты без минньета? Вдруг она будет та, кто на всю жизнь?
Dima Kotlyarov
Я абсолютно не хотел обидеть тебя или твою пассию . Это в общем то шутка из женского стендапа где они жаловались что не любят что им дарят звёзды ))
Dima Kotlyarov
Это абстрактная шутка , она не конкретно тебе адресована была
Fim
Стендап сорри нет времени смотреть, спасибо за ответ, можно ещё креатифф от творческого человека?
Aleksey Kharitonov
[
"В строке",
{
"type": "code",
"text": " var result = ... "
},
"поставь восклицательный знак после",
{
"type": "code",
"text": " func(7)."
},
" То есть должно быть",
{
"type": "code",
"text": " func(7)!;\n"
},
"У тебя включён в редакторе параметр null_safety, то есть ты должен либо инициализировать параметры (как ты сделал с двумя другими) или передать «значение по умолчанию» (через тенарный оператор ??) если вдруг",
{
"type": "code",
"text": " func(7) "
},
"вернёт",
{
"type": "code",
"text": " null."
},
"\nДумаю должно помочь"
]
Fim
Ок, шутки тоже в счёт! Можете ещё вариант?
Aleksey Kharitonov
Я думаю здравая, так как у тебя все равно каждый объект имеет метод toJson/fromJsom
Aleksey Kharitonov
Не проще массив сообщений перевернуть?
TriXee { #include Life:me }
Так и есть
TriXee { #include Life:me }
Сообщения добавляются не сверху, а снизу
Aleksey Kharitonov
Тогда проблема в чём? Оверлаппинг сообщения?
Aleksey Kharitonov
Или сообщения не следуют за появляющейся клавиатурой?
TriXee { #include Life:me }
Проблемы уже нету, я сюда пробрасываю в geasture detector контроллер скролла, чтобы по нажатию происходило это
TriXee { #include Life:me }
Костыльно, мне кажется, но других решений найти не получилось
Aleksey Kharitonov
А сделать то что хочешь? :) чтоб текст с клавой поднимался?
TriXee { #include Life:me }
Но есть проблема в подобном решении, задержка функции должна совпадать с примерным временем открытия клавиатуры
TriXee { #include Life:me }
С одной стороны это решение работает, но туго
Aleksey Kharitonov
А что используешь для текстфилда сообщений? Своё решение или стороннее?
Aleksey Kharitonov
На здоровье! Помогло?
TriXee { #include Life:me }
Обычный материаловский
Азамат Шегенов
всем привет
Андрей Кузьмин
Да, или убирать фигурные скобки из конструктора. А что за параметр null_safety? У меня vc cod. Оставить его включённым или лучше отключить?
Азамат Шегенов
кто может помочь
Aleksey Kharitonov
[
"Оставь, все равно скоро будет всё требовать этого. Почитать тут про это можно: ",
{
"type": "link",
"text": "https://dart.dev/null-safety"
},
""
]
Андрей Кузьмин
Благодарю??
Азамат Шегенов
есть Column, в нем контейнер-Icon и Text
Aleksey Kharitonov
На здоровье!
Азамат Шегенов
подскажите, пожалуйста, как мне отдельно вывести класс с параметрами контейнера в котором иконка
TriXee { #include Life:me }
что начит, "отдельно вывести"?
Азамат Шегенов
создал вот такой класс с параметрами контейнера
Миша
как я понял, он кнопку-виджет возвращать хочет
Азамат Шегенов
чтобы каждый раз не прописывать контейнер с параметрами
|