HarmonyKit | 鸿蒙开发展望:HarmonyKit 未来路线图与社区共建

📅 2026/7/12 23:11:44 👁️ 阅读次数 📝 编程学习
HarmonyKit | 鸿蒙开发展望:HarmonyKit 未来路线图与社区共建

HarmonyKit | 鸿蒙开发展望:HarmonyKit 未来路线图与社区共建

引言:10 个工具是起点

HarmonyKit 的 10 个工具覆盖了开发者日常高频需求。但还有更多值得加入的工具——二维码生成、JWT 调试、Markdown 预览。这篇文章规划了 v2.0 的新工具候选、架构升级方向、工程化改进,和社区共建模式。

50 篇文章贯穿了从项目启动到 v1.0 发布的完整过程。每一篇都基于 HarmonyKit 项目中的真实实践——不是在写"教程",而是在记录"我们是怎么做的"。

项目仓库:https://atomgit.com/VON-/harmony-kit

v2.0 新工具候选

工具优先级技术方案复杂度
二维码生成器P0Canvas API 绘制 QR Code,离线生成⭐⭐⭐
JWT 调试器P1解析 JWT header/payload,Base64 解码展示⭐⭐
图片 Base64P1图片文件编码为 Data URL,支持粘贴图片⭐⭐
Unicode 码点转换P2字符 ↔ 码点双向转换
Markdown 预览P2Markdown→HTML,WebView 渲染⭐⭐⭐
图形验证码生成器P2Canvas 绘制干扰线+字符,临时验证码⭐⭐
Cron 表达式解析器P3解析 cron 表达式,翻译为自然语言⭐⭐⭐
IP 地址计算器P3子网掩码、CIDR、可用主机数计算⭐⭐
代码差异对比器P3文本 diff,类 GitHub 的 diff 视图⭐⭐⭐⭐

二维码生成器(P0)

这是用户反馈中呼声最高的工具。技术方案是使用 Canvas API 在 ArkUI 中直接绘制二维码矩阵,参考 QR Code 的 ISO 标准实现。主要挑战在于:

  • 二维码编码的 Reed-Solomon 纠错算法需要纯 ArkTS 实现
  • Canvas 绘制需要处理像素对齐和缩放
  • 支持三种纠错级别(L/M/Q/H)和多种输入模式(数字、字母、字节)

如果引入第三方 QR 码库,开发时间可以缩短 80%,但会增加 HAP 体积(约 200KB)。目前正在评估"自己实现"和"引入库"的 trade-off。

JWT 调试器(P1)

JWT 调试器的核心逻辑就是 Base64 解码 + JSON 格式化——这两个能力 HarmonyKit 已经有了(Base64Tool 和 JsonFormatter)。JWT 调试器只是将两者组合起来,再加上对 JWT 三个部分(header、payload、signature)的分段展示。

// JWT 调试器的核心逻辑functiondecodeJWT(token:string):JwtResult{constparts=token.split('.');if(parts.length!==3){return{valid:false,error:'无效的 JWT 格式'};}constheader:string=Base64Utils.decode(parts[0]);constpayload:string=Base64Utils.decode(parts[1]);constsignature:string=parts[2];return{valid:true,header:JsonUtils.format(header),payload:JsonUtils.format(payload),signature:signature,};}

实现难度较低——核心是一个"已有的工具组合"而非全新的逻辑。

Markdown 预览(P2)

使用 WebView 加载本地 HTML 模板,将 Markdown 编译为 HTML 后注入 WebView 展示。挑战在于 Markdown 解析器需要自行实现或引入——纯 ArkTS 目前没有成熟的 Markdown 解析库。

备选方案是使用 WebView 端的能力:在 HTML 中引入 marked.js(一个流行的 Markdown 解析器),让 Markdown 解析在 WebView 中完成。这样 ArkTS 端只需要传递原始 Markdown 文本给 WebView 即可。

架构升级

HdsNavigation 迁移

将当前基于router.pushUrl+@Entry的导航方案,迁移到NavPathStack+HdsNavigation的声明式导航体系。迁移内容包括:

  • 主页 Index.ets 重写为 HdsNavigation 根容器
  • 10 个工具页从 @Entry 改为普通 @Component
  • 所有页面的 titleBar 由 HdsNavDestination 统一管理
  • 路由声明从main_pages.json迁移到 @Builder 中的 NavMap

这个迁移的 ROI(投资回报率)评估:

  • 正面效果:统一导航体验、更灵活的路由参数、自动页面管理
  • 迁移成本:11 个页面的重写 = 约 2-3 天的工作量
  • 风险:导航不稳定可能导致回归 bug

沉浸光感全面应用

SDK 26+ 发布后,将所有卡片背景、标题栏、底部导航栏都开启 systemMaterial 效果。当前沉浸光感仅应用在 HdsTabs,v2.0 将扩展到:

  • ToolCard 卡片背景(毛玻璃效果)
  • 工具页输入区域
  • 统计卡片
  • 模态弹窗背景

暗色模式

完整的深色主题支持,包括:

  • 所有工具页面的暗色配色方案
  • ToolCard 在暗色模式下的颜色调整
  • 根据系统主题自动切换
  • 手动切换开关(覆盖系统设置)

暗色模式的实现依赖于 ArkUI 的@Styles和主题变量。每一个颜色值都需要准备 light 和 dark 两个版本:

// 暗色模式的颜色定义constCOLORS={background:{light:'#F5F5F5',dark:'#1A1A2E'},cardBackground:{light:'#FFFFFF',dark:'#2D2D44'},textPrimary:{light:'#1C1C1E',dark:'#F5F5F5'},textSecondary:{light:'#8E8E93',dark:'#A0A0A0'},};

工程化改进

单元测试覆盖率 80%

当前 HarmonyKit 的测试覆盖率主要集中在 utils 层的工具函数(JsonUtils、Base64Utils 等),pages 层的 UI 测试较少。v2.0 的目标是:

  • utils 层:100% 覆盖率(纯函数,容易测试)
  • pages 层:关键交互路径的 UI 测试(输入 → 点击 → 验证输出)
  • components 层:90% 覆盖率(ToolCard、CopyButton 的渲染和交互)

ArkTS 的测试框架使用 @ohos/hypium,支持 LocalUnitTest(本地测试,不依赖模拟器)和 ohosTest(真机/模拟器测试)。

CI/CD 自动化构建

当前 HarmonyKit 的构建流程是手动的:hvigor clean && hvigor build+ 签名的 APK/HAP 生成。v2.0 计划使用 GitHub Actions / 码云 CI 实现自动化:

  1. 推送代码到 main 分支 → 自动触发构建
  2. 构建通过 → 自动运行单元测试
  3. 测试通过 → 自动签名 → 生成 HAP
  4. 发布 Release → 在项目页面提供下载链接

AppGallery 正式上架

HarmonyKit 当前仅在项目仓库中提供源码和构建指南。v2.0 的目标是上架华为 AppGallery,让更多用户可以安装使用。上架流程包括:

  • 注册鸿蒙开发者账号
  • 准备上架材料(应用截图、描述、隐私政策)
  • 提交审核
  • 处理审核反馈

做一个工具不难,把过程记录下来才有价值。这些文章的目标读者是"下一个 HarmonyOS 开发者"——希望你在遇到同样的问题时,能找到这篇文章,说一句"哦,原来这里有人遇到过"。

项目仓库:https://atomgit.com/VON-/harmony-kit