Flutter
Фреймворк Google для приложений под iOS, Android, веб и компьютеры из одного кода на языке Dart с собственной отрисовкой интерфейса.
Flutter — фреймворк Google для создания приложений сразу под несколько платформ: iOS, Android, веб, Windows, macOS и Linux. Первая стабильная версия вышла в декабре 2018 года. Приложения пишут на языке Dart, а интерфейс Flutter рисует сам, пиксель за пикселем, своим графическим движком, а не через системные элементы. Поэтому приложение выглядит одинаково на всех устройствах.
Пример
class OrderCard extends StatelessWidget {
const OrderCard({super.key, required this.number, required this.onPay});
final int number;
final VoidCallback onPay;
@override
Widget build(BuildContext context) {
return Card(
child: ListTile(
title: Text("Заказ № $number"),
trailing: ElevatedButton(onPressed: onPay, child: const Text("Оплатить")),
),
);
}
}
Во Flutter все — виджеты: карточка, строка списка, кнопка, отступы. Экран собирается из вложенных виджетов, как интерфейс в React — из компонентов.
Чем Flutter отличается от React Native
| Flutter | React Native | |
|---|---|---|
| Язык | Dart | JavaScript / TypeScript |
| Интерфейс | Рисует сам, одинаково везде | Системные элементы каждой платформы |
| Близость к вебу | Отдельный стек | Общие знания и код с React |
| Платформы | Мобильные, веб, настольные | В основном мобильные |
Плюсы
- Предсказуемый интерфейс. Дизайн выглядит одинаково на любом телефоне — не нужно подстраиваться под особенности версий Android.
- Производительность. Код компилируется в машинные команды, анимации плавные.
- Быстрая разработка. Горячая перезагрузка показывает изменения за доли секунды без потери состояния экрана.
- Много платформ из одного кода, включая настольные приложения.
Ограничения
- Dart — менее распространенный язык, чем JavaScript, а значит, меньше рынок разработчиков.
- Приложения получаются больше по размеру из-за встроенного движка.
- Чтобы приложение выглядело «как родное» для iOS или Android, нужна дополнительная работа: Flutter по умолчанию рисует свой стиль.
- Доступ к специфичным функциям устройства иногда требует нативного кода на Kotlin или Swift.
Flutter в России
Помимо iOS и Android, для российской мобильной операционной системы «Аврора» существует адаптированная версия Flutter, что упрощает выпуск приложений для корпоративных и государственных устройств на этой ОС. Выбор между Flutter и React Native обычно определяется командой: есть ли сильные веб-разработчики на React и нужны ли приложения на других платформах, кроме iOS и Android.