ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何用 ECC 开发 HarmonyOS/ArkTS 应用?

如何用 ECC 开发 HarmonyOS/ArkTS 应用? 如何用 ECC 开发 HarmonyOS/ArkTS 应用【免费下载链接】ECCThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.项目地址: https://gitcode.com/GitHub_Trending/ev/ECC当你用 ECC面向 Claude Code、Codex、Cursor 等 agent harness 的工程化规则系统辅助开发一个 HarmonyOS 应用时需要先把 ECC 的 ArkTS 规则包和项目级CLAUDE.md配进项目再调用harmonyos-app-resolveragent 进行实现或评审。ECC 为 HarmonyOS/ArkTS 提供了一套硬性约束状态管理只用 V2 装饰器、路由只用NavigationNavPathStack、代码遵循 MVVM 分层并在每次实现后用hvigorw assembleHap验证编译。本文按这条路径走一遍安装规则 → 放置项目 CLAUDE.md → 调用 agent 实现功能 → 构建与测试验证。前提条件均来自文档中的引用文件你的 HarmonyOS 项目里应有CLAUDE.md或准备创建、module.json5、oh-package.json5、build-profile.json5并具备文档中提到的全局 hvigor 构建环境hvigorw与ohpm包管理命令。安装 ArkTS 规则包ECC 的规则分为通用层rules/common/和语言层rules/arkts/语言层文件扩展通用规则冲突时语言层优先见 rules/README.md。ArkTS 规则包包含五个文件rules/arkts/coding-style.md —— ArkTS 语言约束、命名、格式化rules/arkts/patterns.md —— V2 状态管理、Navigation、MVVM、动画与性能模式rules/arkts/testing.md —— 测试框架、目录结构、TDD 流程rules/arkts/hooks.md —— 构建命令与 PostToolUse/PreToolUse hook 配置rules/arkts/security.md —— 权限声明、密钥管理、输入校验这些文件头部的paths字段声明了作用范围**/*.ets、**/*.ts、**/module.json5、**/oh-package.json5、**/build-profile.json5等。安装有两种方式rules/README.md方式一使用 ECC 仓库根目录的安装脚本./install.sh arkts方式二手动复制到用户级命名空间。文档特别强调要复制整个目录不要用/*展平否则语言层文件会覆盖同名通用文件且语言层文件里的../common/相对引用会断掉mkdir -p ~/.claude/rules/ecc cp -r rules/common ~/.claude/rules/ecc/ cp -r rules/arkts ~/.claude/rules/ecc/如果只想对单个项目生效同样的命名空间放到项目根目录mkdir -p .claude/rules/ecc cp -r rules/common .claude/rules/ecc/ cp -r rules/arkts .claude/rules/ecc/放置项目级 CLAUDE.mdECC 提供了一个 HarmonyOS 项目模板 examples/harmonyos-app-CLAUDE.md说明中要求放在项目根目录。模板中[Briefly describe your app - features, target devices, API level]是唯一的占位符需要你自己填上应用简介、目标设备和 API level其余内容可直接保留。模板定义的核心规则也是后文 agent 行为的依据状态管理仅 V2ComponentV2、Local、Param、Event、Provider、Consumer、Monitor、Computed路由仅NavigationNavPathStackNavDestination架构MVVMView 只渲染业务逻辑全部在 ViewModel文件目标 200–400 行上限 800 行构建验证命令hvigorw assembleHap -p productdefault测试TDD 先行业务逻辑最低 80% 覆盖率调用 harmonyos-app-resolver agentECC 的 README.md 命令-场景对照表中Develop HarmonyOS apps 对应的方式是直接调用harmonyos-app-resolveragent没有独立的 slash 命令。agent 定义在 agents/harmonyos-app-resolver.md声明的工具为 Read、Write、Edit、Bash、Grep、Glob模型为 sonnet。agent 的工作流分三步理解项目上下文读取CLAUDE.md、module.json5、oh-package.json5识别项目现有状态管理版本V1 还是 V2和路由方式检查build-profile.json5中的 API level 与设备目标。评审或实现评审时会标记 V1 装饰器用法建议迁移 V2、ohos.router用法建议迁移 Navigation、API level 兼容性、module.json5权限声明、资源是否用$r()引用、i18n 是否覆盖全部语言目录实现时则强制只用 V2 状态管理、Navigation 路由UI 常量定义为资源。验证每次实现后执行构建验证编译检查 ArkTS 语法约束违规核对module.json5权限声明。agent 的输出格式也是文档规定的评审问题以[REVIEW] 文件:行号列出实现以[IMPLEMENT] 文件列出最后一行给出Status: SUCCESS/NEEDS_WORK | Issues Found: N | Files Modified: list。实现功能时遵守的代码约束状态管理只用 V2 装饰器patterns.md 给出 V2 装饰器对照Monitor替代 V1 的WatchObservedV2Trace用于可观察模型类State、Prop、Link、ObjectLink、Observed、Provide、Consume、Watch、Component一律禁用。文档示例摘自 patterns.mdObservedV2 class UserModel { Trace name: string Trace age: number 0 } ComponentV2 struct UserCard { Param user: UserModel new UserModel() Event onDelete: () void () {} build() { Column() { Text(this.user.name) .fontSize($r(app.float.font_size_title)) Text(${this.user.age}) .fontSize($r(app.float.font_size_body)) Button($r(app.string.delete)) .onClick(() this.onDelete()) } } }跨层状态传递用Provider/Consumer配对同一个字符串 key如userState文档同样给出了完整示例。路由Navigation NavPathStack同样来自 patterns.md 的导航示例页面通过Builder路由映射注册跳转操作是// Push a new page this.navPathStack.pushPath({ name: detail, param: { id: 123 } }) // Replace current page this.navPathStack.replacePath({ name: settings }) // Pop back this.navPathStack.pop() // Pop to root this.navPathStack.clear()子页面用NavDestination容器包裹并设置.title($r(app.string.detail_nav_title))。ohos.router不在允许范围内。ArkTS 语法红线coding-style.md 说明 ArkTS 是 TypeScript 的严格静态子集以下写法会导致编译失败实现功能时直接绕开类型系统禁用any/unknown、索引访问类型、条件类型与infer、交叉类型、映射类型、as const、结构类型TS 工具类型仅保留Partial、Required、Readonly、Record函数与类禁用函数表达式、嵌套函数、生成器用async/await、Function.apply/call/bind对象访问禁用obj[field]、delete、in操作符用instanceof、Symbol()Symbol.iterator除外、globalThis解构与展开禁用解构赋值、解构参数声明spread 仅可用于数组展开到 rest 参数或数组字面量模块禁用require()、export 、UMD所有import必须位于文件其他语句之前其他禁用var用let、for...in、#私有标识符、索引签名catch子句省略类型注解资源引用上UI 常量一律定义为资源并用$r()引用不要硬编码字面量新增颜色资源同时提供深色主题。构建验证与测试每次实现后构建hooks.md 列出的构建命令全局 hvigor 环境# 构建 HAP 包 hvigorw assembleHap -p productdefault # 指定模块构建 hvigorw assembleHap -p moduleentry -p productdefault # 清理构建 hvigorw clean依赖用ohpm install安装、ohpm update更新hvigorw --version可检查构建工具环境。文档给出的每轮实现后的核对清单hooks.md Validation Checklisthvigorw assembleHap无错误完成新增/修改的.ets文件中没有 V1 装饰器新增/修改文件没有ohos.router引用用到的 API 权限已声明在module.json5依赖已列在oh-package.json5资源字符串已加入全部 i18n 目录新增颜色资源提供了深色主题测试testing.md) 说明 HarmonyOS 使用内置测试框架ohos.test单元测试放在src/ohosTest/ets/test/UI 测试用ohos.UiTest。运行命令# 运行模块内全部测试 hvigorw testHap -p productdefault # 在已连接设备上运行包名 com.example.app 是文档示例值替换为你应用的 bundleName hdc shell aa test -b com.example.app -m entry_test -s unittest /ets/TestRunner/OpenHarmonyTestRunner单元测试用 hypium 编写文档示例断言 ViewModel 的初始状态、更新行为和空输入处理UI 测试通过Driver按ON.text(...)、ON.id(...)定位组件并验证导航跳转。文档要求的覆盖口径关键业务代码ViewModel、service、工具函数最低 80%关键用户流程登录、导航、数据提交写 UI 测试并覆盖空数据、网络错误、权限拒绝等边界。TDD 节奏在 testing.md 中定义为五步RED在ohosTest/ets/test/写失败测试→ GREEN在main/ets/最小实现→ REFACTOR → BUILDhvigorw assembleHap验证编译→ VERIFY设备/模拟器上跑测试。可选编辑后自动构建 hookhooks.md 还提供可选的 PostToolUse hook 配置例如在编辑.ets/.ts文件后异步执行hvigorw assembleHap -p productdefault 21 | tail -20超时 60 秒编辑oh-package.json5后自动ohpm install以及一个 PreToolUse 提示 V1 装饰器被禁用的 guard。这类 hook 会改变 agent 每次编辑后的行为自动触发构建是否启用取决于你对构建耗时的接受度属于可选分支而非必需步骤。安全与权限约束调用需要权限的系统 API 前security.md 要求在module.json5的requestPermissions中声明权限含reason资源字符串和usedScene敏感权限相机、定位等实现运行时申请并在拒绝时优雅降级。密钥管理规则不在.ets/.ts中硬编码 API key/token非敏感配置用 build profile如BuildProfile.API_ENDPOINT敏感凭据走 Keystore/HUKS。文档同时给出了运行时权限申请abilityAccessCtrlbundleManager和深链参数白名单校验的完整示例代码。限制与下一步agent 明确规定不确定的 API 语法或用法要去查官方华为开发者文档不允许猜测使用任何 API 前先核实参数、返回值、API level 和设备支持。权限调用前的核对顺序声明 → 原因字符串 → 运行时申请 → 拒绝回退和深链校验逻辑见 security.mdagent 评审时会检查这些项。若项目里存在 V1 状态管理或ohos.router旧代码agent 的行为准则是主动标记并建议迁移到 V2 Navigation而不是沿用旧写法。想扩展自己的语言规则时rules/README.md 说明新语言目录按coding-style.md、testing.md、patterns.md、hooks.md、security.md五件套组织每个文件头部引用对应../common/文件。【免费下载链接】ECCThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.项目地址: https://gitcode.com/GitHub_Trending/ev/ECC创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表