HarmonyKit | 鸿蒙开发展望:HarmonyKit 未来路线图与社区共建
HarmonyKit | 鸿蒙开发展望HarmonyKit 未来路线图与社区共建引言10 个工具是起点HarmonyKit 的 10 个工具覆盖了开发者日常高频需求。但还有更多值得加入的工具——二维码生成、JWT 调试、Markdown 预览。这篇文章规划了 v2.0 的新工具候选、架构升级方向、工程化改进和社区共建模式。50 篇文章贯穿了从项目启动到 v1.0 发布的完整过程。每一篇都基于 HarmonyKit 项目中的真实实践——不是在写教程而是在记录我们是怎么做的。项目仓库https://atomgit.com/VON-/harmony-kitv2.0 新工具候选工具优先级技术方案复杂度二维码生成器P0Canvas API 绘制 QR Code离线生成⭐⭐⭐JWT 调试器P1解析 JWT header/payloadBase64 解码展示⭐⭐图片 Base64P1图片文件编码为 Data URL支持粘贴图片⭐⭐Unicode 码点转换P2字符 ↔ 码点双向转换⭐Markdown 预览P2Markdown→HTMLWebView 渲染⭐⭐⭐图形验证码生成器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 调试器P1JWT 调试器的核心逻辑就是 Base64 解码 JSON 格式化——这两个能力 HarmonyKit 已经有了Base64Tool 和 JsonFormatter。JWT 调试器只是将两者组合起来再加上对 JWT 三个部分header、payload、signature的分段展示。// JWT 调试器的核心逻辑functiondecodeJWT(token:string):JwtResult{constpartstoken.split(.);if(parts.length!3){return{valid:false,error:无效的 JWT 格式};}constheader:stringBase64Utils.decode(parts[0]);constpayload:stringBase64Utils.decode(parts[1]);constsignature:stringparts[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.pushUrlEntry的导航方案迁移到NavPathStackHdsNavigation的声明式导航体系。迁移内容包括主页 Index.ets 重写为 HdsNavigation 根容器10 个工具页从 Entry 改为普通 Component所有页面的 titleBar 由 HdsNavDestination 统一管理路由声明从main_pages.json迁移到 Builder 中的 NavMap这个迁移的 ROI投资回报率评估正面效果统一导航体验、更灵活的路由参数、自动页面管理迁移成本11 个页面的重写 约 2-3 天的工作量风险导航不稳定可能导致回归 bug沉浸光感全面应用SDK 26 发布后将所有卡片背景、标题栏、底部导航栏都开启 systemMaterial 效果。当前沉浸光感仅应用在 HdsTabsv2.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 实现自动化推送代码到 main 分支 → 自动触发构建构建通过 → 自动运行单元测试测试通过 → 自动签名 → 生成 HAP发布 Release → 在项目页面提供下载链接AppGallery 正式上架HarmonyKit 当前仅在项目仓库中提供源码和构建指南。v2.0 的目标是上架华为 AppGallery让更多用户可以安装使用。上架流程包括注册鸿蒙开发者账号准备上架材料应用截图、描述、隐私政策提交审核处理审核反馈做一个工具不难把过程记录下来才有价值。这些文章的目标读者是下一个 HarmonyOS 开发者——希望你在遇到同样的问题时能找到这篇文章说一句哦原来这里有人遇到过。项目仓库https://atomgit.com/VON-/harmony-kit