platform-design-skills

راهنمای طراحی رابط‌های Android مدرن، سازگار و مبتنی بر Material 3

این مهارت به طراحی و پیاده‌سازی رابط‌های Android با Jetpack Compose و Material 3 کمک می‌کند؛ از مدیریت theme و dynamic color تا چیدمان واکنش‌گرا برای tablet و foldable، edge-to-edge و WindowInsets.

همچنین اصول دسترس‌پذیری، bottom sheet و dialog، deep link، اشتراک‌گذاری، مجوزها و الگوهای مناسب Android 15+ را پوشش می‌دهد تا رابط برنامه در دستگاه‌ها و شرایط مختلف منسجم و قابل‌استفاده باشد.

چه چیزی می‌گیرید

  • راهنمای استفادهٔ درست از color roleها، typography و dynamic color در Material 3
  • الگوهای adaptive layout برای phone، tablet، foldable و نمایشگرهای بزرگ
  • پیاده‌سازی edge-to-edge با WindowInsets و مدیریت صحیح system barها
  • چک‌لیست دسترس‌پذیری، bottom sheet، dialog، shortcut و deep link
  • پرهیز از الگوهای منسوخ مانند hardcode کردن رنگ‌ها و درخواست مجوزهای غیرضروری

برای چه کاری خوب است

  • توسعه‌دهندگان Android و Jetpack Compose که روی اپلیکیشن‌های جدید کار می‌کنند
  • تیم‌هایی که می‌خواهند رابط برنامه روی phone، tablet و foldable سازگار باشد
  • بازطراحی اپلیکیشن‌های موجود برای Material 3، Android 15+ و دسترس‌پذیری بهتر

برای چه کاری نیست

  • پروژه‌هایی که به طراحی وب یا iOS نیاز دارند
  • کارهایی که فقط به پیاده‌سازی منطق backend یا API مربوط هستند
  • نمونه‌های بسیار ساده که نیازی به adaptive layout یا استانداردهای Android ندارند

دربارهٔ این اسکیل

if (darkTheme) dynamicDarkColorScheme(context)
else dynamicLightColorScheme(context)
}
darkTheme -> darkColorScheme()
else -> lightColorScheme()
}
MaterialTheme(
colorScheme = colorScheme,
typography = AppTypography,
content = content
)
}


```xml

...

R1.2: Never hardcode color hex values in components. Always reference color roles from the theme.
- R1.3: Test with at least 3 different wallpapers to verify dynamic color harmony.

### 1.2 Color Roles

Material 3 defines a structured set of color roles. Use them semantically, not aesthetically.

| Role | Usage | On-Role |
|------|-------|---------|

...

| Medium | 24dp | 16dp | 8 |
| Expanded | 24dp | 24dp | 12 |

**Rules:**
- R3.4: Content should not span the full width on expanded screens. Use a max content width of ~840dp or list-detail layout.
- R3.5: Apply consistent horizontal margins matching the grid spec.

### 3.3 Edge-to-Edge Display

Android 15+ enforces edge-to-edge.

...

R3.7: Use `WindowInsets` to pad content away from system bars. `Scaffold` handles this for top bar and bottom bar content automatically.
- R3.8: Scrollable content should scroll behind transparent system bars with appropriate inset padding at the top and bottom of the list.

### 3.4 Foldable Device Support

```kotlin
// Compose: Detect fold posture

...

}
}

Rules:

  • R5.8: Use modal bottom sheets for non-critical supplementary content. Use standard bottom sheets for persistent content.
  • R5.9: Bottom sheets must have a visible drag handle for discoverability.
  • R5.10: Sheet content must be scrollable if it can exceed the visible area.

5.4 Dialogs


...

R10.7: Test shortcuts with long-press on the app icon and in the Settings > Apps shortcut list.

### 10.3 Deep Links and Share

**Rules:**
- R10.8: Support Android App Links (verified deep links) for all public content URLs.
- R10.9: Implement the share sheet with `ShareCompat` or `Intent.createChooser`.

...

| Full-width content on tablets | Wastes space; poor readability | Max width or list-detail layout |
| `READ_EXTERNAL_STORAGE` for photos | Unnecessary since Android 13 | Use Photo Picker API |
| Blocking UI on permission denial | Punishes the user | Graceful degradation |

دانلود ZIP