"Mobile"
- Mobile 導航模式分類
Push/pop stack / declarative router / tab bar / drawer — 四種 mobile 導航模式各自的適用場景和使用者心理模型
- U.C1 Terminal 畫面五個狀態零個退出路徑
Flutter app 的 Terminal 畫面有 idle/connecting/connected/error/disconnected 五個 enum 狀態,每個狀態都沒有 back 或 disconnect 按鈕 — 使用者一旦進入就出不去
- 輸入機制決策表
Keyboard type / submit model / IME policy / special keys 四個維度的決策框架 — 每個維度都是設計決策,影響 UI layout 和 protocol
- Terminal app 輸入設計
CLI 場景在手機上的特殊需求 — 非自然語言輸入、特殊按鍵需求、整行 vs 逐字元送出對 protocol 的影響
- U.C3 終端機文字輸入機制未設計、事後 hotfix 補 TextField
Flutter 終端機 app 的鍵盤輸入完全未設計 — 沒有 TextField、沒有 keyboard type 選擇、沒有 IME 控制。W2 修復時才補上 TextField + 6 個參數(enableSuggestions/autocorrect/enableIMEPersonalizedLearning/keyboardType/textInputAction/onSubmitted),全是散落 hotfix
- 表單 UX 模式
表單輸入的驗證時機、auto-fill 支援、錯誤回饋設計 — 和 terminal 輸入的決策維度相同但選項不同
- Permission 請求時機與措辭
系統權限請求的時機選擇(首次開啟 vs 功能使用時)和說明文字的設計 — 使用者只有一次機會理解為什麼需要這個權限
- 搜尋 UX 模式
Debounce / instant / suggestion 三種搜尋模式的取捨 — 和輸入機制的 submit model 維度直接相關
- 安全敏感輸入框的 IME 控制 checklist
處理密碼、API key、伺服器路徑等 secret 的輸入框需要關閉 IME 的個人化學習和自動校正 — 安全要求而非 UX 偏好
- Motor 可達性:hit target、間距、誤點防護
Hit target 太小會讓行動裝置使用者誤點、motor 障礙使用者更甚。WCAG AAA 建議 ≥ 44×44px、間距足夠避免誤觸。本文展開 hit target 設計與相關 motor a11y 風險點。
- 每個畫面都需要出口:畫面狀態機設計與 UX 導航的系統性方法
實機測到某畫面沒有返回或退出按鈕、使用者被困住。根因是企劃沒系統列出每個畫面的狀態與可用操作;用畫面狀態矩陣確保每個狀態都有明確出口。
- SQLite Mobile / Desktop Embedded Store
SQLite 在 mobile、desktop、CLI、browser profile 與 embedded device 中承擔 local formal state 的資料責任、backup、privacy 與 sync boundary