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

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)
FAB—56 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 back—Preview 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