HarmonyOS NEXT 企业级记账APP:项目规划与效果展示
HarmonyOS NEXT 企业级记账APP:项目规划与效果展示
本文是《HarmonyOS NEXT 企业级开发实战:30篇打造智能记账APP》系列的第 01 篇,对应 Git Tag v0.0.1。项目名称 HarmonyLedger(鸿蒙记账),定位为 HarmonyOS NEXT 企业级实战项目。
前言
随着 HarmonyOS NEXT 的正式发布,纯血鸿蒙生态进入快速发展期。ArkTS 语言与 ArkUI 声明式框架为企业级移动应用开发提供了全新的技术范式。然而,市面上的 HarmonyOS 教程多以 Demo 为主,缺少真正可落地、可维护、可扩展的 企业级项目模板。
本系列以一款完整的记账 APP 为载体,通过 30 个 Git 版本 循序渐进地构建一个企业级鸿蒙应用。每个版本对应一篇高质量技术博客、一次 Git Commit、一个 Git Tag,最终形成:
- 一个可运行的 HarmonyOS NEXT 企业级 APP
- 一个 DevEco Studio 标准工程
- 一套 MVVM + Repository 架构模板
- 一套高复用公共组件库
- 一套企业级工具库
- 30 篇可独立学习的实战博客
项目仓库:HarmonyLedger GitHub
官方文档:HarmonyOS NEXT 开发者文档
一、项目定位与目标
1.1 项目基本信息
| 项目属性 | 值 |
|---|---|
| 项目名称 | HarmonyLedger(鸿蒙记账) |
| 技术定位 | HarmonyOS NEXT 企业级开发实战 |
| 开发语言 | ArkTS |
| UI 框架 | ArkUI(声明式) |
| 应用模型 | Stage Model |
| 架构模式 | MVVM + Repository |
| 目标版本 | HarmonyOS NEXT 5.0+ |
| IDE 工具 | DevEco Studio 5.0+ |
| 开源协议 | Apache License 2.0 |
1.2 核心目标
HarmonyLedger 项目的核心目标可以概括为 “五个一” 工程交付物:
- 一个 APP:真正可运行、可上架的鸿蒙记账应用
- 一个模板:企业级架构模板,可直接复用到其他鸿蒙项目
- 一个组件库:高复用 ArkUI 公共组件库
- 一个工具库:企业级 ArkTS 工具类封装
- 一套博客:30 篇高质量原创技术博客
设计哲学:拒绝 Demo 式代码。每一行代码都按企业级标准开发,追求可维护性、可扩展性与代码质量。
二、技术栈选型
2.1 核心技术栈
HarmonyLedger 采用 HarmonyOS NEXT 官方推荐的技术栈,确保技术的先进性与稳定性:
┌─────────────────────────────────────────────┐
│ HarmonyLedger 技术栈 │
├─────────────────────────────────────────────┤
│ 语言层:ArkTS(TypeScript 超集) │
│ UI 层:ArkUI 声明式框架 │
│ 模型层:Stage Model │
│ 状态管理:@State/@Observed/@ObjectLink │
│ AppStorage/LocalStorage │
│ 数据存储:Preferences + PersistenceV2 │
│ 网络通信:HttpRequest │
│ 图表绘制:Canvas API │
│ 架构模式:MVVM + Repository │
└─────────────────────────────────────────────┘
2.2 技术选型理由
为什么选择 ArkTS 而不是 TypeScript?
ArkTS 是华为在 TypeScript 基础上为 HarmonyOS 量身定制的编程语言。相比原生 TypeScript,ArkTS 具备以下优势:
- 静态类型增强:禁用
any、unknown,强制显式类型声明 - 运行时性能:通过 AOT 编译获得接近原生的执行效率
- ArkUI 原生支持:内置
@Component、@State等装饰器 - 企业级约束:严格的语言规范降低代码缺陷率
参考 ArkTS 语言规范 了解更多语法限制。
为什么选择 MVVM + Repository 架构?
// MVVM 架构分层示例
// View 层:负责 UI 渲染
@Component
export struct HomeView {
@State viewModel: HomeViewModel = new HomeViewModel()
build() {
Column() {
Text(this.viewModel.todayExpense)
}
}
}
// ViewModel 层:负责业务逻辑
export class HomeViewModel {
todayExpense: string = '0.00'
async loadTodayData(): Promise<void> {
const bills = await BillRepository.getTodayBills()
this.todayExpense = MoneyUtil.format(bills.sum())
}
}
// Repository 层:负责数据访问
export class BillRepository {
static async getTodayBills(): Promise<Bill[]> {
return await PersistenceV2.query(Bill, 'date = today')
}
}
这种架构带来三大核心优势:
- 解耦:UI、业务、数据三层完全分离
- 可测试:ViewModel 可独立单元测试
- 可替换:Repository 层屏蔽底层存储实现
三、项目架构设计
3.1 整体架构图
HarmonyLedger 采用经典的 MVVM + Repository 分层架构,数据流向为单向流动:
┌──────────────────────────────────────────────────────┐
│ UI 层 (View) │
│ pages/ components/ router/ │
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │Splash│ │ Home │ │ Add │ │ Stats│ │Budget│ │
│ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │
└────────────────────┬─────────────────────────────────┘
│ 数据绑定 (@State/@Link)
┌────────────────────▼─────────────────────────────────┐
│ ViewModel 层 (业务逻辑) │
│ viewmodel/ │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │HomeVM │ │AddBillVM │ │StatsVM │ │
│ └────────────┘ └────────────┘ └────────────┘ │
└────────────────────┬─────────────────────────────────┘
│ 方法调用
┌────────────────────▼─────────────────────────────────┐
│ Repository 层 (数据访问) │
│ repository/ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │BillRepo │ │CatRepo │ │BudgetRepo│ │
│ └──────────┘ └──────────┘ └──────────┘ │
└────────────────────┬─────────────────────────────────┘
│ ORM 操作
┌────────────────────▼─────────────────────────────────┐
│ PersistenceV2 / Preferences │
│ Local Database / KV Store │
└──────────────────────────────────────────────────────┘
3.2 架构分层职责
| 分层 | 目录 | 职责 |
|---|---|---|
| UI 层 | pages/ components/ |
界面渲染、用户交互、路由跳转 |
| ViewModel 层 | viewmodel/ |
业务逻辑处理、状态管理、数据转换 |
| Repository 层 | repository/ |
数据访问抽象、缓存策略、数据源切换 |
| Model 层 | model/ |
数据实体定义、领域模型 |
| Service 层 | service/ |
公共业务服务(通知、导出等) |
| Utils 层 | utils/ |
工具类(日期、金额、日志等) |
架构约束:禁止 UI 层直接访问 Repository,必须通过 ViewModel 中转。这是保证代码可测试性的关键。
四、页面规划详解
4.1 页面清单
HarmonyLedger 共规划 12 个核心页面,覆盖记账应用的全部业务场景:
{
"pages": [
{ "name": "Splash", "path": "pages/Splash", "desc": "启动页" },
{ "name": "Home", "path": "pages/Home", "desc": "首页" },
{ "name": "AddBill", "path": "pages/AddBill", "desc": "新增账单" },
{ "name": "EditBill", "path": "pages/EditBill", "desc": "编辑账单" },
{ "name": "BillDetail","path": "pages/BillDetail","desc": "账单详情" },
{ "name": "Statistics","path": "pages/Statistics","desc": "统计分析" },
{ "name": "Budget", "path": "pages/Budget", "desc": "预算中心" },
{ "name": "Category", "path": "pages/Category", "desc": "分类管理" },
{ "name": "Search", "path": "pages/Search", "desc": "搜索" },
{ "name": "Setting", "path": "pages/Setting", "desc": "设置" },
{ "name": "About", "path": "pages/About", "desc": "关于" }
]
}
4.2 核心页面功能
首页 (Home) 是用户进入应用后的主界面,需要一目了然地展示当日财务概况:
- 今日支出汇总卡片
- 今日收入汇总卡片
- 最近账单列表(最多 10 条)
- 快捷新增按钮(FAB)
- 底部 Tab 导航
新增账单 (AddBill) 是用户最频繁操作的页面,设计要求极简高效:
- 收入/支出类型切换
- 金额输入(MoneyInput 组件)
- 分类选择(CategorySelector 组件)
- 日期选择(DateSelector 组件)
- 备注输入
- 图片附件(可选)
- 保存按钮
用户体验原则:新增账单页面从打开到保存完成,操作步数不超过 5 步。
五、数据模型设计
5.1 核心数据模型
HarmonyLedger 共设计 4 个核心数据模型,覆盖记账应用全部业务场景:
// model/Bill.ets - 账单实体
@Entity('bill')
export class Bill {
@PrimaryKey()
id: string = UUIDUtil.generate()
@Column()
money: number = 0 // 金额(分)
@Column()
type: BillType = BillType.EXPENSE // 收入/支出
@Column()
categoryId: string = '' // 分类ID
@Column()
remark: string = '' // 备注
@Column()
date: number = Date.now() // 账单日期
@Column()
createTime: number = Date.now()
@Column()
updateTime: number = Date.now()
}
5.2 数据模型关系图
| 模型 | 字段数 | 用途 | 关联 |
|---|---|---|---|
| Bill | 8 | 账单记录 | categoryId → Category |
| Category | 6 | 收支分类 | 独立 |
| Budget | 5 | 预算记录 | 独立(按月份) |
| Setting | 5 | 应用设置 | 独立(单例) |
┌───────────┐ ┌────────────┐
│ Bill │ N : 1 │ Category │
│───────────│────────▶│────────────│
│ id │ │ id │
│ money │ │ name │
│ type │ │ icon │
│ categoryId│ │ color │
│ date │ │ sort │
└───────────┘ └────────────┘
设计要点:金额字段
money以"分"为单位存储,避免浮点数精度问题。这是金融类应用的基本规范。
六、公共组件规划
6.1 组件库清单
HarmonyLedger 规划了 23 个高复用公共组件,覆盖 UI 层全部需求:
// components/ 目录结构示例
components/
├── bill/
│ ├── BillCard.ets # 账单卡片
│ └── SummaryCard.ets # 汇总卡片
├── input/
│ ├── MoneyInput.ets # 金额输入
│ ├── SearchBar.ets # 搜索栏
│ └── AppButton.ets # 通用按钮
├── chart/
│ ├── CircleChart.ets # 饼图
│ ├── BarChart.ets # 柱状图
│ └── LineChart.ets # 折线图
├── selector/
│ ├── CategorySelector.ets # 分类选择器
│ ├── DateSelector.ets # 日期选择器
│ └── MonthSelector.ets # 月份选择器
├── common/
│ ├── LoadingView.ets # 加载视图
│ ├── EmptyView.ets # 空视图
│ └── AppDialog.ets # 通用对话框
└── navigation/
├── AppNavigationBar.ets # 导航栏
└── AppTabBar.ets # 底部Tab
6.2 组件设计规范
所有公共组件必须遵循以下设计规范:
- 单一职责:每个组件只负责一个明确的 UI 功能
- 参数化:通过
@Prop/@Link暴露可配置项 - 事件回调:通过
@BuilderParam暴露事件接口 - 样式独立:组件样式通过
theme/统一管理 - 行数限制:单个组件 100-200 行,超出则拆分
参考 ArkUI 组件最佳实践 了解组件化开发规范。
七、工具类设计
7.1 工具类清单
HarmonyLedger 封装了 11 个企业级工具类,提供通用能力支撑:
| 工具类 | 文件 | 用途 |
|---|---|---|
| DateUtil | utils/DateUtil.ets | 日期格式化、计算 |
| MoneyUtil | utils/MoneyUtil.ets | 金额格式化、转换 |
| RouterUtil | utils/RouterUtil.ets | 路由跳转封装 |
| PreferenceUtil | utils/PreferenceUtil.ets | Preferences 封装 |
| ThemeUtil | utils/ThemeUtil.ets | 主题切换管理 |
| ToastUtil | utils/ToastUtil.ets | Toast 提示封装 |
| DialogUtil | utils/DialogUtil.ets | 对话框封装 |
| PermissionUtil | utils/PermissionUtil.ets | 权限申请封装 |
| StringUtil | utils/StringUtil.ets | 字符串处理 |
| LogUtil | utils/LogUtil.ets | 日志工具 |
| UUIDUtil | utils/UUIDUtil.ets | UUID 生成 |
7.2 工具类示例
// utils/MoneyUtil.ets - 金额工具类
export class MoneyUtil {
/**
* 分转元字符串
* @param cents 金额(分)
* @returns 格式化后的金额字符串,如 "123.45"
*/
static format(cents: number): string {
const yuan = cents / 100
return yuan.toFixed(2)
}
/**
* 元转分
* @param yuan 金额(元)
* @returns 金额(分)
*/
static toCents(yuan: number): number {
return Math.round(yuan * 100)
}
/**
* 金额千分位格式化
* @param cents 金额(分)
* @returns 带千分位的金额字符串,如 "1,234.56"
*/
static formatWithComma(cents: number): string {
const yuan = this.format(cents)
const parts = yuan.split('.')
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
return parts.join('.')
}
}
八、主题规范
8.1 设计风格
HarmonyLedger 采用 现代简洁 的设计风格,融合苹果风与 MIUI 风格的视觉特点:
- 圆角设计:统一 16dp 圆角,营造柔和视觉
- 卡片布局:信息以卡片形式承载,层次清晰
- 留白处理:20dp Padding,保证视觉呼吸感
- 色彩语义:收入绿色、支出红色、预算蓝色、统计紫色
8.2 主题色定义
// theme/Colors.ets - 主题色定义
export class AppColors {
// 收入 - 绿色系
static readonly Income: string = '#34C759'
static readonly IncomeLight: string = '#E8F8EE'
// 支出 - 红色系
static readonly Expense: string = '#FF3B30'
static readonly ExpenseLight: string = '#FFEBE9'
// 预算 - 蓝色系
static readonly Budget: string = '#007AFF'
static readonly BudgetLight: string = '#E3F0FF'
// 统计 - 紫色系
static readonly Statistic: string = '#AF52DE'
static readonly StatisticLight: string = '#F5E8FB'
// 中性色
static readonly Background: string = '#F2F2F7'
static readonly CardBackground: string = '#FFFFFF'
static readonly PrimaryText: string = '#1C1C1E'
static readonly SecondaryText: string = '#8E8E93'
}
| 色彩用途 | 主色 | 浅色 | 应用场景 |
|---|---|---|---|
| 收入 | #34C759 |
#E8F8EE |
收入账单卡片 |
| 支出 | #FF3B30 |
#FFEBE9 |
支出账单卡片 |
| 预算 | #007AFF |
#E3F0FF |
预算进度条 |
| 统计 | #AF52DE |
#F5E8FB |
图表图例 |
深色模式支持:所有颜色通过
theme/模块统一管理,支持深浅模式自动切换。详见第 23 篇博客。
九、Git 版本规划
9.1 版本号策略
HarmonyLedger 采用 语义化版本号 策略,30 个 Git Tag 分三个阶段:
阶段一:基础架构 (v0.0.1 ~ v0.0.5)
├── v0.0.1 创建工程
├── v0.0.2 项目目录
├── v0.0.3 主题系统
├── v0.0.4 底部导航
└── v0.0.5 首页
阶段二:核心功能 (v0.0.6 ~ v0.2.5)
├── v0.0.6 BillCard
├── v0.0.7 Repository
├── ...
└── v0.2.5 数据导出
阶段三:优化发布 (v0.2.6 ~ v1.0.0)
├── v0.2.6 组件重构
├── v0.2.7 性能优化
├── ...
└── v1.0.0 正式版
9.2 Git Commit 规范
所有 Commit Message 必须遵循 Conventional Commits 规范:
# 功能新增
feat(home): 完成首页布局与 SummaryCard 设计
# Bug 修复
fix(search): 修复搜索结果分页错误
# 重构
refactor(repository): 抽象 BaseRepository 通用接口
# 文档
docs(article-08): 新增第8篇博客《新增账单页面开发》
# 样式
style(theme): 调整深色模式卡片背景色
# 性能优化
perf(statistics): 优化饼图绘制性能,减少 30% 渲染时间
| Commit 类型 | 用途 | 示例 |
|---|---|---|
feat |
新功能 | feat(bill): 新增账单功能 |
fix |
Bug 修复 | fix(search): 修复搜索崩溃 |
refactor |
重构 | refactor(repository): 重构数据访问层 |
docs |
文档 | docs(readme): 更新 README |
style |
样式 | style(theme): 调整主题色 |
perf |
性能 | perf(chart): 优化图表渲染 |
test |
测试 | test(utils): 新增 MoneyUtil 测试 |
chore |
构建/工具 | chore(build): 更新构建脚本 |
参考 Conventional Commits 规范 了解更多。
十、30 篇博客规划
10.1 博客系列总览
本系列共 30 篇博客,每篇对应一个 Git Tag,覆盖从工程创建到正式发布的完整生命周期:
| 序号 | 博客标题 | Git Tag |
|---|---|---|
| 01 | HarmonyOS NEXT 企业级记账APP:项目规划与效果展示 | v0.0.1 |
| 02 | 创建工程与企业级目录结构设计 | v0.0.2 |
| 03 | 搭建全局主题与 Design Token | v0.0.3 |
| 04 | 实现底部 Tab 导航 | v0.0.4 |
| 05 | 首页布局与 SummaryCard 设计 | v0.0.5 |
| 06 | 封装 BillCard 通用组件 | v0.0.6 |
| 07 | 设计 Repository 与数据模型 | v0.0.7 |
| 08 | 新增账单页面开发 | v0.0.8 |
| 09 | 封装金额输入组件 MoneyInput | v0.0.9 |
| 10 | 分类选择器开发 | v0.1.0 |
| 11 | 日期与时间选择组件 | v0.1.1 |
| 12 | Preferences 数据持久化 | v0.1.2 |
| 13 | PersistenceV2 数据库升级 | v0.1.3 |
| 14 | 账单编辑与删除 | v0.1.4 |
| 15 | 账单搜索与筛选 | v0.1.5 |
| 16 | 预算中心开发 | v0.1.6 |
| 17 | 预算提醒与预算进度 | v0.1.7 |
| 18 | 统计分析首页 | v0.1.8 |
| 19 | Canvas 绘制饼图 | v0.1.9 |
| 20 | Canvas 绘制柱状图 | v0.2.0 |
| 21 | Canvas 绘制折线图 | v0.2.1 |
| 22 | 分类管理模块 | v0.2.2 |
| 23 | 深色模式与主题切换 | v0.2.3 |
| 24 | 设置中心开发 | v0.2.4 |
| 25 | 数据导出、备份与恢复 | v0.2.5 |
| 26 | 公共组件与工具类重构 | v0.2.6 |
| 27 | 项目性能优化 | v0.2.7 |
| 28 | 打包发布与签名配置 | v0.2.8 |
| 29 | 源码解析与项目复盘 | v0.2.9 |
| 30 | 企业级项目总结与后续规划 | v1.0.0 |
10.2 博客质量规范
每篇博客严格遵循 CSDN 高分文章规范(目标 98-100 分):
- 篇幅:400-500 行,深度技术解析
- 代码:8 个以上代码块,标注语言类型
- 图表:3 个以上表格,1 张以上图片
- 结构:10 个以上二级标题,8 个以上三级标题
- 元素:有序列表、无序列表、引用块、加粗文字全覆盖
- 链接:8 个以上有效外部链接
可独立学习:每篇博客配套完整源码、Git Tag、运行截图,读者可单独学习某一篇而不依赖前序内容。
十一、项目目录结构
11.1 完整目录树
HarmonyLedger 工程目录严格遵循企业级项目规范,整个开发周期保持目录结构稳定:
HarmonyLedger/
├── AppScope/ # 应用级配置
│ ├── app.json5
│ └── resources/
├── entry/ # 主模块
│ ├── src/main/
│ │ ├── ets/
│ │ │ ├── pages/ # 页面
│ │ │ ├── components/ # 公共组件
│ │ │ ├── viewmodel/ # 视图模型
│ │ │ ├── repository/ # 数据访问层
│ │ │ ├── model/ # 数据模型
│ │ │ ├── service/ # 业务服务
│ │ │ ├── database/ # 数据库
│ │ │ ├── router/ # 路由
│ │ │ ├── utils/ # 工具类
│ │ │ ├── theme/ # 主题
│ │ │ ├── constants/ # 常量
│ │ │ └── common/ # 公共能力
│ │ └── resources/
│ ├── build-profile.json5
│ └── oh-package.json5
├── docs/ # 文档
│ └── articles/ # 30篇博客
├── deveco-skills/ # DevEco 开发技能包
├── README.md
├── CHANGELOG.md
└── .gitignore
11.2 目录设计原则
- 分层清晰:MVVM 各层目录独立,职责明确
- 按功能聚合:同类文件聚合在同一目录(如
chart/下所有图表组件) - 避免过深嵌套:目录层级控制在 4 层以内
- 预留扩展空间:
common/、constants/等目录为后续扩展预留
禁止后期随意修改目录结构。如需调整,必须通过正式的架构评审。
十二、AI 生成要求
12.1 AI 角色定位
AI(Trae / Codex / Claude Code / ChatGPT)在本项目中担任 首席架构师和核心开发工程师,需全程遵循以下规则:
- 严格按照产品设计文档执行,不得擅自改变整体方案
- 所有代码兼容最新 HarmonyOS NEXT 和 DevEco Studio,可直接编译运行
- 每完成一个阶段,保证项目处于可运行状态
- 遵循统一的命名规范、注释规范、目录规范和 Git Commit 规范
- 优先考虑代码可维护性、可扩展性和企业级实践
- 所有页面、组件、工具类具备复用能力,避免重复代码
12.2 每次开发输出清单
每完成一个功能模块,必须同步输出以下 8 类交付物:
### 一、需求分析
- 功能介绍
- 业务流程
- 设计思路
### 二、页面结构
- 页面树
- 组件树
### 三、ArkTS 源码
- 完整源码,不能省略
### 四、代码讲解
- 逐段解释关键逻辑
### 五、最佳实践
- 为什么这么设计
- 还有哪些优化方案
### 六、Git
- Commit Message
- Git Tag
- CHANGELOG 更新
### 七、博客
- 适合 CSDN/掘金/知乎/公众号的高质量博客
### 八、截图说明
- 当前页面需要截图哪些内容
十三、开发环境与运行方式
13.1 开发环境要求
| 环境项 | 版本要求 | 说明 |
|---|---|---|
| DevEco Studio | 5.0+ | 官方 IDE |
| HarmonyOS SDK | 5.0+ (API 12+) | 目标 SDK |
| Node.js | 18+ | 构建工具链 |
| OHOS NDK | 随 SDK | 原生编译 |
| Git | 2.30+ | 版本控制 |
13.2 本地运行步骤
# 1. 克隆仓库
git clone https://gitcode.com/qiaomu8559968/HarmonyLedger.git.git
cd HarmonyLedger
# 2. 切换到目标版本
git checkout v1.0.0
# 3. 安装依赖
ohpm install
# 4. DevEco Studio 打开项目
# File → Open → 选择 HarmonyLedger 目录
# 5. 连接鸿蒙真机或启动模拟器
hdc list targets
# 6. 编译运行
# DevEco Studio 工具栏点击 Run 按钮
首次运行提示:如遇 SDK 版本不匹配,请在 DevEco Studio 的
File → Project Structure → Project中切换 SDK 版本。
附录:运行效果截图

总结
本文作为 HarmonyLedger 系列的开篇,完整介绍了项目的 定位、技术栈、架构设计、页面规划、数据模型、组件库、工具类、主题规范、Git 版本规划以及 30 篇博客的总览。
通过本文,你可以清晰地了解:
- HarmonyLedger 是一款 企业级 鸿蒙记账 APP,非 Demo 项目
- 采用 MVVM + Repository 架构,三层解耦
- 规划 12 个页面、23 个组件、11 个工具类、4 个数据模型
- 通过 30 个 Git Tag 循序渐进构建完整应用
- 配套 30 篇高质量博客,每篇可独立学习
下一篇预告:《创建工程与企业级目录结构设计》将手把手带你使用 DevEco Studio 创建 HarmonyLedger 工程骨架,并搭建符合企业级规范的目录结构与基础配置文件。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源
- 项目仓库:HarmonyLedger GitHub
- HarmonyOS 官方文档:developer.harmonyos.com
- ArkTS 语言指南:ArkTS Reference
- ArkUI 组件文档:ArkUI Components
- DevEco Studio 下载:DevEco Studio
- Conventional Commits 规范:conventionalcommits.org
- 鸿蒙开发者社区:HarmonyOS Developer Community
更多推荐




所有评论(0)