跳到主要内容

ARC 开发者文档

AUP

用 AUP 描述界面,用 DSL 编写来源,并由 ARC 在目标设备上运行。

AUP 是 ARC 的声明式 UI 模型。应用先描述一个有语义的界面 tree、数据和交互;交互式 AUP 通常由 ARC session 和目标 renderer 呈现,Web Device 也可把受支持的 AUP tree 直接渲染为静态 HTML。

把三层分开理解:

负责什么不负责什么
AUP语义 node/event/state/data 合同与共享 degradation 规则某一种设备的具体 HTML 或原生控件实现
AUP DSL可读、可维护的 source-first 编写形式和生成工具另一套独立的 UI 模型
设备与 renderer在握手中报告实际 DeviceCaps,并据此实现呈现与目标端降级改写 AUP 的业务意图

对于 AUP app 配置,当前 loader 优先读取 .aup/app.aup。只有该来源不存在时,才读取 .aup/app.json 作为 JSON source;如果 DSL source 存在但无效,loader 会失败而不会悄悄回退。JSON-first app 仍受支持;DSL-first app 则可以虚拟暴露或按需物化兼容 JSON。这些都是同一 AUP 模型的不同输入/产物角色,而不是两套产品。

从任务开始

想做什么从哪里开始
建立并跑通第一个完整 AUP app起步
理解 tree、event、session 与 capability核心概念
用 DSL 编写与维护 source用 DSL 编写
理解 ARC 在设备表面怎样运行它在 ARC 中运行
看 source 示例及其证据边界示例与证据
查精确、带版本的契约参考

与 Web Device 的关系

Web Device 是 AUP 的一个 Web-facing 目标:它能把受支持的 AUP tree 静态渲染成 HTML,也让网站页面用 AUP 组合 Web 组件。它不是交互式 AUP session 的替代品;站点仍有自己的 .web/ 组件、页面、主题、内容和路由约定。组件是在网页中提供更丰富 HTML、CSS 和交互表面的一个层,而不是 AUP tree 的唯一合法形式。

网站目录、内容对象和主题属于 Web Device 层,有意不放在这个 AUP board 中;涉及 AUP 的语义、DSL、会话或降级时,留在本 board。

证据与版本

本 board 不把陈旧的 Showcase 数字或未注册的 Showcase 页面文件当作“当前已部署 demo”的证据。实现语义以当前源码与测试为依据;带命令的页面已按 arc 2.0.0-beta.25 实跑;已经填充的页面会标明源码、测试和运行时边界。考古记录和待人决定的发现保留在本 board 不渲染的台账中。