Где применяется MaterialApp?

«Где применяется MaterialApp?» — вопрос из категории Flutter виджеты, который задают на 29% собеседований Flutter Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

MaterialApp — это корневой виджет, который настраивает инфраструктуру приложения под дизайн-систему Material. Я использую его для:

  • Навигации: Объявления именованных маршрутов (routes) или генерации их на лету (onGenerateRoute).
  • Темы: Задания единой светлой или темной темы (theme, darkTheme) для всех дочерних виджетов.
  • Локализации: Подключения поддержки нескольких языков через localizationsDelegates.
  • Глобальных настроек: Указания заголовка приложения (title), который виден в меню переключения задач, и управления отладочной баннерной меткой.

Пример минимальной структуры:

void main() => runApp(
  MaterialApp(
    theme: ThemeData(primarySwatch: Colors.blue),
    home: MyHomePage(),
  ),
);

Для приложений под iOS с нативным look & feel можно использовать CupertinoApp.