Flutter

Фреймворк Google для приложений под iOS, Android, веб и компьютеры из одного кода на языке Dart с собственной отрисовкой интерфейса.

Flutter — фреймворк Google для создания приложений сразу под несколько платформ: iOS, Android, веб, Windows, macOS и Linux. Первая стабильная версия вышла в декабре 2018 года. Приложения пишут на языке Dart, а интерфейс Flutter рисует сам, пиксель за пикселем, своим графическим движком, а не через системные элементы. Поэтому приложение выглядит одинаково на всех устройствах.

Пример

// 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.