Открывая любое приложение, скорее всего вы там увидите одну или 2 иконки. Но откуда они, и как добавить свои кастомные иконки? В Flutter вы можете работать с иконками, используя три основных подхода:
1️⃣ Иконки из шрифтов (Icon Fonts) — встроенные иконки, такие как Material Icons.
2️⃣ SVG-иконки — обработка с помощью пакета flutter_svg
3️⃣ Векторная графика — использование vector_graphics для более быстрого рендеринга.
Предлагаю сравнить эти варианты и рассмотреть, когда и где использовать каждый из них.
🔸Иконки из шрифтов (Icon Fonts)
Иконки из шрифтов — это символы в формате шрифтов, например, Material Icons:
Icon(Icons.home, size: 32, color: Colors.blue)
Можно использовать кастомные шрифты с иконками. Например, с помощью IcoMoon:
1. Генерируем файл
.ttf с иконками.2. Подключаем в
pubspec.yaml:
flutter:
fonts:
- family: CustomIcons
fonts:
- asset: assets/fonts/CustomIcons.ttf
3. Используем:
const Text(
'\uE900',
style: TextStyle(fontFamily: 'CustomIcons', fontSize: 32),
),
🔸SVG-иконки с flutter_svg:
Для кастомных иконок в векторном формате используем пакет
flutter_svg:import 'package:flutter_svg/flutter_svg.dart';
SvgPicture.asset(
'assets/icons/home.svg',
width: 32,
height: 32,
colorFilter: ColorFilter.mode(Colors.blue, BlendMode.srcIn),
)
🔸Векторная графика (Vector Graphics)
Для повышения производительности конвертируем SVG в формат vector_graphics. Он рендерится быстрее.
import 'package:vector_graphics/vector_graphics.dart';
VectorGraphic(
assetName: 'assets/icons/home.vec',
width: 32,
height: 32,
)
Что выбрать?
✅Icon Fonts — для стандартных иконок с высокой производительностью.
✅Flutter SVG — для кастомных и анимированных иконок.
✅Vector Graphics — для максимальной скорости рендеринга.
Какой метод используете вы? Делитесь в комментариях! 🚀
