Flutter. 3 важных правила при создании приложения.
HTML-код
- Опубликовано: 12 сен 2024
- Приветствую 🖐 друзья, в данном видео уроке обсудим три важных правила при создании Flutter приложения которые лучше не нарушать)
🤝 Поддержка канала:
✅ ВКонтакте: donate_...
❗️ Важные ссылки ❗️
1️⃣ Задать вопрос по курсу, скачать иконки, тему для Android Studio можно в группе mobile_...
2️⃣ Задать вопрос по курсу можно в чате Telegram t.me/mobile_de...
3️⃣ Новости по Flutter t.me/mobile_de...
√ Тэги для поиска:
#flutter #dart #equatable
Поддержка канала: sobe.ru/na/petrovyuri
Общение в телеграм: t.me/mobile_developing_chat
Канал в телеграм: t.me/mobile_developing
Все советы можно свести к одному большому совету: минимизируйте в коде все константные подвязки. Код должен быть реализован через промежуточные переменные чтоб в них можно было гибко подставлять нужные значения. ) Любой опытный программист в других языках тоже сталкивается с теми самыми проблемами но в других сферах. Константные привязки которыми ты не можешь управлять нужно выносить за пределы основного кода.
Спасибо большое за дельные советы джунам, продолжайте в том же духе) Лайк и подписка!
Реализация первых двух правил у вас нарушила третье правило ) Спасибо за видео, отличный формат! Так намного удобнее находить нужную информацию когда она нужна, нежели выковыривать всё из сериалов типа "пишем свой клон %AppName%" в вспоминая "в каком же выпуске я что-то такое видел, в пятой серии или в восьмой".
Если вдруг ищите идеи для новых коротких видео, то вот, осмелюсь предложить несколько пожеланий: "как сохранять и загружать настройки своего приложения", "как запустить задачу в отдельном потоке", "Реализация экрана с прокруткой как в Instagram".
Спасибо, за идеи
И почему нарушило?. Я же говорил, про сторонние библиотеки)
Топ👏 Побольше видосиков 👍
Огромное спасибо за видео, очень полезно. Особенно после того как насмотришься всяких индусов на ютубе. Нужно и дальше развивать тему правильных практик и структурирования проектов. Большинство обучающих видео игнорируют эту тему.
Благодарю за отзыв 🤝
ахах, про индусов жизааа
Спасибо, отличное видео. Жду продолжения видосиков по Флатеру
Благодарю за отзыв 🤝
2:15 Локализация
10:13 Темы приложения
20:42 Обертки для виджетов из сторонних пакетов
Спасибо за советы. Третий совет очень понравился.
Супер! Спасибо большое! В плейлистах данного канала нашём много годноты)
Благодарю вас за отзыв 🤝
Эти правила в принципе приминимы для любого проекта на любом языке на любом фреймворке. Спасибо огромное!
Спасибо за видео) Интересно было что же за 3 правила))) Думал в эту тройку попадет тестирование. Очень многие начинающие программисты про тестирования начинают думать не на старте проекта, или даже вообще его не начинают делать, только может думают об этом - "ну сейчас столько работы, потом начну использовать сейчас не до тестирования..."
Здравствуйте, благодарю за отзыв 🤝. По поводу тестирования, да, в ы правы, тестированию не все уделяют должного внимания. Но на это есть объективные причины. Время - это самая главная причина, когда сроки сжаты, и требуется результат, тежеловато объяснить, что тебе нужно время для покрытия кода тестами. Есть конечно техника TDD, но в нынешних условиях это утопия.
Но, все таки я бы рекомендовал выделять чуток времени на покрытие хотя бы основных функций (работа с сетью, памятью и т.д.)
дельные советы . переосмысливаю свой код )
очень информативный туториал по effective flutter о которых я не знал,хорошая работа!
Благодарю за отзыв 🤝
Спасибо, полезно и понятно ❤
Спасибо за видео) Планируется ли разработка проекта в 2021, по типу клона телеграмм?
Постараюсь)
@@mr.developer на эту тему есть предложение. Видел на гитхабе репозиторий, где уже выложены 6-7 готовых клонов приложений (внешний вид без функционала вроде). Возможно вам будет проще разобрать готовый код, а не писать с нуля?
P.s нашёл репозиторий. Там появилось много нового. Да и в целом было бы интересно услышать разбор такого кода от опытного разработчика)
github.com/iampawan/FlutterExampleApps
Спасибо. Полезно!
Я думаю лучше перелопатить весь проект, чем локализацию делать в приложении, в котором она не предусмотрена в ТЗ и вообще никогда не планируется.
Тем более это не так долго, ведь это будет копи паст в основном. А если будешь сразу делать - потеряешь время даже если локализации не будет.
Да, сейчас я того же мнения. Слишком дорого выходит траты на локализацию. Сейчас мы делаем специальное расширение, для того чтобы можно было прикрутить локализацию.
Спасибо за видео.Коммент в поддержку!
+100500 👍👍👍👍👍👍 Огромное человеческое спасибо!
Благодарю за отзыв 🤝
Спасибо огромное!
Благодарю за отзыв 🤝
Спасибо за видео. Вопрос, сколько времени ушло на изучение flutter? Или по другому спрошу, за пол года реально до уровня джуна изучить? Я стартую с 1С
Привет, конечно можно. У вас хороший бекграунд, так, что даже не сомневайтесь 🙂
09:50 насчет использования AdaptiveTheme - автор не уточняет назначение пакета. Пакет "adaptive_theme" нужен в 1ю очередь только для автоматического выбора между только 2 и не более темами, светлая/темная, в соответствии с Системной темой, выбранной на устройстве. Если Вам надо большее количество тем, то этот пакет Вам не поможет. Вам просто надо будет их подключать к своим страницам при помощи обертки Builder. Если Вам не нужна адаптация под выбранную системную тему (светлая/темная), то вам и этот пакет также не нужен.
👀
очень информативно. большое спасибо.
Благодарю за отзыв 🤝
Спасибо большое! Третий совет вообще топ!
Благодарю за отзыв 🤝
искал данную инфу, спасибо!
Сотый лайк! Спасибо за видео, очень полезно!
Благодарю за отзыв 🤝
Привет! Использую в качестве state management`a GetX, но хотелось бы освоить BLoC. Не планируешь случайно записать курс по Блоку? Готов купить курс. Думаю это актуальная тема для новичков.
Привет, хороший выбор. Отдельного курса пока не планирую. Но я пишу пишу на Flutter, и там в конце курса буду использовать блок.
@@mr.developer Я правильно понял, это где игру пишешь?
Да
Спасибо очень полезно
Благодарю за отзыв 🤝
Очень полезное видео, спасибо! А не подскажешь как менять локализацию в интерфейсе, установленную таким образом?
Привет, спасибо), есть специальный метод Theme. set
@@mr.developer а смена локализации это разве тоже самое что смена темы?
А ошибка), S.load
@@mr.developer не совсем понятно, надо пробовать) переключение локализации правильным способом выглядит хорошо)
Сейчас я использую пакет easy_localization
Спасибо за видео. Советы интересные ! Хотел узнать, если делаешь быстрый прототип приложения, чтобы проверить идею, целесообразно ли возиться с темами, стилями и делать локализацию в отдельном файле или это у же второй этап когда идея приложения оказалась жизнеспособной?
Привет, все зависит от времени на изготовление прототипа
на 17 минуте смешно немного было )))) когда тема вроде светлая, а все темное, и это не вызывает вопросов и ... )))) отсюда можно сделать версию 2.1 вывода, стараться не использовать Copy-Paste в проекте )) вообще первые два совета, аплодирую стоя!!! полностью согласен. 3-ий может быть да, не сильно очевидным, паттерн называется декоратор, и действительно если проект будет иметь длительный жизненный цикл это может когда нибудь в будущем очень сильно пригодиться. Не вообще для всего конечно это стоит использовать, но да, если компонент используется многократно, то лучше сделать.
Когда записываешь видео без монтажа, бывает ошибаешься). Главное смысл понятен)
@@mr.developer да, да, не спорю ) просто интересна сама по себе работа мозга оправдывать несоответствие. чисто как феномен. претензий нет, все правильно было. Видео огонь! спасибо за контент.
Однозначно лайк и подписка! Советы топ! Да, столкнулся я недавно с deprecated easy_localization при переключении флаттера на стабильный канал... пришлось перелопачивать все на нативнй l10n а easy использует формат "appbar.title".tr()... в итоге целый день переписывал код на S.of(context)... 😂 цвета и темы я конечно не хардкодил у меня все в отдельном классе, но чувствую придется еще и темы подключать. p.s. после этого случая с deprecated easy стараюсь не использовать такие "облегчалки"
Сочувствую вам), по началу я тоже так делал)
@@mr.developer блин это мне 5 экранов и к ним 12 файлов с компонентами переписывать... 😱 а перед этим в темах еще разобраться надо будет... мда.. флаттер серьезно учит не говнокодить с самого начала
@@mr.developer Подскажите, если у меня в проекте 2 OutlinedButton разного цвета, определяю я в теме цвет этой кнопки, у второй копирую тему через контекст, как мне при смене темы допустим на черную у второй кнопки менять цвет? Где его определить, проверку где то сделать? (и таких элементов 3 штуки кнопка текст и разделитель и всех по 2 цвета)
Сделайте расширение от Color scheme
extension CustomThemeColor on ColorScheme {
Color get textColor =>
brightness == Brightness.light ? Colors.black : Colors.white;
}
В коде обратитесь:
Theme.of(context) .colorSchemе .textColor
Она будет вам возвращать цвет текста в зависимости от темы.
Всё очень хорошо описано и подробно донесено. Хотел только уточнить, чем плохо стандартное определение темы в MaterialApp. Там насколько я понял тоже есть и dark и light?
Здравствуйте, да ничем, как вам удобнее.
@@mr.developer понял, спасибо за видео и за плейлист по redux. Очень помогло!
Какой лучше использовать IDE для Flutter Dart ??
Привет, я использую преимущественно Android Studio. Но многие VSCode. Тут дело вкуса.
Пушка 🔥🔥🔥
круто!
Благодарю за отзыв)
а у вас нет видео как правильно структурировать проект? Папки и тд какие лучше создавать )
Да, вы правы это интересная тема, наверно сделаю отдельное видео)
@@mr.developer было бы здорово, если бы сделали. Я думаю оно будет очень актуальным для начинающих.
Подскажите, как Вы изучаете Flutter? С чего начать начать...
Здравствуйте, купите книгу по изучению flutter и идите по ней. После прочтения, поставьте сами себе задачу и попробуйте решить ее.
у Анжелы Ю есть неплохой курс для начинающих по флаттеру
Будут ли видео по нативу?
Добрый день , будут ли на канале выходить видео по типу telegram, только на flutter?
Будет, по крайней мере постараюсь.
А продолжение MVVM будет?
Здравствуйте, основные моменты я уже рассказал. Остальное, не так сложно.
Cпасибо, расскажешь как делать адаптивные приложения? когда пишем сразу под 3 платформы мобилки десктоп веб
пока Flutter for web очень далек от идеала
При работе с темами очень сложно найти места в material design для кастомизации. Попробуйте решить простую задачку: нужно задать цвет текста в appbar. Решается в 2 строки, но ответ нашел за час поиска в интернете (
👍
Третий пункт имеет аргументов и смысла
Этому видео почти год), скучаю уже многое поменялось)
Спойлер:
1. Делайте сразу локализацию
2. Выносите темы
3. Делайте обертки для сторонних виджетов
А на что ты нажимаешь чтобы у тебя вылазили подсказки??
ctrl + space
Я смену темной\светлой темы через ValueLitnable и Hive реализую
final kLightTheme = ThemeData.light().copyWith(
👍
Основной посыл ролика - делай то, за что тебе не платят, но когда-нибудь тебе это пригодится. Фишки хорошие, но это если ты знаешь что это тебе надо.
Сейчас многое поменялось, 😁
Покажи пожалуйста как добавить кнопку что бы менять локализацию.
S.load(Locale("en")).whenComplete(() {
// здесь что сделайте
});
Все через пакеты делается. Нет нужного пакета и что получится? А вы качество данных пакетов проверяли? Вдруг через ж написано все?
Все пакеты открыты, можно всегда посмотреть на гитхабе. Если, что то нет, пишите свой через платформу, вообще никаких проблем.) Также, можете любой пакет доработать и использовать локально.
Подскажите, есть ли для Android studio что-то вроде плагин в для Vs code awesome flutter snippets? Не могу найти такое похожее
Здравствуйте, за есть, он так и называется Flutter Snippets
@@mr.developer я его установил, но что-то не могу понять как быстро сгенерировать stateless виджет? в vs code работает, а в АS нет, подскажите?
У меня в студии генерится когда я набираю stl
По поводу последнего пункта. "Думаю, проблем с пробросом параметров не возникнет." - возникнет ) Как пробросить параметры с одного файла в другой и обратно? Хоть в общих чертах или киньте ссылку, где это понятно кто-то другой рассказал. Если нужно отслеживать состояние, то переносимый виджет вставлять в виджет с состоянием? Поймите, что большая часть вашей аудитории - новички, и этих деталей не хватает для того, чтобы ваши видео могла смотреть аудитория побольше.
Приму к сведению, спасибо 😊
Здравствуйте, срочный вопрос! В чем отличие ThemeData.dark().copyWith от ThemeData.light().copyWith и как реализовать смену тем в приложении? Заранее спасибо, 14:00
Привет, в первом случае вы перелпределяете тёмную тему, во втором светлую.
Theme.setTheme
@@mr.developer спасибо Вам
@@mr.developer ещё один вопрос. В файле themes какие имена для цветов я могу использовать? Кроме primaryColor и backgroundColor? Кастомные названия не подходят почему-то
Йоу , мужик , я так понимаю, курс по клону телеграмма закончился?
Клон получился?
@@alexandernifanin7366 Та не,я пока что не дошел до конца,просто говорят он баганный
Эх, видео настолько редко выходят, что я даже забыл его вчера посмотреть.
Жаль, что по MVVM видео пока нет, жаль, что Юрий перешёл на flutter.
Некоторые компании jetpack compose уже в проде используют.
MVVM и во флаттере используется
Нет
firebase_admob уже тоже deprecated
Да, все устарело)
Ребят, я новичок в флаттер, всё сделал как автор, но у меня ошибка. NoSuchMethodError: The getter 'app_bar_title' was called on null. Помогите пожалийста.
Вызываете титле а он null
Где ты изучал flutter
Книги, документация, ютуб
@@mr.developer а какие именно можете подсказать
Их очень много разных) Берите любой доступный курс
@@mr.developer ок
Пожалейте вашу клавиатуру :D
Базовые вещи для Android и IOS разработчика. Почему Flutter из коробки это не реализует - очень странно
Но все же, что за мем про жену?
🙈
кто-то уже побеждал локализацию в VS_code?
Что вы имеете ввиду?
@@mr.developer я только что попробовал сделать магию из части видео про локализацию. Правда не на базовом, в на своём проекте. После всех кодогенераций в новых файлах (из папки generator) ошибки. А еще приписки в файлах есть что их руками нельзя править.
Хз как быть(
@@valerijt4344 я оставил коммент под видосом на ресурс с гайдом, мне помогло, главное однозначно добиться генерации новых строк в классе S в l10n.dart, взятых из .arb файлов локализации, тогда можно будет из любого места в приложении при подключении l10n.dart использовать S и все сгенерившиеся строки
@@trahar спасибо
Зачем префикс "k" везде писать?
Маленькая k по правилам Dart , обозначает константу.
@@mr.developer уже неактуально
адаптив тэм блеать
🤷♂️
Мда
Развел болтологию на 25 минут, хотя это можно было в трех словах за 5 минут рассказать
🤣, так попробуйте расскажите...
он все и изложил в 5 минут, таймкоды в топе комментов висят, для вас же постарался человек, все обьяснил и показал как делается, найдут же все равно до чего докапаться
Благодарю за поддержку 🤝. Такие недовольные всегда будут. Из-за этого и в Российском сегменте очень мало обучающих видео. )
Спасибо большое за дельные советы джунам, продолжайте в том же духе) Лайк и подписка!
Благодарю вас за отзыв, очень приятно ☺️ 🤝