Перейти к содержимому

Cross-Platform Design Evaluation System

Объединяет: iOS Human Interface Guidelines + Material Design 3 + Android Design Guidelines Версия: 1.0 | Февраль 2025 Назначение: AI-оценка мобильных дизайн-макетов для iOS и Android


Этот документ предоставляет единую систему оценки дизайн-макетов для:

  • Валидации соответствия платформенным гайдлайнам
  • Выявления несоответствий между iOS и Android версиями
  • Обеспечения консистентности кросс-платформенного дизайна
  • Автоматизированной проверки через AI
┌─────────────────────────────────────────────────────────────┐
│ CROSS-PLATFORM BASELINE │
│ (Общие требования для обеих платформ) │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ iOS Layer │ │ Android Layer │ │
│ │ (Apple HIG specs) │ │ (MD3 + Android) │ │
│ └─────────────────────┘ └─────────────────────┘ │
│ │
├─────────────────────────────────────────────────────────────┤
│ PLATFORM DELTA ANALYSIS │
│ (Различия, требующие адаптации) │
└─────────────────────────────────────────────────────────────┘
УровеньКатегорияВлияние
🔴 CriticalAccessibility, Touch TargetsБлокирующие ошибки
🟠 HighNavigation, TypographyСерьёзные проблемы UX
🟡 MediumColors, SpacingЗаметные несоответствия
🟢 LowAnimations, EffectsКосметические улучшения

ПараметрiOSAndroidCross-Platform Minimum
Minimum touch target44×44 pt48×48 dp48×48 (используем больший)
Spacing between targets8 pt8 dp8
Touch target для иконок44×44 pt48×48 dp48×48

Правило: Всегда использовать больший из двух стандартов = 48×48.

┌─────────────────────────────────────────┐
│ TOUCH TARGET VALIDATION │
│ │
│ ✓ Width ≥ 48 │
│ ✓ Height ≥ 48 │
│ ✓ Spacing to adjacent target ≥ 8 │
│ │
│ Visual size может быть меньше, │
│ но tap area должен соответствовать │
└─────────────────────────────────────────┘
КонтентiOSAndroidCross-Platform
Normal text4.5:14.5:14.5:1
Large text (≥18pt/24dp bold)3:13:13:1
UI components, icons3:13:13:1
Enhanced accessibility7:17:17:1

WCAG 2.1 AA — обязательный стандарт для обеих платформ.

ЭлементiOSAndroidCross-Platform
Absolute minimum11 pt12 sp12
Body text default17 pt16 sp16-17
Caption/label minimum11-12 pt11-12 sp12
FeatureiOSAndroidТребование
Screen readerVoiceOverTalkBackОбязательно
Dynamic text scalingDynamic TypeFont scalingОбязательно
Reduce motionReduce MotionRemove animationsОбязательно
High contrastIncrease ContrastHigh contrastРекомендуется
Color independenceОбязательно

3. Comparative Specifications (Сравнительные спецификации)

Заголовок раздела «3. Comparative Specifications (Сравнительные спецификации)»
ПлатформаЕдиницаОписание
iOSpt (points)1pt = 1px (@1x), 2px (@2x), 3px (@3x)
Androiddp (density-independent pixels)1dp = 1px (mdpi), 2px (xhdpi), 3px (xxhdpi)

Конвертация: 1 pt ≈ 1 dp (практически эквивалентны)

┌─────────────────────────────────────────────────────────────────────────┐
│ iOS │
├─────────────────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Status Bar (54pt Dynamic Island) │ │
│ ├─────────────────────────────────────────────────────────────────────┤ │
│ │ Navigation Bar (44-96pt) │ │
│ ├─────────────────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ CONTENT AREA │ │
│ │ │ │
│ ├─────────────────────────────────────────────────────────────────────┤ │
│ │ Tab Bar (49pt + 34pt Home Indicator = 83pt) │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ Android │
├─────────────────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Status Bar (~24dp) │ │
│ ├─────────────────────────────────────────────────────────────────────┤ │
│ │ Top App Bar (64dp) │ │
│ ├─────────────────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ CONTENT AREA │ │
│ │ │ │
│ ├─────────────────────────────────────────────────────────────────────┤ │
│ │ Navigation Bar (80dp) / Gesture Nav (~48dp) │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
КомпонентiOSAndroidDelta
Top Bar (standard)44 pt64 dpAndroid +20
Top Bar (large title)96 pt152 dpAndroid +56
Bottom Navigation49 pt (+34 home) = 83 pt80 dpiOS +3
Status Bar54 pt (Dynamic Island)~24 dpiOS +30
System gesture area34 pt (bottom)24-48 dp (bottom)Similar
StyleiOSAndroid (MD3)Difference
Body17 pt Regular16 sp / 400iOS +1
Headline17 pt Semibold24 sp / 400Different purpose
Title (large)34 pt Bold22-28 spDifferent scale
Caption12 pt Regular12 sp / 400Same
Label10-11 pt11-12 spSimilar
ПлатформаPrimary FontWeightsSerif Option
iOSSF Pro9 weightsNew York
AndroidRoboto6 weightsRoboto Serif
Semantic RoleiOS Text StyleMD3 Text Style
Large displayLarge Title (34pt)Display Large (57sp)
Page titleTitle 1 (28pt)Headline Large (32sp)
Section headerTitle 2-3 (20-22pt)Title Large/Medium (22sp)
List itemBody (17pt)Body Large (16sp)
SecondarySubheadline (15pt)Body Medium (14sp)
CaptionCaption 1-2 (11-12pt)Label Small (11sp)
Tab label10pt Medium12sp Medium
RoleiOSAndroid (MD3)
Primary actionsystemBlue (#007AFF)Primary (custom)
DestructivesystemRed (#FF3B30)Error (#B3261E)
SuccesssystemGreen (#34C759)(custom)
WarningsystemOrange (#FF9500)(custom)
BackgroundsystemBackgroundSurface
Text primarylabelOn Surface
Text secondarysecondaryLabelOn Surface Variant
LeveliOS LightiOS DarkMD3 LightMD3 Dark
Base#FFFFFF#000000#FFFBFE#1C1B1F
Elevated#F2F2F7#1C1C1ESurface ContainerSurface Container
Card#FFFFFF#1C1C1ESurface Container LowSurface Container Low
ComponentiOSAndroidCross-Platform Target
Button height50 pt40 dp44-50 (context-dependent)
FAB56 dpAndroid-only
Text Field44 pt56 dp48-56
Switch51×31 pt52×32 dpSimilar
Checkbox— (use switch)18×18 dpPlatform-specific
List row44 pt min48-88 dp48 min
Segmented Control32 pt48 dp (Chips)Platform-specific
Card corner radius10-16 pt12 dp12-16
Dialog corner radius14 pt28 dpPlatform-specific
ParameteriOSAndroidCross-Platform
Base unit8 pt8 dp8
Fine unit4 pt4 dp4
Margin (compact)16 pt16 dp16
Margin (regular)20 pt24 dp20-24
Gutter8-16 pt16-24 dp16

4. Platform-Specific Patterns (Платформо-специфичные паттерны)

Заголовок раздела «4. Platform-Specific Patterns (Платформо-специфичные паттерны)»
AspectiOSAndroid
Primary navigationTab Bar (bottom)Navigation Bar / Rail / Drawer
Back actionLeft chevron + swipe from left edge← arrow + system back
Back gestureSwipe from left edgeSwipe from left/right edge
Predictive backPreview destination (Android 14+)
Tab switchingInstantInstant
Navigation depthPush/Pop stackFragment/Activity stack
  • Large Title (collapsing on scroll)
  • Pull-to-refresh (native)
  • Swipe actions on list items (leading/trailing)
  • Edge swipe for back
  • Navigation Drawer (hamburger menu)
  • Navigation Rail (tablets)
  • FAB (Floating Action Button)
  • Bottom Sheet (persistent)
  • Snackbar
  • Predictive Back animation
TypeiOSAndroid
Full screenFull Screen ModalActivity / Full screen dialog
Page sheetPage Sheet (default)Bottom Sheet
Half screenSheet with .medium detentBottom Sheet
AlertUIAlertControllerAlertDialog
Action choicesAction Sheet (bottom)Bottom Sheet / Dialog
PopoverPopover (iPad)Menu / Dropdown
ControliOSAndroid
Binary toggleSwitchSwitch
Single selection (list)Checkmark (✓)Radio Button
Multiple selectionCheckmarksCheckbox
Segment selectionSegmented ControlChips / Tabs
Date pickerWheel / CalendarCalendar / Input
Time pickerWheelClock / Input
AspectiOSAndroid
Default row height44 pt48-88 dp
Separator styleInset lineFull-width or none
Grouped styleRounded cardsCards or dividers
Swipe actionsNativeNative (MD3)
Selection indicatorCheckmark rightCheckbox left
Disclosure indicatorChevron right— (implicit)

design-tokens/
├── core/
│ ├── colors.json # Brand colors (platform-agnostic)
│ ├── typography.json # Font families, base sizes
│ └── spacing.json # 4/8 grid values
├── semantic/
│ ├── colors.json # Primary, secondary, error, etc.
│ ├── surfaces.json # Background levels
│ └── text.json # Text color roles
├── platforms/
│ ├── ios/
│ │ ├── colors.json # iOS semantic mapping
│ │ ├── typography.json # iOS text styles
│ │ └── components.json # iOS-specific sizes
│ └── android/
│ ├── colors.json # MD3 color roles
│ ├── typography.json # MD3 type scale
│ └── components.json # MD3 component specs
└── components/
├── button.json
├── input.json
└── ...
{
"color": {
"primary": {
"value": "#0066CC",
"ios": "systemBlue or custom",
"android": "md.sys.color.primary"
},
"background": {
"default": {
"ios": "systemBackground",
"android": "md.sys.color.surface"
},
"elevated": {
"ios": "secondarySystemBackground",
"android": "md.sys.color.surface-container"
}
},
"text": {
"primary": {
"ios": "label",
"android": "md.sys.color.on-surface"
},
"secondary": {
"ios": "secondaryLabel",
"android": "md.sys.color.on-surface-variant"
}
}
}
}
{
"typography": {
"display": {
"ios": { "style": "largeTitle", "size": 34, "weight": "bold" },
"android": { "style": "displayLarge", "size": 57, "weight": 400 }
},
"headline": {
"ios": { "style": "title1", "size": 28, "weight": "bold" },
"android": { "style": "headlineLarge", "size": 32, "weight": 400 }
},
"body": {
"ios": { "style": "body", "size": 17, "weight": "regular" },
"android": { "style": "bodyLarge", "size": 16, "weight": 400 }
},
"caption": {
"ios": { "style": "caption1", "size": 12, "weight": "regular" },
"android": { "style": "labelSmall", "size": 11, "weight": 500 }
}
}
}
{
"component": {
"button": {
"height": {
"ios": 50,
"android": 40,
"crossPlatform": 48
},
"cornerRadius": {
"ios": 12,
"android": 20,
"note": "Platform-specific (iOS rounded rect, Android stadium)"
},
"minTouchTarget": 48
},
"input": {
"height": {
"ios": 44,
"android": 56,
"crossPlatform": 48
}
},
"listRow": {
"minHeight": {
"ios": 44,
"android": 48,
"crossPlatform": 48
}
}
}
}

ScoreDescriptionAction
100Fully compliantNone
80-99Minor issuesRecommendations
60-79Moderate issuesRequired fixes
40-59Significant issuesMajor revision needed
0-39Critical failuresRedesign required
CategoryWeightRationale
Accessibility25%Legal/ethical requirement
Touch Targets20%Core usability
Typography15%Readability
Navigation15%Information architecture
Color & Contrast10%Visual hierarchy
Layout & Spacing10%Visual polish
Platform Compliance5%Native feel
ACCESSIBILITY
□ All text meets 4.5:1 contrast (normal) or 3:1 (large)
□ All interactive elements have accessibility labels
□ Color is not the only means of conveying information
□ Dynamic Type / Font scaling is supported
□ Screen reader navigation is logical
TOUCH TARGETS
□ All tappable elements ≥ 48×48
□ Spacing between targets ≥ 8
□ No overlapping touch areas
NAVIGATION
□ iOS: Tab Bar ≤ 5 items
□ Android: Navigation Bar 3-5 items (7 max with rail)
□ Back navigation is clear and consistent
□ Current location is always indicated
□ Navigation depth ≤ 3-4 levels typical
TYPOGRAPHY
□ Body text 16-17 pt/sp
□ Minimum text ≥ 12 pt/sp
□ Type hierarchy is clear (max 3 levels per screen)
□ Line length 40-80 characters
□ Text styles used (not arbitrary sizes)
LAYOUT
□ Safe areas respected (status bar, home indicator, notch)
□ Margins consistent (16 minimum)
□ Grid alignment (8pt/dp base)
□ Content doesn't touch edges
□ Scrollable areas have proper insets
COLORS
□ Semantic colors used appropriately
□ Dark mode supported and tested
□ Brand colors don't override critical UI
□ Error/success/warning states clear
PLATFORM COMPLIANCE
□ iOS: Uses iOS-native patterns (sheets, tab bar style)
□ Android: Uses MD3 patterns (FAB, navigation drawer)
□ Icons match platform style (SF Symbols vs Material Symbols)
□ Animations follow platform conventions
□ Haptic feedback appropriate
POLISH
□ Loading states present
□ Empty states designed
□ Error states designed
□ Transitions smooth
□ Visual consistency across screens

# Cross-Platform Design Evaluation Report
## Project: [Name]
## Date: [Date]
## Evaluator: AI / [Name]
---
## Executive Summary
- Overall Score: [X]/100
- iOS Compliance: [X]%
- Android Compliance: [X]%
- Critical Issues: [N]
- Recommendations: [N]
---
## Critical Issues (Must Fix)
### Issue 1: [Title]
- **Severity:** Critical
- **Platform:** Both / iOS / Android
- **Location:** [Screen/Component]
- **Current:** [Description]
- **Required:** [Specification]
- **Fix:** [Recommendation]
---
## Platform Comparison Matrix
| Aspect | iOS Design | Android Design | Status |
|--------|------------|----------------|--------|
| Touch Targets | [Value] | [Value] | ✓/✗ |
| Typography | [Value] | [Value] | ✓/✗ |
| Navigation | [Pattern] | [Pattern] | ✓/✗ |
| Colors | [System] | [System] | ✓/✗ |
---
## Detailed Findings
### Accessibility
[Findings]
### Touch Targets
[Findings]
### Typography
[Findings]
### Navigation
[Findings]
### Layout
[Findings]
### Colors
[Findings]
---
## Recommendations
### High Priority
1. [Recommendation]
2. [Recommendation]
### Medium Priority
1. [Recommendation]
### Low Priority
1. [Recommendation]
---
## Appendix: Screenshots with Annotations
[Annotated screenshots highlighting issues]

┌─────────────────────────────────────────────────────────────┐
│ UNIVERSAL MINIMUMS │
├─────────────────────────────────────────────────────────────┤
│ │
│ Touch Target: 48 × 48 │
│ Touch Spacing: 8 │
│ Text Minimum: 12 │
│ Body Text: 16-17 │
│ Margins: 16 │
│ Grid Unit: 8 (fine: 4) │
│ Contrast (text): 4.5:1 │
│ Contrast (UI): 3:1 │
│ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ iOS SPECIFICS │
├─────────────────────────────────────────────────────────────┤
│ │
│ Status Bar: 54pt (Dynamic Island) │
│ Nav Bar: 44pt (small) / 96pt (large) │
│ Tab Bar: 49pt + 34pt home = 83pt │
│ Home Indicator: 34pt bottom area │
│ │
│ Touch Target: 44×44pt (use 48 for cross-platform) │
│ Body Font: 17pt SF Pro │
│ Tab Label: 10pt Medium │
│ │
│ Primary Color: systemBlue (#007AFF) │
│ Background: systemBackground │
│ │
│ Back Gesture: Swipe from LEFT edge only │
│ Icons: SF Symbols (filled for tab bar) │
│ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ ANDROID SPECIFICS │
├─────────────────────────────────────────────────────────────┤
│ │
│ Status Bar: ~24dp │
│ Top App Bar: 64dp (small) / 152dp (large) │
│ Nav Bar: 80dp (3-button) / 48dp (gesture) │
│ Gesture Handle: ~20dp area │
│ │
│ Touch Target: 48×48dp │
│ Body Font: 16sp Roboto │
│ Nav Label: 12sp Medium │
│ │
│ FAB: 56dp (standard) / 96dp (large) │
│ Button Height: 40dp │
│ Card Radius: 12dp │
│ │
│ Back Gesture: Swipe from LEFT or RIGHT edge │
│ Icons: Material Symbols │
│ │
│ Columns: 4 (compact) / 8 (medium) / 12 (expanded)│
│ │
└─────────────────────────────────────────────────────────────┘
┌────────────────────────┬────────────────────────┐
│ iOS │ Android │
├────────────────────────┼────────────────────────┤
│ Points (pt) │ Density-independent │
│ │ pixels (dp/sp) │
├────────────────────────┼────────────────────────┤
│ SF Pro │ Roboto │
├────────────────────────┼────────────────────────┤
│ Tab Bar (bottom) │ Nav Bar/Rail/Drawer │
├────────────────────────┼────────────────────────┤
│ Navigation Bar (top) │ Top App Bar │
├────────────────────────┼────────────────────────┤
│ Sheets │ Bottom Sheets │
├────────────────────────┼────────────────────────┤
│ Action Sheet │ Bottom Sheet / Dialog │
├────────────────────────┼────────────────────────┤
│ Alert │ Dialog │
├────────────────────────┼────────────────────────┤
│ Switch │ Switch │
├────────────────────────┼────────────────────────┤
│ Segmented Control │ Chips / Tabs │
├────────────────────────┼────────────────────────┤
│ — (no equivalent) │ FAB │
├────────────────────────┼────────────────────────┤
│ — (no equivalent) │ Snackbar │
├────────────────────────┼────────────────────────┤
│ Checkmark (✓) │ Radio / Checkbox │
├────────────────────────┼────────────────────────┤
│ SF Symbols │ Material Symbols │
├────────────────────────┼────────────────────────┤
│ Large Title collapse │ Collapsing Toolbar │
├────────────────────────┼────────────────────────┤
│ Dynamic Type │ Font scaling + sp │
├────────────────────────┼────────────────────────┤
│ Dark Mode │ Dark Theme + │
│ │ Dynamic Color │
└────────────────────────┴────────────────────────┘

Analyze this mobile design mockup against cross-platform guidelines:
1. IDENTIFY platform (iOS/Android/both)
2. CHECK critical requirements:
- Touch targets ≥ 48×48
- Text contrast ≥ 4.5:1
- Minimum text ≥ 12pt/sp
- Accessibility labels present
3. VERIFY platform compliance:
- iOS: HIG patterns (tab bar, navigation bar, sheets)
- Android: MD3 patterns (nav bar/rail, FAB, bottom sheets)
4. REPORT findings with:
- Severity (Critical/High/Medium/Low)
- Location (screen/component)
- Current value vs. Required value
- Specific fix recommendation
5. CALCULATE compliance score (0-100)
Audit all interactive elements for touch target compliance:
For each tappable element:
1. Measure visual size
2. Determine touch target area
3. Check: touch area ≥ 48×48?
4. Check: spacing to adjacent targets ≥ 8?
5. Flag any violations with exact measurements
Audit typography against platform guidelines:
1. List all text styles used with sizes
2. Map to platform text styles (iOS/Android)
3. Check hierarchy:
- Is there clear visual hierarchy?
- Are sizes from the type scale?
- Is body text 16-17?
- Is any text < 12?
4. Check Dynamic Type / font scaling support
5. Flag non-compliant text with recommendations
Audit colors and contrast:
1. Extract all colors used
2. Test contrast ratios:
- Text on backgrounds
- Icons on backgrounds
- Interactive elements
3. Check semantic color usage:
- Primary actions
- Destructive actions
- Success/error/warning states
4. Verify Dark Mode compatibility
5. Flag contrast failures with exact ratios
Compare iOS and Android versions of this design:
1. Create side-by-side comparison matrix
2. Identify intentional platform differences
3. Flag unintentional inconsistencies:
- Different functionality
- Missing features
- Different visual hierarchy
4. Check platform-appropriate patterns:
- iOS uses iOS patterns
- Android uses MD3 patterns
5. Recommend alignment where appropriate

□ Define core brand tokens (colors, fonts)
□ Create semantic token layer
□ Map tokens to iOS values
□ Map tokens to Android/MD3 values
□ Document platform-specific patterns
□ Create component specifications for both platforms
□ Set up Figma libraries with variants
□ Self-review against this checklist
□ Run accessibility audit
□ Test with Dynamic Type / font scaling
□ Test Dark Mode
□ Platform-specific review (iOS patterns, Android patterns)
□ Cross-platform consistency check
□ Final compliance score calculation
□ Specifications in platform-native units (pt for iOS, dp for Android)
□ Color tokens mapped to system colors
□ Typography mapped to text styles
□ Touch target areas annotated
□ Safe area handling documented
□ Platform-specific behaviors noted
□ Accessibility requirements specified

  • Apple HIG: developer.apple.com/design/human-interface-guidelines
  • Material Design 3: m3.material.io
  • Android Design: developer.android.com/design
  • SF Symbols: developer.apple.com/sf-symbols
  • Material Symbols: fonts.google.com/icons
  • Contrast Checker: webaim.org/resources/contrastchecker
  • Figma iOS/Android UI Kits: Apple/Google Design Resources
  • material-design-3-guidelines.md — MD3 полные спецификации
  • android-design-guidelines.md — Android-специфичные требования
  • ios-human-interface-guidelines.md — iOS HIG полные спецификации

FieldValue
Version1.0
CreatedFebruary 2025
SourcesApple HIG, Material Design 3, Android Design Guidelines
PurposeAI-driven cross-platform design evaluation
Maintained byDesign System Team