外观
信息架构
目标
信息架构优先回答四个问题:我当前在哪个实例和空间、我在和谁通信、对方是否已验证、当前操作是否成功或可恢复。视觉层级不能掩盖实例归属、密钥变化、消息失败或不可逆操作。[MUST]
导航与空间边界图

放大查看矢量图。图中蓝色四 Tab 是原始说明书建议,橙色三 Tab 是待可用性验证的备选;空白空间不显示真实 Profile 信息,具体可用操作仍待 D-IA-02 决策。图是审阅摘要,不代表界面已实现。
顶层结构
说明书给出的首版建议是四个顶层区域:[已验证事实]
- 联系人:联系人列表、验证状态、联系人请求;支持完整地址输入、扫码、阻止和安全码。
- 会话:会话列表、未读、草稿、失败状态和本地搜索;进入一对一聊天。
- 个人资料:头像、显示名、完整 VMax 地址、二维码、身份公钥、备份和删除身份。
- 设置:隐私、通知、会话、外观、存储、服务器、安全诊断、App Lock、双密码与伪装。
当前实例应在个人资料、服务器设置和所有跨 Profile 操作中明确可见;普通聊天页不需持续占据视觉中心,但在实例或身份异常时必须提升为阻断信息。[建议]
页面地图
text
首次启动
├─ 欢迎
│ ├─ 创建身份
│ │ └─ 选择实例
│ │ ├─ 官方实例校验
│ │ └─ 私有实例输入或扫码 → 实例校验
│ └─ 恢复备份 → 读取包 → 输入备份密码 → 风险确认
├─ 身份生成
└─ 备份提示 → 创建 / 稍后 / 关闭提醒
真实空间
├─ 联系人
│ ├─ 联系人请求
│ ├─ 输入完整地址
│ ├─ 扫描二维码
│ └─ 联系人详情 → 验证状态 / 安全码 / 密钥历史 / 阻止
├─ 会话
│ ├─ 会话列表
│ └─ 聊天 → 长按操作 → 消息详情
├─ 个人资料
│ ├─ ID 与二维码
│ ├─ 加密备份
│ └─ 删除身份
└─ 设置
├─ 隐私与通知
├─ 会话与外观
├─ 存储
├─ 服务器与网络
├─ 安全诊断
└─ App Lock → 双密码与伪装 → 可选格式化
统一锁屏
├─ 主密码正确 → 真实空间
├─ 假密码正确且格式化关闭 → 空白空间
├─ 假密码正确且格式化开启 → 中性启动过程 → 空白空间
└─ 其他输入 → 中性错误,留在锁屏
空白空间
├─ 自然的“尚未创建身份”状态
├─ 无真实联系人、会话、身份、实例或备份痕迹
└─ 可用操作范围待总控决策全局状态层级
| 层级 | 例子 | 呈现原则 |
|---|---|---|
| 阻断安全状态 | 身份密钥变化、实例指纹变化、不支持的协议版本 | 固定在任务入口之前;解释影响和下一步;不能自动消失 [MUST] |
| 可恢复故障 | 断网、超时、服务器拒绝、备份读取失败 | 保留用户输入或待发送项;提供重试和诊断 [MUST] |
| 任务进度 | 创建身份、校验实例、导出备份 | 显示当前阶段,可取消时明确;系统终止后能解释结果 [建议] |
| 空状态 | 无联系人、无会话、无身份 | 解释为什么为空并提供一个首要动作;空白空间不得泄露真实空间 [MUST] |
| 轻量状态 | 已送达、已读、正在输入 | 不抢占正文;兼容 VoiceOver 和高对比度 [建议] |
Profile 与空间切换
- Profile 选择器只展示用户已经明确创建或导入的实例身份,不把“服务器地址”误作同一身份的连接偏好。[MUST]
- 切换前保存草稿并处理未提交操作;切换后刷新导航标题、通知路由、搜索范围和诊断上下文。[建议]
- 删除 Profile 与切换 Profile 必须是不同动作;删除需要不可恢复说明、生物识别和二次确认。[MUST]
- 空白空间不得显示 Profile 选择器、最近实例、真实空间 badge 或通知摘要。[MUST]
待总控决策
D-IA-01 主导航结构
- 选项 A:联系人、会话、个人资料、设置四个 Tab。 与说明书结构一一对应,入口稳定;四项在小屏和大字体下更拥挤。
- 选项 B:联系人、会话、我的三个 Tab,设置进入“我的”。 更符合小屏容量,但增加设置层级,并改变说明书的主导航建议。
- 推荐:先用 B 做高保真可用性验证,再由总控冻结。 “我的”可同时承载身份和设置,减少顶层竞争;但必须验证服务器与安全设置仍易发现。
- 验证办法: 在默认字号和最大辅助字号分别完成“分享 ID、切换实例、关闭已读、修改假密码”四项任务,记录首次找到率、误触和返回路径。
D-IA-02 空白空间的可用操作
- 选项 A:仅展示静态自然空状态,不允许创建身份。 暴露面最小,但长期使用时容易显得异常,且不能形成完整独立空间。
- 选项 B:允许在空白空间创建独立身份并正常使用。 伪装更自然,但会引入独立实例、推送、备份和通知路由,显著扩大跨线路风险。
- 推荐:MVP 采用 A,B 独立立项。 当前说明书只要求独立空白 Profile,没有给出第二套通信身份的协议和推送边界。
- 验证办法: 胁迫场景人工评审空状态是否自然;若评估 B,必须先完成 Profile、Keychain、推送、搜索、分享扩展和备份的隔离测试设计。