Flutter уроки | #13 - Продвинутая работа с JSON json_serializable | Курс с нуля для новичков 2023
Vložit
- čas přidán 27. 07. 2024
- 😎 Репозиторий с кодом из уроков: github.com/Frezyx/flutter_tut...
Ссылки из видео:
⬇️ Пакет Json Serializable pub.dev/packages/json_seriali...
⬇️ Пакет Json Annotation pub.dev/packages/json_annotation
Команда для запуска генерации
flutter pub run build_runner build --delete-conflicting-outputs
✅ Полезные ссылки:
👨💻 Мой GitHub github.com/Frezyx (Куча кода на dart / Flutter)
💬 Telegram с анонсами t.me/frezycode
🚀 Boosty boosty.to/frezycode
📸 Instagram / frezycode
Flutter - это идеальный инструмент, чтобы начать путь в айти или перейти на него в 2023. А я как раз тот самый коуч, которого ты искал.
В этом уроке мы ненадолго вернемся к работе с http запросами и dio в приложении. А конкретно изучим как генерировать сериализацию (serialization) и десериализацию (deserialization) в проектах на Flutter используя пакеты json_serializable, json_annotation и build_runner.
Генерация кода позволяет разработчикам тратить в разы меньше времени на написание рутинных и однотипных процессов в своих приложениях.
Изучим анyотации и как работает генерация кода в Flutter проектах.
А так же немного поговорим про архитектуру нашего репозитория.
В ходе курса, мы вместе разберемся с тем, что такое Flutter и как на нем сделать первое приложение. Научимся программировать на dart, узнаем про основные виджеты в Flutter, как работать с сетью http dio, узнаем про основной стейт менеджемнт в Flutter - BLoC.
00:00 - 00:08 Вступление
00:08 - 00:23 Что будет в этом уроке
00:23 - 00:46 Как в Flutter проектах делают сериализацию openAPI
00:46 - 01:26 Для чего нужны json_annotation и json_serializable
01:26 - 01:59 В чем плюсы генерации json сериализаторов
01:59 - 02:31 Устанавливаем пакет json_annotation
02:31 - 03:16 Что такое dev_dependency в flutter проекте
03:16 - 04:04 Про пакет build_runner
04:04 - 07:12 Обновляем модели проекта для удобной сериализации
07:12 - 07:33 Аннотация JsonSerializable()
07:33 - 08:26 Чем отличаются генерируемые файлы. Точка G
08:26 - 09:57 Генерация методов сериализации моделей
09:57 - 12:25 Запускаем генерацию
12:25 - 15:22 Меняем название полей json генерируемой модели JsonKey
15:22 - 21:09 Используем новую сериализацию в методах репозитория
21:09 - 21:43 Запускаем проект и получаем ошибку сериализации
21:43 - 22:37 Про формат ISO Date
22:37 - 26:37 Пишем кастомный сериализатор toJson fromJson для Даты
26:37 - 28:52 Исправляем ошибку с картинками
28:52 - 29:43 Смотрим насколько приятнее стал наш код
29:43 - 30:59 Особенности работы с данными из API
30:59 - 31:51 Чем обычно отличается работа со списками и с одной моделью из АПИ
31:51 - 32:40 Итоги урока
#войтивайти #программирование #flutter - Věda a technologie
Смотрю в 2024 году. Круто, очень помогает в изучении!
Спасибо! Огонь урок, как всегда! Круто что столько интересных кейсов попалось и что в конце ты сказал про избыточность API
Сам очень рад что интересный кейс попался) Надеюсь это не было сложно для начинающих.
По какой-то невероятной причине на большом экране вообще не даёт открыть написание комментариев.
А я на бусти просто подписалась, там ещё и помогут в чате. Видео огонь, комментарий для алгоритм ов ютуба. 😂
Спасибо за работу!!! Очень круто!!!
Привет братанчик, случайно наткнулся на твой канал, просмотрел все ролики за 3 дня так как уже знаю флаттер более менее, много чего узнал нового, а многое повторил. Хотелось поблагодарить тебя, что объясняешь все очень понятно и круто, и хочется узнать больше про firebase, про архитектуру больших проектов (типа clean arch) и про написание тестов. Возможно про другие полезные библиотеки и хорошие практики написания))
Спасибо большое за такой фидбек. Услышал пожелания ✅
Спасибо. Я напоролся на одну ошибку с потерей данных, но оказалось что я просто написал лишнюю букву в аннотациях json. Короче если у вас такая же проблема для тех кто читает - аннотации должны быть прописаны строго для поиска по полям сайта, ошибетесь хоть на буковку как я - все пойдет в тар тарары. У меня вообще комп завис пришлось его вырубать кнопкой из за зависания дебагера. Хорошо хоть логи сделали из прошлого урока так бы я вообще не понял где проблема.
привет, пожалуйста снимите про auto_route, авторизация и регистрация через bloc
Auto route будет обязательно 😌
Про авторизацию долго говорить.
Будет уже наверное не в рамках курса.
dart: - я рефлексии не чувствую!
google: - у тебя её нет!
столько возни с каждой ДТОшкой, и этим реально пользуются в больших проектах?
У дарта рефлексия есть, а вот у флатера ее нет, и не просто так. Как по мне, возня оправдана полностью. Рефлексия - игрушка дьявола в неопытных руках
@@frezycode Понял. Спасибо за курс уроков. Вот реально, посмотрел, потом за "пару вечеров", набросал кальку с фронта на реакте, просто чтоб попробовать, как оно.
Стас, а использование допустим quicktype чем хуже будет?
Привет! Подобные генераторы можно использовать. Это удобно. Но такой код хранится как часть вашего изменяемого кода. Это означает что любой программист из команды может зайти и что-то поменять в сериализации моделей на свое усмотрение.
Это может приводить к неожиданным ошибкам, особенно если в проекте вы не пишете тесты.
Генерация через аннотации защищает ваш проект от подобных ошибок и делает ваш код более определеным и предсказуемым.
Привет. Как думаешь будет ли актуальна кросс платформа и собственно сам flutter. Ведь вполне вероятно, что ios у нас рано или поздно вообще перестанет работать. И приложения надо будет писать лишь под Андроид. Стоит ли учить flutter или лучше нативный Android? Просто flutter мне нравится больше, а уверенности насчёт его нету.
Привет 👋
Даже если перестанет работать, что очень маловероятно, все равно потом будет работать. Айос - это почти половина рынка, поэтому я совершенно не думаю о таком исходе.
Но даже если все будет так плачевно , Flutter ведь не только про Android и iOS. Он в этом плане гораздо мощнее и умеет так же собираться под Windows, macOS, Linux, Web. Да, пока на рынке мало кто использует Flutter в этих целях. Но тут я считаю нужно немного подождать. Мы в ForestVPN уже удачно затащили macOS клиент на flutter. Так же я знаю несколько проектов в России, которые делают веб приложения на Flutter.
Короче говоря, бояться тут не о чем)
@@frezycode Ну с половиной рынка ты перегнул, по факту это %20~
Стас с firebase работали?
Да и в курсе есть урок про инициализацию.
@@frezycode не могу прописать ключ sha-1. Что может быть? Уже упарился лазить по стаковерфло
Подскажи что лучше и перспективнее котлин или дартс флатер ?
Сравнивать язык и фреймворк было бы не корректно. Ты имеешь ввиду сравнение нативной разработки под андроид и Flutter ?
@@frezycode думаю что бы начать учить, на чем сконцентрироваться Котлин или дарт и флаттер или c++ и qt, так как сейчас аврора будет на нем и это там native language. 3 варианта и не как не решу 🥴 дарт и флаттер некоторые утверждают что отомрет, Котлин кмм его задавит, а с++ и qt аврора будет востребована сейчас. Пока начал изучать дарт и пока нравится
@@BobbyDigital_X ну вот этих «экспертов» Android блоггеров по поводу «задавит» я бы точно не слушал, это слишком субъективная позиция человека, который топит за свою технологию
@@BobbyDigital_X и Kotlin и dart + Flutter имеют множество плюсов и минусов, и перспективы у технологий тоже есть. Просто довольно в разных направлениях. Лучше выбирать тебе самому на основе того, что тебе больше понравится. И никто не запрещает пользоваться сразу двумя технологиями
чет я в шоке какой гемор это делать в дарте, тонны кода чтобы сделать простую операцию
В 3.4 подъехали макросы, так что скоро будут полноценные data-классы, посмотри Обзор Flutter 3.22 на моем канале
@@frezycode да да, я смотрел, но если я ничего не напутал они в 3.5 только разрешили этим пользоваться🥲
из доки
"make sure you have Dart version 3.5.0-152 or later."
@@frezycode в 3.5 судя по документации(