mobile-design

mobile-design

熱門

(行動優先 · 觸控優先 · 尊重平台)

4.4萬星標
6471分支
更新於 2026/7/22
SKILL.md
readonlyread-only
name
mobile-design
description

(行動優先 · 觸控優先 · 尊重平台)

行動設計系統

(行動優先 · 觸控優先 · 尊重平台)

理念: 觸控優先。省電優先。尊重平台。可離線運作。
核心法則: 行動裝置不是縮小版的桌面電腦。
運作原則: 先考慮限制,再考慮美觀。

此技能旨在防止以桌面思維、AI 預設值及不安全假設來設計或建置行動應用程式。


1. 行動可行性與風險指數(MFRI)

在設計或實作任何行動功能或畫面之前,請先評估可行性。

MFRI 維度(1–5)

維度 問題
平台明確度 目標平台(iOS / Android / 兩者)是否已明確定義?
互動複雜度 手勢、流程或導覽的複雜程度為何?
效能風險 是否涉及列表、動畫、大量狀態或多媒體?
離線依賴度 該功能在無網路時是否會中斷或降級?
無障礙風險 是否影響動作、視覺或認知無障礙?

分數公式

MFRI = (平台明確度 + 無障礙準備度)
       − (互動複雜度 + 效能風險 + 離線依賴度)

範圍: -10 → +10

解讀

MFRI 意義 必要行動
6–10 安全 正常進行
3–5 中等 增加效能與 UX 驗證
0–2 有風險 簡化互動或架構
< 0 危險 重新設計後再實作

2. 開始任何工作前的強制思考

⛔ 停:先問再假設(必要)

如果以下任何項目未明確說明,你必須先提問才能繼續:

面向 問題 原因
平台 iOS、Android 或兩者? 影響導覽、手勢、字體
框架 React Native、Flutter 或原生? 決定效能與模式
導覽 分頁、堆疊、抽屜? 核心 UX 架構
離線 是否必須離線運作? 資料與同步策略
裝置 僅手機或包含平板? 佈局與密度規則
受眾 消費者、企業、無障礙需求? 觸控與可讀性

🚫 切勿預設使用你最喜歡的技術堆疊或模式。


3. 強制參考閱讀(強制執行)

通用(務必優先閱讀)

檔案 目的 狀態
mobile-design-thinking.md 反記憶、強制情境思考 🔴 必須優先閱讀
touch-psychology.md Fitts 定律、拇指區域、手勢 🔴 必須閱讀
mobile-performance.md 60fps、記憶體、電池 🔴 必須閱讀
mobile-backend.md 離線同步、推播、API 🔴 必須閱讀
mobile-testing.md 裝置與端對端測試 🔴 必須閱讀
mobile-debugging.md 原生與 JS 除錯 🔴 必須閱讀

平台專屬(條件式)

平台 檔案
iOS platform-ios.md
Android platform-android.md
跨平台 以上兩者皆讀

❌ 若未閱讀平台檔案,不得設計 UI。


4. AI 行動反模式(嚴格禁止)

🚫 效能禁忌(無妥協空間)

❌ 絕對不要 原因 ✅ 務必使用
長列表使用 ScrollView 記憶體爆炸 FlatList / FlashList / ListView.builder
內聯 renderItem 重新渲染所有行 useCallback + memo
以索引作為 key 排序錯誤 穩定 ID
JS 執行緒動畫 畫面卡頓 Native driver / GPU
正式環境使用 console.log 阻塞 JS 執行緒 移除日誌
無 memoization 耗電與效能下降 React.memo / const 元件

🚫 觸控與 UX 禁忌

❌ 絕對不要 原因 ✅ 務必使用
觸控區域 <44–48px 點擊失誤 最小觸控目標
僅靠手勢操作 排除部分使用者 按鈕備援
無載入狀態 感覺像當機 明確回饋
無錯誤復原 死路 重試 + 訊息
忽略平台慣例 破壞肌肉記憶 iOS ≠ Android

🚫 安全禁忌

❌ 絕對不要 原因 ✅ 務必使用
將 Token 存於 AsyncStorage 容易被竊取 SecureStore / Keychain
寫死機密資訊 可被逆向工程 環境變數 + 安全儲存
無 SSL pinning MITM 風險 憑證固定
記錄敏感資料 個資外洩 絕不記錄機密

5. 平台統一 vs 分歧矩陣

統一                            分歧
──────────────────────────     ─────────────────────────
商業邏輯                       導覽行為
資料模型                       手勢
API 合約                       圖示
驗證                           字體
錯誤語意                       選取器 / 對話框

平台預設值

元素 iOS Android
字體 SF Pro Roboto
最小觸控 44pt 48dp
返回 邊緣滑動 系統返回鍵
表單 底部表單 對話框 / 表單
圖示 SF Symbols Material Icons

6. 行動 UX 心理學(非選擇性)

Fitts 定律(觸控現實)

  • 手指 ≠ 游標
  • 精準度低
  • 可及範圍比精確度更重要

規則:

  • 主要行動呼籲按鈕應位於拇指區域
  • 破壞性操作應遠離拇指區域
  • 不假設有懸浮效果

7. 效能原則

React Native(必要模式)

const Row = React.memo(({ item }) => (
  <View><Text>{item.title}</Text></View>
));

const renderItem = useCallback(
  ({ item }) => <Row item={item} />,
  []
);

<FlatList
  data={items}
  renderItem={renderItem}
  keyExtractor={(i) => i.id}
  getItemLayout={(_, i) => ({
    length: ITEM_HEIGHT,
    offset: ITEM_HEIGHT * i,
    index: i,
  })}
/>

Flutter(必要模式)

class Item extends StatelessWidget {
  const Item({super.key});

  @override
  Widget build(BuildContext context) {
    return const Text('Static');
  }
}
  • 盡可能使用 const
  • 僅針對性重建

8. 強制行動檢查點

在撰寫任何程式碼之前,你必須完成以下內容:

🧠 行動檢查點

平台:     ___________
框架:     ___________
已讀檔案: ___________

我將應用的 3 項原則:
1.
2.
3.

我將避免的反模式:
1.
2.

❌ 無法完成 → 回去閱讀。


9. 框架決策樹(權威版)

需要 OTA 更新 + 網頁團隊 → React Native + Expo
高效能 UI → Flutter
僅 iOS → SwiftUI
僅 Android → Compose

未附理由不得爭論。


10. 發布就緒檢查清單

出貨前

  • [ ] 觸控目標 ≥ 44–48px
  • [ ] 離線處理完成
  • [ ] 使用安全儲存
  • [ ] 列表已最佳化
  • [ ] 日誌已移除
  • [ ] 已在低階裝置上測試
  • [ ] 無障礙標籤已加入
  • [ ] MFRI ≥ 3

11. 相關技能

  • frontend-design – 視覺系統與元件
  • frontend-dev-guidelines – RN/TS 架構
  • backend-dev-guidelines – 行動安全 API
  • error-tracking – 崩潰與效能遙測

最終法則:
行動使用者容易分心、被打斷且沒耐心——經常單手操作,網路不佳且電量不足。
為此現實而設計,否則你的應用程式將悄然失敗。


使用時機

此技能適用於執行概述中所述的工作流程或動作。

限制

  • 僅在任務明確符合上述範圍時使用此技能。
  • 請勿將輸出視為環境特定驗證、測試或專家審查的替代品。
  • 若缺少必要的輸入、權限、安全邊界或成功標準,請停止並要求釐清。