Для чего нужен виджет Icon в Flutter?

«Для чего нужен виджет Icon в Flutter?» — вопрос из категории UI и вёрстка, который задают на 29% собеседований Flutter Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Виджет Icon в Flutter используется для отображения векторных иконок в пользовательском интерфейсе. В моих проектах я применяю иконки для:

1. Визуальной коммуникации действий:

FloatingActionButton(
  onPressed: () {},
  child: Icon(Icons.add), // Чётко обозначает действие "добавить"
)

2. Навигации и указания:

AppBar(
  leading: IconButton(
    icon: Icon(Icons.arrow_back),
    onPressed: () => Navigator.pop(context),
  ),
)

3. Отображения статусов:

Row(
  children: [
    Icon(
      task.isCompleted ? Icons.check_circle : Icons.radio_button_unchecked,
      color: task.isCompleted ? Colors.green : Colors.grey,
    ),
    Text(task.title),
  ],
)

Доступные наборы иконок:

  • Icons — Material Design иконки (более 1800 штук)
  • CupertinoIcons — iOS-стиль иконки
  • Кастомные иконки через Icon.asset() с SVG или шрифтовыми файлами

Почему именно Icon, а не Image:

  • Векторное масштабирование — иконки чётко выглядят на любом разрешении.
  • Лёгкая кастомизация — можно менять цвет, размер, тень через параметры.
  • Независимость от плотности пикселей — не нужны 1x, 2x, 3x версии.
  • Меньший размер приложения — шрифтовые иконки весят меньше растровых изображений.

В последнем проекте я создал кастомный набор иконок через flutter_icons для брендинга, что позволило сохранить единый стиль во всём приложении.