Программирование : Dart & Flutter по-русски
Daniil Kolyasnikov
[
"у final особое значение - это значит, что значение переменной можно задать только 1 раз. Значение можно изменять внутри объекта (например можно менять свойства объекта)\nconst по аналогии с другими языками вычисляется на этапе компиляции\nstateless пересоздается заново если у одно из родительских виджетов сработал setState \nstatefull не обновится пока ему насильно не сказать setState или один из виджетов выше по дереву не обновится. \nЭто написано на flutter dev(",
{
"type": "link",
"text": "https://flutter.dev/docs/development/ui/interactive"
},
"). Опыт хорошо, но зачем тратить время, если все разжевано ?"
]
Урусай
Теорию нужно закреплять
Daniil Kolyasnikov
Теорию хотя бы знать надо
4??uzhoy .
[
{
"type": "italic",
"text": "StatefulWidget instances themselves are immutable and store their mutable state either in separate State objects that are created by the createState method, or in objects to which that State subscribes, for example Stream or ChangeNotifier objects, to which references are stored in final fields on the StatefulWidget itself.\n\n"
},
{
"type": "text_link",
"text": "Удивительно, но почитать можно здесь:)",
"href": "https://api.flutter.dev/flutter/widgets/StatefulWidget-class.html"
},
""
]
Dmytrij Okladnoj
о чем это вы!?!? кто тут теорию знает!?!?
Daniil Kolyasnikov
Не могу расшифровать вашу боль
Daniil Kolyasnikov
[
"Не я как бы и сам инструкции не читаю, но на ",
{
"type": "link",
"text": "flutter.dev"
},
" даже написано интересно. Гайды и прочее, разжевали, разложили, осталось только глотать. \nМногие говорят, что \"английского не знаю\", а зачем в программисты без английского(или расширения переводчика в браузере) идти ?"
]
4??uzhoy .
у всех разная мотивация И понимание требований для вхождения, и того что будет на выходе
Dmytrij Okladnoj
это всё виноват интуитивный характер языка... без инструкций и так много что понятно... Нам инструкции нужны лишь тогда когда что-то не работает!)
Daniil Kolyasnikov
При чём тут мотивация ?
Daniil Kolyasnikov
Согласен. Это беда
4??uzhoy .
Ну вот выше написали про интуитивный характер языка, в конечном итоге что ты хочешь получить, знания в области и продукт или просто продукт любыми средствами, в каком из двух случаев человек будет разбираться в тонкостях
4??uzhoy .
В любом случае это уже оффтоп, тема не этого чата :)
Emil
Всем привет! кто может помочь с провайдером и shared prefrences?
Emil
есть свитч, при нажатии из false он переходит в true
Emil
как это изменение провайдером перенести в отдельный файл и там все сохранить?
les forest
Тебе нужно зарегистрировать в провайдере слушателя и им управлять
les forest
В корневом виджете
Daniil Kolyasnikov
Тут не соглашусь, я считаю что сообщество (в данном случае чат, который самый топ на просторах рунета) должно участвовать в том, какого качества программисты получаются, ибо от этого зависит имидж всей отрасли. На php раньше была куча плохокодеров, и теперь всему языку не отмыться. Исходя из всего этого, я считаю, что новичкам нужно читать хотя бы оф. документацию, чтобы воспитывалась привычка думать головой, а не копипастить с so и из чата. p.s. исходя всего-всего этого: эта тема относится к нашему чату
les forest
Твой privacyprovider покажи
les forest
Так и в чем твой вопрос?
Emil
я просто пытался что-то сделать но так понимаю в написанном нет смысла
Emil
стоп, так получается я уже получаю обновленное значение да?
les forest
Ты хочешь сохранить значение переменной?
Emil
shared preference нужно верно?
les forest
Не обязательно
les forest
Тебе в твоем виджете чилде нужно вызвать нужный нотифаер через конструкцию типа Provider.of()...
John
Товарищи что используете для state managment я раньше использовал scoped_model? Насколько он актуален сейчас?
les forest
Хотя я давно провайдер не ковырял подзабыл
les forest
Много писанины зато все наглядно и легко в понимании
les forest
В крупных проектах лучше блок
les forest
Для локального стейтменеджмента можно провайдер
les forest
Хотя блоки можно делать вложенные)
les forest
Структурностью
les forest
Это значит можно логику лучше структурировать
les forest
По фичам или по экранам например
admin
Чем это будет лучше чем обычныe change notifier с провайдером?
admin
Проструктурируй также нотифаеры и провайдь их
4??uzhoy .
кажется тут где то тема технонационализма мелькает про имидж отрасли в рамках качества нескольких кадров . кто захочет тот откроет доку, или спросит где ее открыть чтобы найти что нужно или будет другим способом интересоваться, спросит в чате в конце концов кто не захочет тот и дальше будет искать готовые решения, нагуглит фаст флаттер кодинг в ютубе и будет обращаться сюда с вопросами как сделать чтобы мой void был числом и вообще, честно говоря я потерял суть спора, надо знать теорию ? ну да, надо че :)
les forest
Ну когда у тебя их будет over 100500 это будет затруднять чтение
les forest
Ну ты в блок можешь инкапсулировать нотифаеры или стримконтроллеры
les forest
И управлять состоянием как душе угодно
admin
Каким образом, если у тебя блок, если ты про тот, что Феликса, ограничен одним инпутом одним аутпутом
admin
Ты всё тоже самое можешь делать не эксплуатируя стримы не по назначению
les forest
А кто мне запрещает держать в блоке переменные?
les forest
А как нужно по назначению расскажи
admin
Тогда у тебя уже не блок
les forest
Есть состояния есть эвенты
admin
У него философия одной строкой описывается, all inputs are sinks, all outputs are streams
les forest
Ни кто и не нарушает
admin
Если ты просто насоздаешь стримов ещё, то это избыточная трата времени
admin
Без стримов ты бы просто геттеры создал
admin
И не тратил время на обслуживание стримов
les forest
Стримы управляют скажем текстом на экране, состояния блока мне меняют экраны. В чем проблема?
les forest
В онДиспозед закрываю их
les forest
Ты меня в чем то хочешь убедить?
les forest
В чем смысл дискуссии
admin
А зачем, если можно сделать просто геттеры в change notifier сделать
admin
Безо всяких стримов
admin
Нет, пытаюсь понять в чем именно преимущество блока
Oleg Pchelkin
А тут каждый вечер будет противостояние Bloc vs Provider?) Все с работ что ли приходят и начинают доказывать что их архитектура - единственно верная?)
les forest
Знаешь что такое стейт машина?
les forest
Да тут блок-диссиденты в чате)
les forest
Это какое то ребячество что то доказывать) Караван все равно едет)
admin
Я не прошу доказать ничего, эх. Вот именно, караван едет, точно также и без блока, зачем он нужен, я не понимаю.
Oleg Pchelkin
Ну не нужен человеку блок, чего ты привязался) В процессе внедрения провайдера не пострадало ни одно животное + он оф рекомендация от разрабов флаттера (хотя каждый из них кто на блоке, кно на mobx, кто на redux) Так что главное чтоб.в проекте все было чисто, разница то какая на провайдере или на блоке
les forest
Я тебе вопрос про стейт машину задал
les forest
Да я же не против провайдера.
les forest
Но блок очень выручает
les forest
Как и mvi в андроиде
Oleg Pchelkin
Потому что блок вполне удобная концепция особенно в рамьках огромного количества мультипоточных стейтов + он был раньше внедрен в свет
Oleg Pchelkin
Я пока прочитал миллион статей на тему MVI, но пока чет сыкую на него переходить))) Надо пет проект какой нить придумать чтоб потыкать палкой MVI...
les forest
Ну в принципе тот же блок в общих чертах
Oleg Pchelkin
Да я понимаю, прост надо взять себя в руки и пописать вне основного проекта??
admin
Не спорю, просто не врубаюсь зачем заниматься обслуживанием стримов, если всё, можно сделать без них, не более. Я и не против него.
les forest
Что значит обслуживание стримов? Пит стопы чтоли)))
les forest
В общих словах это схема переходов в экранах твоего приложения. Четко описанная.
les forest
[
{
"type": "link",
"text": "https://ru.m.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82"
}
]
les forest
Вот твои экраны это и есть состояния
les forest
И они конечны)
les forest
То есть ограничены.
les forest
Ты вот когда кофе покупаешь в автомате - двигаешься как бы по этапам
admin
Хорошо, я не могу это реализовать без BLoC'a?
les forest
Можешь. Но зачем изобретать велосипед)))
admin
Раздавать ими конечный стейт, как и блоком?
les forest
Все уже написали за тебя))
admin
Да, Change notifier написали, всё есть
admin
Ладно, это вопрос вкуса и привычки видимо
les forest
Тонко что аж толсто как говориться
admin
Я раньше блок юзал, сейчас провайдер + нотифаер использую. И я понял что можно сделать всё тоже самое быстрее просто
les forest
Крупные проекты делал?
Ivan Dembicki
Мы самописную штуку юзаем. Скоро выложим. Уж очень вкусно получилось.
Andrey Novatovski
Кто может помочь с Flutter на ios?
Andrey Novatovski
я скачал android studio поставил Flutter туда, проект открыЛ, А КАК ДАЛЬШЕ
Andrey Novatovski
или надо еще что-то делать?
Flow
Можно же и без Android sdk обойтись
Oleg Pchelkin
[
"Ну первая ссылка гугла, ну??? инет отключили?\n",
{
"type": "link",
"text": "https://flutter.dev/docs/get-started/install/macos"
},
""
]
Flow
Через XCode спокойно компилится
Andrey Novatovski
не смог
Oleg Pchelkin
что не смог?
Flow
Путь прописывали? Или в чем проблема
Andrey Novatovski
у меня нет билда например
Andrey Novatovski
как сделать Build Ios
Flow
Хз не юзал ее на маке.
Flow
Сам флаттер установлен
Andrey Novatovski
почему она серая
Andreu
Сидеть на маке и юзать ui...
Andreu
Я про терминал говорил
Flow
Я бы рекомендовал visual studio code юзать
Andrey Novatovski
пишет нет такой команды
Andrey Novatovski
ну кароче хз
Andrey Novatovski
в ютубчике у них всё классно
Flow
Потому что у тебя флаттер не установлен
Andreu
[
{
"type": "link",
"text": "flutter.dev"
}
]
Flow
Насколько понял там flutter это чиста аддон для андроид студио, но я на ней не пишу хз
Andreu
Пожалуйста, перед тем как задавать такие вопросы попытайся хотя бы прочитать доку
Flow
[
"Конечно это написано на сайте. \nОткрываешь терминал и клонирушь флаттер с репозитория git clone ",
{
"type": "link",
"text": "https://github.com/flutter/flutter.git"
},
" -b stable\nДальше прописываеш пути через export.\nПосле переходишь в папку проекта и вызивашь flutter run. \nЧтобы открыть эмулятор используй команду \nopen -a Simulator\nВсе"
]
Oleg Pchelkin
пару месяцев после релиза будет треться сторона в еждневном споре кто круче - провайдер или блок)
Andrey Novatovski
куда комманды то вбивать ?
Andrey Novatovski
я первый раз на маке
Flow
[
{
"type": "link",
"text": "Terminal.app"
}
]
Andrey Novatovski
и дедлайн до завтра :)))))))))
Andrey Novatovski
ну за недельку ????????????????????????????????????????????????????
Daniil Kolyasnikov
[
{
"type": "link",
"text": "https://flutter.dev/docs/get-started/editor?tab=vscode"
},
"\nПросто сделай все по инструкции по шагам"
]
Daniil Kolyasnikov
[
"Начни с этого лучше там тоже по шагам расписано ",
{
"type": "link",
"text": "https://flutter.dev/docs/get-started/install/macos"
},
""
]
Daniil Kolyasnikov
Android симулятор ставится со студией в комплекте через визард ios ставится в х коде в комплекте
Daniil Kolyasnikov
Пятая. 3 mobx. 4 mwwm сурфа
Oleg Pchelkin
Ну они тоже пару месяцев тут помелькали и вроде почти не выползают) Только редкими комментами)
Daniil Kolyasnikov
Где то слышал шутку: ХХХ:в чате спорят про provider и bloc. Ууу: А те кто пишут по другому ? ХХХ: А они работают
Daniil Kolyasnikov
С этой картинкой
Ivan Dembicki
Еще раз одна и та же шутка про еще один стейт-менеджмент?
Daniil Kolyasnikov
В этой версии ХХХ и Ууу - русские буквы
admin
3 буквы не хватает)))0
Daniil Kolyasnikov
Ксаэтрис. Звучит как заклятие
tdesc
надо отдельную линию заводить )
Vladimir Ivanov
а у кого-нибудь было, что флаттер не видит установленную зависимость?
Vladimir Ivanov
у меня есть главный апп и дарт модуль
Vladimir Ivanov
у модуля зависимость на http2_client
Vladimir Ivanov
Идея все видит, а при сборке флаттер говорит, то нет пакета http2_client
les forest
Тоже была такая идея))
4??uzhoy .
А как собираешь АПП и модуль?
4??uzhoy .
Апп в смысле нативная ?
Vladimir Ivanov
нет, все флаттер
Vladimir Ivanov
flutter build ios :)
Vladimir Ivanov
flutter pub get сделал в обоих модулях
L
У меня почти на каждой странице CupertinoNavigationBar с одними и теми же настройками, но с разным текстом вверху. как это лучше отрефакторить и куда переместить? в отдельный метод в какой-то класс?
4??uzhoy .
Аа, ой, ретируюсь
Vladimir Ivanov
ну я попробую сейчас с андроидом
Vladimir Ivanov
но разницы быть не должно
L
flutter clean попробуй и потом уже билд
Vladimir Ivanov
но не помогло =(
4??uzhoy .
А что именно в лог пишет ?
Vladimir Ivanov
Error: Could not resolve the package 'http2_client' in 'package:http2_client/http2_client.dart'. network/lib/api/http2_api.dart:3:8: Error: Not found: 'package:http2_client/http2_client.dart' import 'package:http2_client/http2_client.dart'; ^
L
У меня было подобное, это лечится методом перебора всех возможных команд, иногда помогает удалить папку ios с предварительным бэкапом info.plist
L
[
"потом после удаления ",
{
"type": "code",
"text": "flutter create ."
},
""
]
L
можешь переименовать в ios_old на всякий случай
Andrey Novatovski
Опа это что
Andrew Ka
[
{
"type": "link",
"text": "https://youtu.be/wqO4f_OmHnU"
}
]
4??uzhoy .
Интересненько, ток мозг ломается
Яўген
Здравствуйте, подскажите пожалуйста, может есть какие статьи или гайды, как сделать свой плагин для работы с нативными библиотеками ios и android? Т.е. есть два sdk для android и ios, нужно написать обертку, чтобы это интегрировать в проект флаттера.
Урусай
На оффсайте флаттера есть
Урусай
[
{
"type": "link",
"text": "https://flutter.dev/docs/development/platform-integration/platform-channels"
}
]
George Wiseman
Есть какие нибудь мнения про Jetpack compose и решение jetbrains делать его кроссплатформенным?
George Wiseman
По сути получается flutter + Kotlin
Andrey Tsvetkov
а flutter + golang есть?
Andrey Novatovski
А можно написать ui на флаттер а логику на котлине?)
Fearless Cry
через MethodChannel и EventChannel
George Wiseman
Немного не так Google продвигает аналог Swift UI - это JetPack Compose Я посмотрел их иерархию классов
George Wiseman
Что тут можно скзаать
George Wiseman
Вообщем понятно откуда уши растут
George Wiseman
Пока это в стадии Developer Preview
Andrey Novatovski
да чот не понятно чо изучать)
George Wiseman
Но на днях было объявлено что JetBrains будет делать JetPack Compose - кроссплатформенным
George Wiseman
Внутри - та же Skia
Ivan Prokopenko
Я его по другому представлял??
Сергей
Подскажите как в widget Text() поместить строку возвращаемую методом? Получается что она не final. Странно что в одном месте работает не константа, а в другом нет (в NavigationBarItem)
Сергей
Разобрался, у меня const родительский виджет был
|