Программирование : Dart & Flutter по-русски
Evgenii Elchev
Я вот пишу на нем понемногу пол года, и даже хз какие у меня ощущения. Ну круто что хот релоад это факт, тулинг крутой это тоже факт, ну под две платформы пишешь это тоже факт. Но там яндекс уверял что в 4 раза быстрее на нем писть чем на нативе и вот тут я хз. не чувствую никакого ускорения. Хот релоад немного ускоряет, но он даже не всех хот релоадит) При этом код писать явно дольше чем на swift, кода больше раза в три выходит, компайл тайм гарантий никаких. То тут nul забыл, то там эксепшен не обработал, это все в рантайме падает, бегаешь потом ищешь, где что откуда упало. И это все отнимает время.
Anton Ratushev
Яндекс таксометр и Alibaba несерьезные проекты?
Aleksey
действительно, пока гугл не выкатил в релиз фуксию, где обещают флатер как основной фреймворк для разработки, будущее туманно
Evgenii Elchev
ты назвал два проекта. Хз что там в алибабе на нем написано, а в яндексе полу сырая бетка, которая пока что обкатывается на двух с половиной водителях и даже не в России
CtrlPy
я смотрю на flutter как возможность для малого бизнеса, делать быстро небольшие приложения, правда не знаю насколько мой вгляд правельный, пока сужу только по слухам о flutter
Igor Kusoff
будущее туманно, расходимся и удаляем флаттер с компов)
Evgenii Elchev
У яндекса есть ресурсы взять все и переписать, а у новичка есть ресурсы взять все и переучить если вдруг он не выгорит?
Anton Ratushev
ты писал что их нет, я назвал 2. Кто прав?
Igor Bess
Изучай программирование для начала, без привязки к технологиям.
Evgenii Elchev
ну типо ты год разбирался в виджетах, вот этом вот всем, а потом бах и давай все с начала только в андроиде)
Evgenii Elchev
я сказал серьезного комита, это пока не серьезные комиты
Evgenii Elchev
вот когда у яндекса, будет яндекс еда на флаттере написано
Evgenii Elchev
и вообще, что написано на нем у гугла?
Александр
что тут надо ставить? Приложение использует шифрование? Выберите вариант «Да», даже если приложение использует стандартные методы шифрования, доступные в операционной системе Apple.
Evgenii Elchev
не надо удалять, надо просто риски принять
Александр
firebase считается ?
neikist
Новичку флаттер я бы точно не советовал короче
Evgenii Elchev
https считается уже
Evgenii Elchev
тут все ускорение только в том что один раз под две платформы. И да оно быстрее чем делать это дважды. Но я бы на твоем месте смотрел не на бизнес, а на вакансии. Даже если флаттер вот прямо завтра выстрелит в топы, то еще пару лет на том же андроиде будет все равно больше вакансий.
Anton ?? ? ??
>>еще пару лет на том же андроиде будет все равно больше вакансий. и почему это плохо
Evgenii Elchev
это не плохо, плохо будет тебе, когда ты потратил кучу времени на технологию в надежде что уже сможешь на хлеб зарабатывать, а не зарабатываешь
Evgenii Elchev
и еще хуже будет если флаттер не выстрелит
Anton ?? ? ??
так вакансии же есть
neikist
Да все просто 1) Вакансий пока мало и на них больше люди с опытом претендуют, новичку будет пробиться очень сложно, если не невозможно 2) Все равно придется изучать натив со временем, а изучать новичку сразу набор из кучи технологий будет сложнее чем опытному 3) Статей и примеров пока меньше чем для уже устоявшихся технологий, и они, как и курсы с книгами, тоже на опытных нацелены 4) Будущее технологии туманно, и если человеку с опытом на 2-3 платформах будет восстановить навыки несложно, и не так уж сложно переучиться, то переучиться новичку на другую технологию после своей первой будет заметно сложнее.
CtrlPy
ну к вакансиям не очень хочу себя привязывать больше хочеться что бы нравилось и что бы была возможность сделать самому или с командой и продать самим
Evgenii Elchev
на хайпе хорошо петы писать)
Evgenii Elchev
по кайфу и бизнесу не вредит)
Sergey Hottabych
Кто шарит в Dio? Не получается ответ с сервера замапить в список моделей
Sergey Hottabych
Response вот так выглядит
vasilich
А откуда ты модели взяу?
Sergey Hottabych
Да, модель сам написал.
Vyacheslav
Смотри свою модель, где-то там не типизированы свойства модели
vasilich
А определение _транзакшонс сфоткай?
vasilich
В Мар можно, кажется, дженериком тип передать
vasilich
[
"Типа ",
{
"type": "link",
"text": "x.map"
},
" ()"
]
Sergey Hottabych
типизировал, ничего не поменялось
CtrlPy
простой пример, по соседству с моим офисом, есть салона красоты, и вот пъем мы кофе и их владелица мне говорит, ты вот в технике разбираешься в сайтах, скажи а можно сделать приложение на телефон для моего салона, типа что бы там было это это и что бы можно было онлайн записаться на прическу? Вот как бы потенцыальный заказчик малого бизнеса и если иметь какой то инстремент разработки на котором можно быстро что то простое сделать то вот и работа и заработок.
Sergey Hottabych
все банально
neikist
Для таких задач PWA больше подходят. Для совсем мелкого бизнеса флаттер оверхед, имхо. Либо конструкторы приложений.
vasilich
Таких сервисов уже мульйон)
Sergey Hottabych
_transactions инициализируется пустым списком.
vasilich
[
"Типа ",
{
"type": "link",
"text": "x.map"
},
" ()"
]
CtrlPy
ну так это еще лучше значит есть готовое что то можно переделать и сделать нужное клиенту
vasilich
Дешевле в эксплуатации
neikist
Потому что если о приложении задумывается - сайт уже есть. Плюс разрабов для поддержки и разработки найти где угодно можно, в отличие от флаттера
vasilich
ЖС разрабов на порядки больше чем Флаттер. Соответственно все можно сделать дешевле
Evgenii Elchev
там можно тему скачать для вп) и в целом будет норм)
neikist
Вообще простота поиска разрабов - причина по которой 1с у малого бизнеса взлетел. Веб разрабы тоже есть почти везде. С нативными разрабами или тем более флаттер разрабами уже беда.
Evgenii Elchev
у меня жена делала сайт для стомалотолги местной, купила тему за 2к, я ее накатил на хостинг и на вп) все, она там настроила все как надо, просто, дешево (она 12к взяла, 2 к тема, 10 навара), полностью удовлетворяет потребности заказчика (ну мне нужен какой то сайт, я хз какой), и даже прогать не надо и на мобилках открывается норм)
Sergey Hottabych
Теперь исключение не вылетает, но эта строчка бесконечно выполняется
Sergey Hottabych
Все страньше, и страньше
Evgenii Elchev
но тут вообще надо понимать куда целиться, если хочешь норм деньги получать, то в малый бизнес смысла соваться нет)
Evgenii Elchev
хотя работа не пыльная, можно правой пяткой левой ноги что то делать под копирку)
neikist
И деградировать как профессионал при этом)))
Evgenii Elchev
ну а почему нет? я вот последнее время мечучь как белка в колесе, статьи, канал, конференции, работа, пет проджект, книги, и думаю, а нахрена мне это все? я бы наверное мог за 50к утйти работать на один день в неделю, а остальное время чилить просто)
neikist
Это пока навыки не деградировали 50к будет. А через несколько лет тю тю. Все.
vasilich
Присмотрись дебаггером почему
Sergey Hottabych
хотя я понял, почему. скорее всего, это уже во FutureBuilder'е косяк
Evgenii Elchev
да не, навык совсем то не пропьешь
Evgenii Elchev
я тут спустя 5 лет перерыва написал тестовое на php ради прикола, меня потом неделю уговаривали к ним пойти работать)
vasilich
Очень зависит от кол-ва денег которые вы запросили)
Evgenii Elchev
а в другое место тз было регулярку написать, я написал, сказали не внимательный) у них вакансия уже пол года висит, я конечно в регулярках никогда особо не шарил, но хз, даже тестов там написал гору, какого внимательного они ищут не ясно) там еще зп прикольная, 300к если пишешь без багов, 200 если с багами))
Evgenii Elchev
там дофига предлагали, больше 400, но как оказалось эти ребята занимаются "фармацептическими веществами" и я как то не захотел, а то может на пыхе бы писал сейчас снова)
Evgenii Elchev
у меня была работа, за 60к, я там пол года натурально ничего не делал, вообще, даже не общался ни с кем)
Evgenii Elchev
потом меня совесть замучала)
Rinat Kurmashev
тоже слышал про подобные позиции
Rinat Kurmashev
зачем вообще их держат? для отчетности? ??
Evgenii Elchev
не, я там сначала писал, но за год просто написал кучу всего и все, ну типо нет задач пока)
Evgenii Elchev
а может про меня забыли я не знаю)
Sergey Hottabych
[
"Да, слушай, проблема решилась написанием вот в таком виде\n\n» Типа ",
{
"type": "link",
"text": "x.map"
},
" ()"
]
Sergey Hottabych
Спасибо, большое
vasilich
Там у тебя ещё една проблема) Только ее не видно
vasilich
Ты рассчитываешь что с бэка тебе придёт мапа
vasilich
Тебе нужно модельку свою подпилить) Ну и жуйсонСерталазабл заюзать
Олжас Сулеймен
и зачем в пустой лист делать спред? если надо скопировать то .toList
Sergey Hottabych
А почему через as не кастится, а вот таким способом кастится?
vasilich
Я хз куда ты пихал эз)
Олжас Сулеймен
as не кастует
Олжас Сулеймен
он указывает что мол типа
Evgenii Elchev
потому что as это не каст, это приведение типа
Evgenii Elchev
типо копилятор не знает какой там тип, а ты знаешь, пишешь as и все в шоколаде
Evgenii Elchev
а когда у тебя один тип, а нужен другой то эта фигня не поможет)
Саша
В свете последний обсуждений по поводу будущего флаттера и дарта в целом, хочется задать вопрос: а что вас побудило вообще стать на эту тропу? Заманчивые рекомендации, отзывы или статейки? Видите для себя перспективу фреймворка и готовитесь стать ценными разрабами когда он стрельнет(если стрельнет)? Или мб просто для себя? Интересно услышать причины вашей заинтересованности
Roman Vasiliev
Вижу перспективу и легкость написания UI, остальное второстепенно
Daniil Kolyasnikov
Возможность написания ui кода сразу в мобилку и в веб (наивный)
vasilich
Я верю в перспективу, особенно верится имея опыт в RN
Олжас Сулеймен
c AngularDart
Evgenii Elchev
скука, в ios все знаю, хотелось чего то нового, слышал отзывы что флаттер хорош, поставил поковырять)
Сергей
Подскажите если у Future аналог метода blockingGet из RxJava?
Nikita Domnitskii
Друг разраба искал, ну я и переобулся по быстрому
Саша
Всем спасибо за ответы)
neikist
Да просто прикольная концепция. Вот и поглядываю в пол глаза. Наконец кроссплатформа достаточно простая и не на чертовом js
Rinat Kurmashev
на работе нужна была мультиплатформа, ios я освоил, не зашел, а флаттер зашел)
Evgenii Elchev
[
"там подвезли ",
{
"type": "link",
"text": "https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/"
},
""
]
Sergey Hottabych
Ну это у меня такой способ копирования, да.
Evgenii Elchev
тоже потыкать хочется)
Rustem Kz
теперь надо дождаться 21 года и посмотреть взлетит или нет
Rustem Kz
у них зимой был blazor mobile bindings, теперь вот это
Rustem Kz
не знаю, одно и тоже или нет
neikist
Снова какие то xml-и...
Evgenii Elchev
код. на шарпе
Andreu
майкрософт не майкрософт, если хоть где-то не будет пытаться толкнуть использование xml))
Rustem Kz
там тоже мне кажется с мобильной разработкой туманно
Rustem Kz
осенью выйдет дотнет 5, объединятся кор и нет фреймворк
Sergey Hottabych
Так лучше?
Evgenii Elchev
n addition, we are enabling developers to write fluent C# UI and implement the increasingly popular Model-View-Update (MVU) pattern
Sergey Hottabych
Я правда, все равно не понял, почему он сам не понимает, что map на выходе дает Transaction, и надо ему это явно указать.
Rustem Kz
из комментариев оттуда:Web? Blazor? Flutter has a single model that reaches all platforms whereas it sounds like .NET still has two: web and everything else. Nice to see the effort, though. Maybe by the time .NET 17 rolls around we’ll finally be where Flutter is today.
Evgenii Elchev
там есть приемущество, нативные виджеты, которые выгледят как нативные и ведут себя как нативные)
Andreu
И работать это будет в духе SwiftUI?)
Rustem Kz
xamarin forms переименуют в maui
Evgenii Elchev
ну пишуь что да) так то я сильно не смотрел)
Andreu
не знаю каким багажом знаний обладаешь, но это был камень в их огород. SwiftUI сейчас работает не больше чем вещь для развлечений
Evgenii Elchev
потому что он сырой, при этом он очень крутое апи имеет
Evgenii Elchev
его в этом году или в следующем году допилят
Andreu
я к этому и веду, у андроида в джетпаке тоже такая вещь есть, но ни один, ни второй пока не сделали нормально. а тут приходит майкрософт и уверяет, что это будет норм работать? смутно верится
Evgenii Elchev
там немного другая история. В SwiftUI пишут многое заново. То есть это непросто обертка над UIKit, а майкрософт просто обертку выкатывает, к тому же у них там был ксамарин, из которого они натырили всякого)
Andreu
ну и что, хамарин в итоге сильно популярен?) Да вроде нет
Александр
Кто знает где это ставить ?
Evgeniy S
Всем привет. Подскажите UI kit
Malika
[
{
"type": "link",
"text": "https://snipp.ru/tools/text-array"
}
]
vasilich
Посмотри как в исходниках берётся тип для дженерика
vasilich
Он берётся от входящего типа, то есть - динамик
Sergey Hottabych
Но почему мне надо указывать выходной , если и так видно, что функция в map возвращает new Transaction()?
Александр
Подскажи пожалуйста где ставятся возрастные ограничения. все перерыл не могу найти
Александр
Ребята, что за эпл при публикации требует какие то возростные ограничения, но такого раздела нетнигде
Andreu
в информации и приложении
vasilich
Это кому видно?) Правильно - тебе)
vasilich
На самом деле тут уже нужно глубже копнуть чтобы ответить на этот вопрос. Мне чуть лень) Дальше сам
Александр
ссылки нет никакой
Andreu
окей, а саму ipa ты залил?
Александр
ну xcode там что то куда то уходило
vasilich
[
{
"type": "link",
"text": "https://dart.dev/guides/language/type-system"
}
]
Sergey Hottabych
Дарт хитер и коварен ))
Sergey Hottabych
Спасибо, посмотрю )
Sergey Hottabych
А про JsonSerializable знаю, но тут маленькое приложеньице, проще ручками написать fromJson.
Ruslan Kim
Привет, кто provider пользует, подскажите, нормальная ли практика - внутри changenotifier модели слать запросы и таким образом обновлять свое состояние?
Sergey Hottabych
Нормальная, но сетевое API лучше вынеси в отдельный файл.
Ruslan Kim
У меня разделены источники данных (сеть и кэш) и используются из репозитория. Если засуну репо в модель - будет ок?
Sergey Hottabych
Ну да, в репозитории пишешь http-запросы или sql-запросы к локальной БД. А в твоей changenotifier-модели только экшн fetchData(), и внутри http.getPeopleList() или db.getPeopleList() Из UI дергаешь fetchData().
Sergey Hottabych
И есть какие-то плагины для кеширования уже готовые. Чтобы самому этим не заниматься.
Ruslan Kim
о, тогда нормально, спасибо
Evgeny Kot
А я про него и забыл
Павел
Хочу прикрутить TextEditingController(); внутри диалога. Диалог открывается функцией showDialog. Не очень понимаю, как освободится ресурс контроллера. Само? dispose нет же
Павел
то есть организовывать его в виджете? Иначе потечет память?
Павел
GC не отработает? Функция то закончится после закрытия
Daniil Kolyasnikov
Он сам правильно умрет
Павел
тоже так подумалось
Daniil Kolyasnikov
[
"Ребят, ",
{
"type": "link",
"text": "https://www.udemy.com/course/flutter-dart-mvvm-design-pattern/"
},
" хороший курс ?"
]
Daniil Kolyasnikov
Может, кто-то проходил ?
Павел
да именно это и делаю. Хочу прямо в алерте запрос на бэк сделать, чтобы покрутить индикатор
Павел
отправить сообщение
Nikita Domnitskii
ну так ты в билдере виджет возвращаешь же
Павел
[
{
"type": "link",
"text": "https://i.imgur.com/ImrB0U0.png"
}
]
Павел
могу прямо в фугкции контроллер поля сделать, вот думаю, потечет или нет
Nikita Domnitskii
Контент отдельным виджетом сделай
Nikita Domnitskii
И диспозь
Павел
если в контенте будет свой стейтфул, то в нем и диспозы. Ичитабельно будет
Sergey Hottabych
Не смотрел, и из описания непонятно, чему он будет учить, но MVVM - это не Flutter-way. Это чисто андроидовский подход.
Sergey Hottabych
Я слабо представляю, как он MVVM реализовывать будет
Daniil Kolyasnikov
А что ему может помешать ?
Sergey Hottabych
Ну посмотри, потом расскажешь
Nikita Domnitskii
человек-провайдер
Sergey Hottabych
Он все что угодно может называть MVVM. От самописных блоков до всяких извращенных абстрактных презентеров через наследование
Daniil Kolyasnikov
Я ждал ??
Daniil Kolyasnikov
На самом деле это архитектура скорее C#-way. Но она заточена под двухсторонний бинд, ребятами, которые очень инженеры
Игорь
[
{
"type": "bot_command",
"text": "/stat@combot"
}
]
Combot
Total messages: 213539
Павел
я везде использую Get.It . Сразу в виджете получу сервис апи и отправлю запрос
Sergey Hottabych
Не хочу тебя разочаровывать, но GetIt - это просто синглтон, который регистрирует другие синглтоны. Так сказать, глобальный менеджер синглтонов. О недостатках синглтонов много написано. В общем, не самый это лучший подход.
Daniil Kolyasnikov
Хорошо, мне нужен какой-нибудь курс на каком-нибудь онлайн сервисе, после которого у меня будет красивая картинка на которой будет написано, что я молодец и прошел курс. Было бы круто узнать что-то полезное и поменять отношение с bloc. Может кто-то сможет что-то посоветовать ?
Sergey Hottabych
Ну ты же всё сам знаешь, и ещё постебаться решил - зачем тогда советов просишь?
Павел
Общие фразы. Может крашнуться аппа? Я им подключаю сторы mobx
Daniil Kolyasnikov
Читал реквест ?
Daniil Kolyasnikov
Я ж там не написал, что мне нужен мега-полный курс. Я говорю, что мне нужен курс с сертом.
Daniil Kolyasnikov
И если уж выкидывать деньги, то было бы круто найти что-то полезное .
Павел
вот и я не пойму, что плохого. Я использую его по назначению) Мне надо иметь один объект апи сервис-провайдера делать запросы
Nikita Domnitskii
человеку просто мозг жмёт, как недавно выяснилось
Павел
подозреваю, что люди иногда не понимают, что виджеты тупо перерисовываются. И где тогда брать необходимые редкие объекты?
Павел
Кто-то порекомендует Provider ))) Оно чем то отличается? в плане доставки мне объекта по дереву
Sergey Hottabych
Что нет? Потрудитесь излагать мысли развернуто
Daniil Kolyasnikov
GetIt - реализует шаблон ServiceLocaltor.
Nikita Domnitskii
там немного другая разница. Провайдер тоже управляет жизненным циклом объекта, он собственно для того и нужен, что бы это бойлерплейт сократить. Но основные фишки провайдера какие? * он встраивается в дерево виджетов * как и инхерит умеет обновлять стейт который использует watch * имеет виджеты билдеры, которые умеют обновляться когда значение в провайдере обновляется по сути это все сахарок, и сокращалка бойлерплейта, а так инхерит может тоже самое А что get_it это типичный IoC контейнер, сервис локатор. * оторван от конекста, что позволяет в нем регистрировать обмалютно любые зависимости * имеет более гибкие настройки жизненного цикла (синглтон, фабричный метод, время ижзни равное графу) * позволяет регистрировать/отменять регистрацию зависмостей на ходу, что иногда полезно, что бы подменять зависмости Лично я у себя использую провайдер для того что бы пробрасывать элементы сквозь дерево (наапример стейт экрана во все его виджеты) что бы не пробрасывать их через конструкторы. Это конечно тоже плохо ибо не явно, но в целом сокращает бойлерплейт и флаттер вей для доменной части приложения я сначала замутил гет ит, но понял что менеджить его супер боль. и на это есть причины: * все зависмости передаются не явно, ты не можешь сказать какой класс от какого зависит, из этого приходится постоянно лазить по коду и смотреть глазами * он не может автоматом разрешить асинхронный граф, что есть если класс завсит от другого что регистрируется асинхронно, тебе надо это руками указать, и вот приходится следить за зависмостями, способом их инфицализации, потом не забывать прописывать правильную последовательность инициализации Короче я подмал и решил, мне не нужен мехаизм контейнра, то есть не надо регать зависмости на лету и отменять их регистрацию, а жизнейнный цикл и так просто написать. В итоге я просто написал несколько фабрик, обьеденил их либу, и все, кастомый DI - причем именно DI. с внедрением зависимостей через конструкторы, явно, тут не запутаешься, не сможешь заинится класс раньше чем его завимость, это проверяется компилятором + нет либы от которой надо читать документацию)
Nikita Domnitskii
патерны изучи для начала, менеджер синглтонов
Павел
Я читал механизмы правильного старта GetIt . И там прекрасно указывались зависимости
Igor Kusoff
[
{
"type": "link",
"text": "https://www.udemy.com/share/101WB6AEMfclhXQXQJ/"
}
]
Павел
Спрведливости ради, по-моему они перешли к синглтону в конце концов)
|