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