Что такое Cupertino в контексте Flutter?

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

Ответ

Cupertino — это библиотека виджетов Flutter, реализующая дизайн-систему iOS (Human Interface Guidelines). Эти виджеты визуально соответствуют нативным iOS-компонентам.

Основные виджеты:

  • CupertinoApp — корневой виджет вместо MaterialApp
  • CupertinoNavigationBar — навигационная панель iOS-стиля
  • CupertinoButton — кнопка с iOS-анимацией
  • CupertinoPicker — колесо выбора
  • CupertinoSwitch — переключатель
  • CupertinoActivityIndicator — индикатор загрузки

Пример использования CupertinoApp:

import 'package:flutter/cupertino.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const CupertinoApp(
      title: 'iOS Style App',
      home: CupertinoPageScaffold(
        navigationBar: CupertinoNavigationBar(
          middle: Text('Home'),
        ),
        child: Center(
          child: CupertinoButton(
            onPressed: () {},
            child: Text('Press Me'),
          ),
        ),
      ),
    );
  }
}

Когда использовать:

  1. При разработке iOS-эксклюзивных приложений
  2. Для кросс-платформенных приложений, где нужен нативный iOS-вид на Apple-устройствах
  3. При создании дизайн-системы, адаптирующейся под платформу

Важно: Cupertino-виджеты работают на всех платформах, но визуально оптимизированы под iOS. Для адаптивного дизайна часто используют Platform.isIOS проверку для выбора между Material и Cupertino.