Ответ
Skia — это высокопроизводительная кроссплатформенная 2D-графическая библиотека с открытым исходным кодом, разработанная Google. Flutter использует Skia в качестве движка для рендеринга всего пользовательского интерфейса.
Роль Skia во Flutter:
- Отрисовка: Каждый виджет Flutter в конечном итоге преобразуется в набор графических примитивов (рисунков, текста, теней), которые отрисовываются с помощью Skia.
- Аппаратное ускорение: Skia использует GPU (через OpenGL, Vulkan, Metal или DirectX) для быстрой отрисовки, что обеспечивает плавную анимацию в 60/120 FPS.
- Кроссплатформенность: Поскольку Flutter сам рисует UI, а не использует нативные компоненты, Skia позволяет иметь идентичный внешний вид и поведение на iOS, Android, Web и Desktop.
Прямая работа с Skia во Flutter:
Вы можете использовать низкоуровневый API рисования через класс CustomPainter:
class MyCirclePainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
// Canvas предоставляется движком Skia
final paint = Paint()
..color = Colors.blue
..style = PaintingStyle.fill;
// Рисуем круг, используя примитивы Skia
canvas.drawCircle(Offset(size.width / 2, size.height / 2), 50.0, paint);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
}
// Использование в UI
CustomPaint(
size: const Size(200, 200),
painter: MyCirclePainter(),
)
Благодаря Skia, Flutter обеспечивает полный контроль над пикселями на экране и высокую производительность графики.