算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
android-design【设计与创意】Use when the user asks for an Android app, Compose UI, Material 3, Material You, Material 3 Expressive, Pixel-style app, foldable/adaptive layout, Play Store deliverable, React Native Android, Flutter Android, Compose Multiplatform, or any Android deliverable. Builds Android apps across system-like Compose, branded Compose, React Native, Flutter, and…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Android has multiple stacks with different visual ceilings. Ask the user which one before any code.
Which track for this app?
1. System-like native (Jetpack Compose + Material 3 Expressive strict) — feels like Pixel Launcher, Google Calendar, Settings. Best for: utilities, system tools, productivity. Spring physics, shape morphing, wavy progress, dynamic color (Material You). Examples: Read You, Androidify sample, Files by Google.
2. Branded native (Compose + custom Material theme) — native chrome (M3E motion, predictive back, edge-to-edge) but bespoke content surface (custom typography, hero atmospheres, magazine layouts). Visual ceiling: high. Examples: Fitbit redesign, Google Calendar's editorial moments, Niantic apps.
3. React Native (New Architecture + Fabric + Hermes) — real Android views, decent native feel, JavaScript codebase, cross-platform with iOS. Material themable but won't get spring physics or shape morphing without manual work. Examples: Discord mobile, Coinbase, Microsoft Office.
4. Flutter — Skia-painted custom rendering. Cross-platform single codebase. Lags Material updates (no M3 Expressive parity, no real dynamic color). Visual ceiling: high if you ship your own design language; weak if mimicking Material. Examples: Google Pay, BMW My BMW, Toyota.
5. Compose Multiplatform (1.8+) — same Compose code, runs Android + iOS + Desktop + Web (Wasm experimental). Native on Android, Material-look on iOS (you must Cupertino-skin or accept). Best for: Kotlin shop wanting cross-platform from one codebase.
Which? Or describe priorities (Play Store launch, cross-platform reach, brand vs Material fit) and I'll pick.
If brief gives strong signal (e.g. "Pixel-style camera" → 1; "cross-platform with React team" → 3; "Kotlin shop, ship to all platforms" → 5), state your pick + reasoning in one sentence. If ambiguous, ask.
| Track | Reference docs | Default stack |
|---|---|---|
| 1. System-like Compose | ../../references/material3-expressive.md | Compose BOM 2026.06.00 + Material3 1.4 + adaptive layouts strict |
| 2. Branded Compose | Same as 1 | Same as 1 + custom display font + hero atmospheres + bespoke surfaces |
| 3. React Native | ../../references/web-fonts.md + cross-platform docs | RN 0.86 New Architecture + Expo Router |
| 4. Flutter | None for native fidelity | Flutter 3+ stable |
| 5. Compose Multiplatform | ../../references/material3-expressive.md | Current stable CMP + shared Compose |
For tracks 3 and 4: web/cross-platform anti-slop rules apply. Read web references.
State the chosen aesthetic direction and track in one sentence at top of response.
Before code, read:
../../references/ui-patterns/surface-taxonomy.md../../references/ui-patterns/ui-decision-brief.md../../references/ui-patterns/visual-hierarchy.md../../references/ui-patterns/motion-budget.mdWrite the UI decision brief and adapt it to the chosen Android track. Compact screens need thumb-reachable primary actions, sheets, edge-to-edge, and adaptive navigation; tablets/foldables need list-detail or supporting panes; operational tools should stay dense and scannable while preserving Material 3 Expressive motion, dynamic color, and predictive back.
Launched at I/O 2025. Default for Pixel 10 / Android 16 QPR1. Generated UI must adopt:
MotionScheme.expressive(). Never FastOutSlowIn on M3E surfaces.MaterialShapes.Cookie4Sided, Pill, etc. Buttons/chips/loaders morph between states.MaterialTheme.typography.displayLarge with intent.FloatingToolbar (pill-shaped, drifts with content)ButtonGroup / SplitButtonFloatingActionButtonMenuContainedLoadingIndicator (cycles through M3E shapes)LinearWavyProgressIndicator, CircularWavyProgressIndicator with variable amplitudeModifier.shadow() for elevationdynamicColorScheme() from wallpaper on Android 12+Read ../../references/material3-expressive.md for the M3E adoption checklist.
implementation(platform("androidx.compose:compose-bom:2026.04.01"))
implementation("androidx.compose.material3:material3:1.4.0")
// or for shape-morphing chips:
implementation("androidx.compose.material3:material3:1.5.0-alpha18")
Use:
currentWindowAdaptiveInfo() + NavigationSuiteScaffold (auto-swaps Bar/Rail/Drawer by WindowSizeClass)ListDetailPaneScaffold, SupportingPaneScaffold, NavigableListDetailPaneScaffoldSharedTransitionLayout { ... } for shared element transitions (stable)PredictiveBackHandler / BackHandler — mandatory on Android 16, default ON Android 15+LookaheadAnimationVisualDebugging for inspecting bounds during devAndroid 16 (API 36) deprecated windowOptOutEdgeToEdgeEnforcement. Every screen:
Scaffold with content padding from insetsWindowInsets.systemBars, .statusBars, .navigationBarsNavigationBar (3–5 items)NavigationRailNavigationDrawer (modal or permanent) + ListDetailPaneScaffoldWindowInfoTrackerNavigationBar (3–5 items) or NavigationRail fitsModifier.shadow(elevation = 8.dp) — use tonalElevation on Surface insteadMotionScheme.expressive() onlyContainedLoadingIndicator cycling shapes; floating toolbarViewModel + StateFlow + collectAsStateWithLifecycle()Token JSON: see ../../assets/tokens/material3-expressive.json