DevGang
Авторизоваться

Различия между Material и Cupertino в Flutter

Создание нативных приложений на платформах Android и iOS имеет решающее значение при разработке мобильных приложений. Flutter позволяет сделать это с помощью единой кодовой базы, однако понимание различных языков дизайна - Material Design для Android и Cupertino для iOS - имеет большое значение. В этой статье мы рассмотрим различия между Material и Cupertino в Flutter и то, как их применять для создания аутентичного и бесшовного пользовательского интерфейса на каждой платформе.

Определения

Material Design - это язык дизайна, разработанный компанией Google и направленный на создание современного, отзывчивого и визуально привлекательного пользовательского интерфейса для приложений Android. Он предлагает рекомендации по верстке, типографике, цветам, иконкам и анимации, обеспечивая единый внешний вид и восприятие приложений для Android. Компоненты Material Design в Flutter доступны через пакет material.dart.

Cupertino Design - это язык дизайна, созданный компанией Apple для iOS-приложений. Он подчеркивает чистую, минималистичную эстетику с вниманием к деталям, обеспечивая интуитивно понятный и удобный для пользователя интерфейс. Дизайн Cupertino Design предусматривает собственный набор компонентов, иконок и взаимодействий, обеспечивающих единообразие в приложениях iOS. В Flutter доступ к компонентам Cupertino можно получить с помощью пакета cupertino.dart.

Различия

Material Design и Cupertino Design имеют явные различия в плане внешнего вида, компонентов и моделей взаимодействия, что отражает уникальную философию дизайна Google и Apple.

  1. Визуальный облик: В Material Design используются живые цвета, тени и глубина, что придает элементам пользовательского интерфейса "бумажный" вид. Дизайн Cupertino Design, напротив, ориентирован на минимализм с использованием неярких цветов, плоских элементов и меньшего количества теней.
  2. Компоненты: Material Design и Cupertino Design предлагают различные наборы компонентов, адаптированные к соответствующим платформам. Например, в Material Design есть "плавающие кнопки действий" и "нижние навигационные панели", а в Cupertino Design используются "панели вкладок" и отсутствует аналог плавающей кнопки действий. Такие компоненты, как кнопки, диалоговые окна и слайдеры, также имеют различный внешний вид и анимацию на каждой платформе.
  3. Паттерны взаимодействия: Эти два языка дизайна имеют разные модели взаимодействия и стили навигации. В Material Design часто используются бегунки и делается акцент на движении и переходах. Дизайн Cupertino Design предпочитает навигацию на основе вкладок и делает акцент на прямом управлении, когда элементы экрана реагируют на жесты пользователя, такие как смахивание и отталкивание.
  4. Типографика и значки: В Material Design используется семейство шрифтов Roboto и значки Material Icons, в то время как в Cupertino Design - семейство шрифтов San Francisco и символы SF Symbols. Эти типографические и иконографические решения вносят свой вклад в общий вид и восприятие каждой платформы.

Несмотря на эти различия, обе системы дизайна нацелены на обеспечение последовательного и интуитивно понятного пользовательского опыта на соответствующих платформах. Понимание и внедрение принципов дизайна Material и Cupertino в Flutter позволяет разработчикам создавать более аутентичные и специфичные для конкретной платформы пользовательские интерфейсы для приложений на Android и iOS.

Примеры

Я продемонстрирую различия между языками дизайна Material и Cupertino в Flutter на двух простых примерах: кнопке и диалоговом окне оповещения.

Material

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(home: MyApp()));
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Material Example')),
      body: Center(
        child: ElevatedButton(
          onPressed: () => showDialog(
            context: context,
            builder: (BuildContext context) {
              return AlertDialog(
                title: Text('Material Alert Dialog'),
                content: Text('This is an example of a Material alert dialog.'),
                actions: [
                  TextButton(
                    child: Text('OK'),
                    onPressed: () => Navigator.of(context).pop(),
                  ),
                ],
              );
            },
          ),
          child: Text('Show Material Alert Dialog'),
        ),
      ),
    );
  }
}

Cupertino

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(CupertinoApp(home: MyApp()));
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      navigationBar: CupertinoNavigationBar(
        middle: Text('Cupertino Example'),
      ),
      child: Center(
        child: CupertinoButton(
          onPressed: () => showCupertinoDialog(
            context: context,
            builder: (BuildContext context) {
              return CupertinoAlertDialog(
                title: Text('Cupertino Alert Dialog'),
                content: Text('This is an example of a Cupertino alert dialog.'),
                actions: [
                  CupertinoDialogAction(
                    child: Text('OK'),
                    onPressed: () => Navigator.of(context).pop(),
                  ),
                ],
              );
            },
          ),
          child: Text('Show Cupertino Alert Dialog'),
          color: CupertinoColors.activeBlue,
        ),
      ),
    );
  }
}

Заключение

В заключение следует отметить, что языки дизайна Material и Cupertino являются основой для создания нативных интерфейсов на платформах Android и iOS соответственно. Каждый из них имеет свой уникальный внешний вид, компоненты, шаблоны взаимодействия, типографику и иконки, которые отражают философию дизайна Google и Apple. Понимание и реализация этих языков дизайна в Flutter очень важны для создания пользовательских интерфейсов с учетом специфики платформы и обеспечения аутентичного и бесшовного пользовательского опыта на обеих платформах. Используя компоненты из пакетов material.dart и cupertino.dart, разработчики могут эффективно применять различные принципы дизайна Material и Cupertino, гарантируя, что их приложения будут чувствовать себя комфортно как на устройствах Android, так и на iOS.

Источник:

#Начинающим #Flutter
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу