TGViewer
Flutter. Много Flutter. Много @flutter_amiga · 2.96K subscribers
Post #77 1.5K
Отвечаем на вопросы, ч.1

Hola, Amigos! С вами Антон Мартышков, Flutter-dev Amiga. Я собрал список вопросов из того-самого-поста, и теперь отвечаю на них. Поехали!

1. "Часто в примерах конфигурации вида темы цветов, текстов и остальное выводят в константы. Вопрос: насколько производительнее иметь эти данные в статике константной, нежели генерировать в рантайме по необходимости. Зачем вообще хранить статично эти свойства, если есть вероятность, что обращения к ним не будет."

Нужно стараться прописывать все цвета, шрифт и прочее в тему (ThemeData). Такой подход позволит избежать лишних ручных вставок цвета или шрифта в UI, так как они подтянутся из темы. Где нужно, там их можно будет переопределять. Если в приложении нужно реализовывать другие цветовые схемы по типу день-ночь, такой подход знатно сократит время и качество ее реализации. Если у вас очень много цветов, то это вопрос к профессионализму дизайнера или оптимизации дизайна. Обычно в UI-kit используется 20-30 цветов.

К вопросу про производительность. Theme — это InheritedWidget, поэтому все, что в нем проинициализированы, будет в едином экземпляре и доступно через контекст. Создание экземпляров класса Color так же не является трудозатратной операцией, еще и сборщик мусора потом эти экземпляры удалит. Это, скорее, вопрос удобства и дальнейшей поддержки реализованного вами подхода для стилизации приложения. Можно и в каждом виджете прописывать цвета, шрифты, но когда вы столкнетесь с необходимость перехода на новый дизайн, будет тяжело.

Такая же ситуация и с локализацией. Лучше сразу, даже если заказчик уверен, что он не будет добавлять поддержку иных языков в приложение, занести все, чем потом рыться в коде, искать и выносить каждую строку.

2. "Второй вопрос про статичные функции. Част часто вижу их применение. Есть ли разница для приложения при использовании статичных функций, а не функций объекта. Можно объявить статик функцию и вызвать MyClass.foo();. Но с таким же успехом можно создать объект класса и вызвать у него функцию. А после необходимости он исчезнет из памяти MyClass().foo()"

Спасибо за вопрос. Конечно, влияние будет, но зависит от того, что делает эта самая foo(). Скажем, провести какие-нибудь манипуляции с массивом вряд ли проблема. А вот инициализировать СДК, который редко используется, я бы не стал,. Тут лучше сделать по принципу: нужно? -> инициализируем -> используем -> освобождаем место.

3. Влияет ли статика на финальный продукт, если да, то как?

Любой инструмент, который используется неправильно, скорее всего, окажет негативное влияние на продукт. Если не инициализировать тот же СДК как статик, и не выносить бизнес-логику, то видимого влияния на продукт вы не получите. Лучше бы конечно, привести примеры.

Надеюсь, я правильно понял ваши вопрос и дал четкие ответы, если что, пишите. Удачи!
  • 🔥 16
  • 👍 3
  • ❤ 2
More from @flutter_amiga
  1. Sep 9, 2026AI BOOST’26: выручка падает — что делают крупные digital-агентства и при чем здесь AI 22–2…
  2. Aug 18, 2026Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead в Amiga. Сегодня посмотрим на чек-…
  3. Aug 13, 2026Hola, Amigos! Сегодня вышли Flutter 3.47 и Dart 3.13. Давайте вместе разберемся, что в них…
  4. Jul 31, 2026Дайджест июля Hola, Amigos! Собрали в одну подборку все полезные посты июля, которые вы мо…
  5. Jul 28, 2026Hola, Amigos! Сегодня посмотрим на один пакет, который может быть полезен в разработке - p…
  6. Jul 24, 2026Hola, Amigos! Сегодня мы вводим новую рубрику - обзоры правил для статического анализатора…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →