Flutter: рисует всё сам
Flutter — фреймворк от Google (2018), позволяющий создавать приложения для iOS, Android, веб, Windows, macOS и Linux из единой кодовой базы. Его главная особенность — он не использует нативные компоненты платформы, а рисует весь интерфейс сам с помощью собственного движка (Skia/Impeller).
Dart
Flutter использует язык Dart, созданный Google. Статически типизированный, с синтаксисом похожим на Java/JavaScript. Компилируется в нативный код (AOT-компиляция) для максимальной производительности. Поддерживает горячую перезагрузку (Hot Reload) — изменения видны мгновенно без перезапуска.
Виджеты — всё виджеты
В Flutter всё — виджет. Текст — виджет. Кнопка — виджет. Отступ — виджет. Центрирование — виджет. Интерфейс — дерево вложенных виджетов. Это непривычно поначалу, но обеспечивает предсказуемость и гибкость.
Виджеты бывают Stateless (неизменяемые) и Stateful (с изменяемым состоянием). Material Design (Google) и Cupertino (Apple) компоненты — готовые библиотеки виджетов.
Преимущества
Единый рендеринг — приложение выглядит одинаково на всех платформах (плюс или минус — в зависимости от задачи). Высокая производительность — 60/120 fps стабильно. Hot Reload — мгновенный предпросмотр изменений. Богатые UI-возможности — кастомный дизайн без ограничений нативных компонентов.
Ограничения
Dart — менее распространённый язык. Размер приложения больше нативного. Интеграция с нативными API требует плагинов или написания платформо-специфичного кода. Веб-поддержка менее зрелая, чем мобильная.
