Программирование : Dart & Flutter по-русски
Денис
для разработки мобильно
admin
Просто ищу хотя бы для начала язык программирования полегче, слышал про Котлин, потом про флаттер вот и разбираюсь, но может я не там ищу, может есть легче?(
Денис
Тебе разного насоветуют, я начинал с Java. Многие начинают с Python и JS
admin
Джава пробовал тяжело входит
Денис
Тогда только Python JS
Денис
если Java тяжело котлин будет также
Roman Vasiliev
А что пробовал-то?
Денис
есть еще C# он тоже попроще
admin
Почему именно он? Поймите правильно??
Денис
Python и JS это два разных языка, с простым синтаксисом
Денис
порог вхождения ниже
Семён undefined
я начинал с php без документации ????
admin
Вообще, я так понимаю, что синтаксис у всех языков один?
Roman Vasiliev
why r u gay?
Семён undefined
мне тогда 10 лет было
Денис
ну в 10 это паскаль был) я его не считаю за полноценный ЯП) поэтому и сказал Java когда уже более осознанно стал заниматься)
Семён undefined
ну тогда шарп
Денис
Ты когда нибудь занимался программированием вообще?
Тима Егембердиев
Начни с Си, потом на любой язык спокойно перейдешь
Денис
Это как советовать учиться на камазе ездить до легковушки)
Тима Егембердиев
Я начинал так.
Денис
Не спорю, но парню Java сложно)
admin
Нет, но хобби с этими волнами эпидемии привели к интересу к ЯП, но в 45 думаю может я опоздал?
Roman Vasiliev
как на двухколесном велике без колеса, до легковушки)
Денис
Начни с питона) на нем можно много интересных вещей делать
Roman Vasiliev
если хочется, не поздно никогда
Roman Vasiliev
думается, что с китайцев и индийцев пример нужно брать с осторожностью
admin
А вообще ЯП Си есть на просторах интернета?
admin
А как тогда учить Си если нет?)
Vladimir Avramov
[
{
"type": "link",
"text": "https://www.tiobe.com/tiobe-index/"
}
]
Vladimir Avramov
Немного яву потеснил с 1го места в 2020м
admin
Как посоветуйте изначально учить язык, на что именно надо понять?
Roman Vasiliev
слабо верится
Maxim Gora
Я начинал с С++. В принципе не жалею, так как он дает понимание и функционального программирования, так и ООП. Ну и понимание указателей и работы с памятью хотя бы на начальном уровне никогда не лишнее я считаю. Под капотом у любого языка сидят все те же указатели) Если освоите эти основы дальше будет гораздо проще сесть за любой язык, лично у меня так было)
Денис
Может и оттолкнуть, я пробовал учить до джавы ++ но не вывез)
Павел Середа
указатели, работа с памятью в C++ ???>? похоже вы не поняли о чём этот язык
admin
Учту, а на с++ можно на моб. Писать?
Vladimir Avramov
А о чем C++?
Slava Slavajun
Я с kotlin, но наверное лучше с питона там возможностей больше и сам язык проще, гайдов много
Maxim Gora
Я не говорю о применении языка в работе, я говорю о том что он дает некоторое понимание этого процесса, а не все за вас делат какой-то GC
Павел Середа
о высокоуровневом программировании
Егор Шепелев
Разумеется. Qt например для этого есть
Maxim Gora
Ну считаю что для начала консольный C++ очень хорош, если разобраться
Slava Slavajun
Я так понимаю дальше hello world они не полезли, поэтому он и показался им нормальный
Maxim Gora
Для понимания основ дальше консоли лезть не обязательно)
Арсений Калиниченко
Спасибо, попробовал Provider, но у меня не получается этот органично вписать из-за перехода между экранами с помощью Navigator.push(...). Подскажите, пожалуйста, как это исправить, не прибегая к созданию этого Provider для всего приложения
admin
Если честно от 2 слов Hello World уже тошнит, охото уже дальше уйти по изучению))
Vladimir Avramov
Я так понимаю, что имелась в виду его универсальность. Возможность хоть ассемблерные вставки делать.
Арсений Калиниченко
Окей, а можно как-то продолжить в том же дереве?
Павел Середа
похоже, вам кто-то по ушам проехался про низкоуровневое программирование в контексте С++(какие ещё нахрен указатели! умные-хуюмные, это вообще ненужно), что конечно возможно но абсолютно неуместно
Maxim Gora
А чем вас не устраивает вариант с простым пробросом параметров?
Maxim Gora
это не нужно для продакшна, согласен
Maxim Gora
для обучения вполне годится, имхо
admin
А все ЯП на си, с++ , с# машинные языки??
Арсений Калиниченко
Можно чуть подробнее, не очень понял
Maxim Gora
Если Provider поставить над MaterialApp, то он будет доступен на любом экране
Арсений Калиниченко
[
"Да, я понял, поэтому у меня в отдельном экране такое:\n",
{
"type": "code",
"text": "child:\n Provider(\n create: (_) => RegistrationState(),\n child: PhoneScreen()"
},
""
]
Арсений Калиниченко
Это слишком высокий уровень. Хочется, чтобы этот Provider не был доступен для всего приложения, но был доступен для определенных экранов
Maxim Gora
[
"Есть решение с использованием библиотеки GetX (",
{
"type": "link",
"text": "https://pub.dev/packages/get"
},
"). С их инстанс менеджером один контроллер очень хорошо распостраняется на несколько роутов) Ну для этого нужно немного ознакомиться"
]
Tarlan
подскажите как сделать чтоб в конце текста было многоточие если он оказался длинным
Урусай
Народ а где взять эмулятор ios? Хакинтош ставить?
Slava Slavajun
C да, C++ больше для тяжёлых программ,C# для игр(unity) либо писать для серверов(.net)
Tarlan
можете еще подсказать функцию вроде initState, только чтобы вызывалась когда в возвращаюсь через навигейшн бар
Roman Vasiliev
[
"если хочешь научиться программировать за ",
{
"type": "italic",
"text": "приемлемое"
},
" время, то лучше не совмещать, особенно с Flutter."
]
Oleg
либо мак, либо хакинтош, либо пользоваться codemagic для сборки
Vladimir Cores
Mac in a cloud - Google it
herenickname
Есть макось в докере
herenickname
Там qemu в контейнере
Yerassyl Maikhanov
25 лет....
Yerassyl Maikhanov
вопрос кто сталкивался с проблемой группировки данных как в списке контактов
Yerassyl Maikhanov
то есть приходят данных списком и надо их по алфавиту отобразить с указанием к какой букве относится эта запись
Yerassyl Maikhanov
типо такого
Yerassyl Maikhanov
хм, тогда надо опять на сервере дичь творить
Yerassyl Maikhanov
да я это понимаю, спасибо что ответили просто думал есть ли способ группировки
Roman Vasiliev
у меня по датам сортировка, юзаю мапу
Vladimir Ivanov
а в дарте нет методов, которые нельзя переопределить? как final в Java?
Дмитрий
_ не прокатывает?
Vladimir Ivanov
[
{
"type": "link",
"text": "https://github.com/dart-lang/sdk/issues/3928"
}
]
Tarlan
какой метод используется чтоб узнать открыт ли определенный виджет? initState() для меня не работает потому что когда один раз зарендерил и возращаюсь на скрин обратно, он уже не вызывается
Oleg Pchelkin
оно вроде как модификатор доступа ток, типа private
Vladimir Ivanov
а вам зачем?
Oleg Pchelkin
потому что он уже открыт)
Tarlan
у меня два скрина, один на другой перекидывает, и когда возвращаешься через кнопку back в app bar, initState не вызывается
Tarlan
а мне нужна какая та альтернатива
Roman Vasiliev
Чтобы узнать есть ли виджет сейчас на экране - visibility_detector
Oleg Pchelkin
Логично, потому что он и не уходит никуда. Просто новый скрин рисуется. Ты как навигацию делаешь?
Vladimir Ivanov
not bad, thanks
Oleg Pchelkin
можно сделать await Navigator.push и все что напишешь после этого - вызовется после возврата на этот экран
Michael Bazilique
Ты на стримах чат не читаешь?
Денис
Знатоки, что лучше использовать один BlocBuilder на кучу виджетов c const и тд? Или для каждого виджета свой BlocBuilder со своим buildWhen?
Oleg Pchelkin
ну билдер будет перерисовывать внутренности. Если тебе ок перерисовывать все что внутри - то делай общий. Если большая вложенность, а данные обновляются в паре виджетов внутренних, то есть смысл разделить Но я не то чтобы суперзнаток, просто мнение)
L
Можно ли виджеты присваивать final переменным, чтобы избежать 100500 уровней вложенности? Это не сильно влияет на производительность? Или надо обязательно выносить в stateless widget?
Sergey ??
[
"Если хочешь разбить 1 большой виджет, то можешь сделать это через приватные методы этого виджета, которые будут возвращать виджеты и использовать их в build методе виджета\n\n",
{
"type": "pre",
"text": "Widget _buildHeader(){\n return Container(...);\n}",
"language": ""
},
""
]
L
Методы как раз очень сильно влияют на производительность
L
и это антипаттерн вроде бы
Anton I
Доброго дня, коллеги может кто уточнял, легально ли будет пользоваться данными с бесплатного плана openweathermap в мобильном приложении для AppStore? ака прилага для погоды на данных openweathermap
L
[
{
"type": "link",
"text": "https://iiro.dev/2018/12/11/splitting-widgets-to-methods-performance-antipattern/"
}
]
L
Метод ты не сделаешь const
Denis Martych
Всем привет! кто-то может подсказать как сделать бордер для Column??
Denis Martych
что бы посмотреть его границы
Урусай
Дебаг вью используй
L
Я сам лично не тестил, поэтому могу ошибаться
Sergey ??
Ну тут он пишет: мол если у вас в родителе будет обновляться стейт, то дети перерисуются, можно сделать его константым, чтобы дети не перерисовывались
Урусай
Дебил какой-то ее написал. Ваш сабвиджет возвращаемый из отдельного метода будет пересоздаваться! Караул
Sergey ??
какой смысл тогда делать стейт на верхнем уровне и прокидывать его к нижнему, если у тебя виджет в const просто будет
Урусай
Как будто бы без отдельного метода этого не происходит
Sergey ??
[
"там фишка в ",
{
"type": "code",
"text": "const _NonsenseWidget();"
},
" как я понял"
]
L
надо сделать приложение в котором будет 100500 виджетов и потестить
L
const не пересоздается же
Sergey ??
поэтому он не перересуется, если верхний стейт обновится
Урусай
Ну так если тебе нужно не перерисовывать какой-то виджет то конечно же создавай отдельный. А если тебе нужно просто сделать код менее макаронным то в отдельном методе нет ничего плохого
Урусай
Тот же флаттер активно использует отдельные методы для кусков большого виджета
Sergey ??
если везде const писать, то и реактивности не будет, виджеты вниз дерева не смогут ререндерится просто ??
L
Ну можно на верхнем уровне получить данные, а внутренние виджеты уже делать const там где это можно
Denis Martych
Подскажите как прижать Column к низу экрана?
Oleg Pchelkin
растянуть или прижать? первое - смотри на mainAxisAlignment^ второе - оборачивай в Align
Denis Martych
растянуть и прижать
Denis Martych
сейчас попробую
Denis Martych
сам блок растянуть как-то нужно
Oleg Pchelkin
.spaceBetween над
Andrew Ka
[
{
"type": "link",
"text": "https://youtu.be/uok3ZCeaCto"
}
]
Andrew Ka
Реализовал ExtendedAppBar ??
Aley Tumat
Приветствую всех. Подскажите пожалуйста начинающему изучать флаттер. Как нужно и правильно реализовать приложение. По апи получаю данные с метками и отрисовываю точки на карте. Также с приложения могу добавлять новые данные с метками. Вопрос: Как организовать state? 1. При открытии карты загружаю данные с сервера сохраняю в локальное хранилище и рисую точки. А при добавлении данных с приложения добавляю новую точку в хранилище и загружаю на сервер? 2. При добавлении новой точки с приложения, данные сразу уходят на сервер, потом подгружаю данные с новой точкой и сохраняю в локальное хранилище, дальше показываю новую точку?
Andrey Tsvetkov
при добавлении точки шлёшь запрос на сервер, который сразу вовзращает список точек, включая добаленную
admin
Кто-то может подсказать, что я сделал не так , что не работает клик по надписи?
Oleg
Добрый день! Может кто знает как сгенерить классы из proto файла(protobuf)? Или можете кто самп на гите. Киньте ссылку Заранее благодарен)
German Fajardo Sanchez
[
{
"type": "link",
"text": "https://youtu.be/QBwLJKbCIlo"
}
]
Aley Tumat
Может кто сталкивался с хорошей статьей или видео по управлению состоянием. Что лучше использовать Provider, BLoC, RXDart?
Arslan
[
{
"type": "hashtag",
"text": "#вопрос"
},
" начинаю изучать flutter с чего начать? Можете подсказать бывалые разрабы)"
]
Урусай
Официальная документация
Arslan
Цель делать кросс платформенные приложения, сам являюсь ux/ui дизайнером
Arslan
Ок. Потихоньку их изучать? Спасибо, а что ещё?
Павел Середа
ну можете не потихоньку, можете лихо изучать, можете изучать и танцевать, можете петь и изучать, можете пить и изучать, а можете вообще не изучать
Kuanysh
на udemy много курсов
Fortune's Desire
а вы фак актуальной информацией на курсы дополняли?
Donets
ты можешь сделать градиентом фон а внутри где буквы белым и тогда норм
Arslan
Так, лихо, танцуя изучать, записал
Arslan
А я у него и изучаю)
Fortune's Desire
подумал на канал андрейки
Arslan
Сегодня начал по его совету dart учить)
Павел Середа
ещё на codewars можно себя проверять, как вы там вообще дарт этот научили, понимаете что с ним делать или же нет
Arslan
Хорошо, дельный совет, проверять себя, это всегда, надо. Где можно такие бесплатные советы получить? Можно на Вас подписаться)
NewBalanceM5
[
"вот тут еще есть сборник русско-язычной информации, может что-то найдешь\n",
{
"type": "link",
"text": "https://github.com/newbalancem5/flutter_info"
},
"\n+ еще канал есть, куда публикую всякие новости и интересные статьи\n",
{
"type": "link",
"text": "https://t.me/FlutterDevRu"
},
""
]
Павел Середа
не надо на меня подписываться! я может ещё совсем молодой, может я только жить начинаю!
Sergey Hottabych
Я перешёл, и радуюсь
Sergey Hottabych
VSCode может все то же, только нет кучи ненужных функций и загружается почти мгновенно
Павел Середа
никак, все продукты джетбрейнса исторически(более 15 лет) безбожно тормозят на любом железе(топовое не топовое - вообще фиолетово), и исправлять там это никто даже не чешется
Sergey Hottabych
Provider
Sergey Hottabych
RxDart - это вообще не стейт-менеджмент, это набор расширений к стримам
Roman Vasiliev
Provider не управляет состоянием
Roman Vasiliev
Я через основу провайдера кидаю модельки в виджетах, состоянием не запахло
Sergey Hottabych
Если ты в нем не разобрался, это не повод делать вывод, что он не работает
Sergey Hottabych
У меня товарищ на провайдере пишет клиент для РусскийСтандарт банка
Sergey Hottabych
Огромное приложение штук 40 экранов
Sergey Hottabych
И доволен
Michael Bazilique
Только на провайдере?
Michael Bazilique
Извините, совсем мимо кассы
Michael Bazilique
Из другого языка слово
Michael Bazilique
PR changes approved
Sergey Hottabych
Что в нем сложного или непонятного?
Sergey Hottabych
Блок в 10 раз сложнее и более громоздкий
Andrew Ka
[
{
"type": "link",
"text": "https://youtu.be/Nrpf1Ri8maM"
}
]
Savva Morozov
как эффективней и проще реализовать хранение данных, предположим что это todo список?
Michael Bazilique
где ты увидел сообщение о сложности и непонятности?
Michael Bazilique
сам юзаю провайдер в кучке с блоком
Sergey Hottabych
Ты имеешь в виду SimpleBloc? Самописные блоки?
Sergey Hottabych
И доставлять их провайдером?
Michael Bazilique
[
{
"type": "mention",
"text": "@Hottabych"
},
" именно что"
]
Sergey Hottabych
А чего тогда не блок от felangel?
Sergey Hottabych
Уже готовые блоки + свой форк провайдера
Sergey Hottabych
Там ещё плюшка - BlocListener, которого в обычном провайдере нету
Sergey Hottabych
Неужели не надоедает в каждом классе заново заводить стримконтроллер и писать одно и то же?
Sergey Hottabych
В памяти приложения или в бд или на сервере? Что именно хочешь сделать?
Arslan
А, уже всё, уже всё
Savva Morozov
в памяти устройства, локальная бд наверное
Sergey Hottabych
Hive или sembast
Sergey Hottabych
[
"Я не пойму, тут у людей какой-то кретинизм и тотальное непонимание по части провайдера!\nДа еще и агрессия, когда его пытаешься советовать.\nПростейшая и супер-удобная либа для стейт-менеджмента.\nЕсли люди не могут прочесть и понять статью из официальных доков: ",
{
"type": "link",
"text": "https://flutter.dev/docs/development/data-and-backend/state-mgmt/simple"
},
" и повторить как там, то я не знаю даже."
]
Roman Vasiliev
Смотри, есть блок, который стейт-менеджмент, есть его расширение под реалии flutter, в нем есть BlocProvider, который толкает все это барахло по дереву. Есть Provider. Блока, который стейт-менеджмент, там нет. Вопрос: куда он затесался?
Sergey Hottabych
он обычный дартовский класс, с ChangeNotifier'ом
Sergey Hottabych
Пример из статьи, которую я выше кинул
Урусай
В провайдере кроме провайдера есть консьюмер. Вместе они реализуют стейт-менеджмент
|