#星光不负 码向未来#我的鸿蒙学习历程 原创
我的鸿蒙学习历程
鸿蒙学习于我而言,是一场伴随技术迭代的成长之旅。从初次接触时的懵懂探索,到亲历版本演进的迭代升级,再到站上行业盛会的现场见证,每一个节点都镌刻着技术探索的印记。正好借着这次机会把学习过程中的关键节点记录下来,回顾一下这段循序渐进的学习之路~
一、2023年11月 鸿蒙学堂·师资培训深圳站
这是我与鸿蒙技术正式“深度绑定”的起点。在此之前,虽对鸿蒙系统有所耳闻,但仅停留在“国产自研操作系统”的宏观认知层面,对于开发逻辑、API设计等实操内容一无所知。此次师资培训深圳站,以系统化的课程体系为我搭建了鸿蒙开发的基础框架。
培训期间,我首次全面接触到当时主流的API 9版本,从应用工程结构、方舟开发框架的基础语法,到组件化开发、状态管理等核心能力,都通过理论讲解加实操演练的方式逐一攻克。印象尤为深刻的是,培训中强调的“一次开发、多端部署”理念,与我此前接触的其他开发体系形成鲜明对比,也让我瞬间捕捉到鸿蒙生态的核心优势。此外,与来自各地的开发者、讲师交流时,大家对鸿蒙生态未来的期待与探讨,更坚定了我深耕这一领域的决心。这次培训不仅是技术启蒙,更像是为我打开了一扇通往鸿蒙生态的大门,让我清晰地看到了技术学习的方向。




二、从API 9到API 20的版本演进见证
如果说师资培训是“入门钥匙”,那么伴随API从9到20的多次迭代,则是我实现“从会用到精通”的关键阶段。这段历程中,看着版本更迭逐步修复了开发中的痛点,坑点和他一起成长,深刻体会到国产操作系统快速进化的活力。API 9作为我的启蒙版本,其核心能力虽已能满足基础应用开发需求,但在部分细节上仍有优化空间——比如早期部分组件的兼容性适配、api的完备程度不够,都曾是我在实操中遇到的“拦路虎”。而随着后续版本的持续更新,我亲眼见证了鸿蒙技术的逐步成熟,话不多说,贴几个我记忆犹新的点,不知道你有没有经历过呢~
1. 双向绑定:从专属组件到全场景适配,语法更直观
用过Vue的小伙伴应该都清楚,双向绑定是一个非常好用的语法,但是在API 9时代的双向绑定有点一言难尽,居然只有Refresh组件能原生支持,想在TextInput这类高频组件上实现数据双向同步,得手动写事件监听+数据赋值的冗余代码。比如实现一个简单的输入框内容同步,代码得绕个弯:
// API 9 非Refresh组件实现双向绑定的“笨办法”
@State inputValue: string = "";
build() {
Column() {
TextInput({ placeholder: '请输入内容' })
.onChange((value) => {
// 手动同步输入值到状态变量
this.inputValue = value;
})
Text(`输入内容:${this.inputValue}`)
}
}
后续版本不仅将双向绑定能力推广到TextInput、Picker、Scroll等常用组件,还把语法从$$简化为!!,同样的功能,但是$$写的时候没有提示,并且有个版本的DevEco还会爆红(可以正常运行),相比之下用了!!就没有这个问题:
// API 12+ 双向绑定简洁实现
@State inputValue: string = "";
build() {
Column() {
// 使用!!语法直接实现双向绑定
TextInput({ placeholder: '请输入内容', text: !!this.inputValue })
Text(`输入内容:${this.inputValue}`)
}
}
2. ArkTS兼容TS
API9使用的是TS,但是到了API10之后转为了ArkTS开发,虽然是TS的超集但并不是所有语法都兼容,前端JS 或者TS转过来的小伙伴这里会有点难受,好在ArkTS官方有一个专门的说明文档,当初API9到API10迁移的时候这个文档帮了我很多忙,更多的细节这里就不展开了,写一个大伙可能不知道的小tips,如何在ArkTS中用any
// xxx.ts文件,param使用any类型
export function sayHI(param: any) {
console.log(param);
}
// xxx.ets文件 导入 ts文件,直接使用即可间接使用any
import { sayHI } from './xxx';
sayHI('123')
需要注意的是,DevEco无法直接创建ts文件,我们需要创建文件,手动添加.ts的后缀名。
3. AI编程工具从“聊胜于无”到专属CodeGenie加持
初期开发鸿蒙时,AI编程工具的支持堪称“痛点”。主流工具对ArkTS语法识别准确率极低,代码补全经常出错,比如下面的UI代码
NoteList() {
return (
<Column className="note-list-container">
<List className="note-list">
{this.notes.map(note => this.NoteListItem(note))}
</List>
{/* 无笔记提示 */}
{this.isNoNotesTipVisible && (
<Column className="no-notes-tip">
<Text className="no-notes-text">暂无笔记</Text>
<Text className="create-first-note">点击右上角按钮创建第一条笔记</Text>
</Column>
)}
</Column>
);
}

不过好在随着ArkTS代码逐步的推广,AI工具的语料多起来了,目前使用的Trae,Cursor,Qoder等工具支持度都逐步提升,并且华为还推出专属鸿蒙AI开发工具CodeGenie,它能精准识别ArkTS语法,不仅能自动补全API,还能根据场景生成完整代码块,页面的生成,服务卡片的生成都是独一档的存在,综上现在app开发相比于初期ai的助力会更大一些。

三、2025年受邀参加HDC活动
如果说日常学习,开发是“低头深耕”,那么2025年受邀参加HDC(华为开发者大会)则让我实现了“抬头看路”,从更宏观的视角理解鸿蒙生态的发展脉络。作为鸿蒙生态的年度盛会,此次HDC不仅展示了最新的技术成果,更勾勒出未来的生态布局,让我的学习方向有了更清晰的定位。
活动现场,我亲眼目睹了比API 20更前沿的技术演示——比如更流畅的跨设备无缝流转、更强大的低代码开发平台、更开放的生态合作接口等,这些内容让我意识到,鸿蒙开发早已超越“单一应用开发”的范畴,正朝着“全场景生态构建”的方向迈进。此外,在开发者分论坛上,与鸿蒙官方技术专家、行业资深开发者的交流中,我了解到API迭代背后的技术考量,以及不同行业(如智能家居、车联网、医疗健康)基于鸿蒙的开发实践。
这次经历最大的收获,是打破了“单一开发者”的认知局限。我意识到,鸿蒙学习不能仅停留在技术层面,还需要结合生态场景、行业需求进行拓展。



四、2026及之后的持续探索
回顾从2023年到2025年的学习历程,从师资培训的启蒙,到版本迭代的深耕,再到HDC活动的视野拓展,我已完成从“鸿蒙新手”到“熟练开发者”的蜕变。但鸿蒙生态仍在高速发展,2026及未来,我的学习之路也将迎来新的阶段。
后续,我计划从两个方向深化学习:一是聚焦鸿蒙生态的新兴场景,如车机应用开发、工业互联网场景适配等,结合行业需求提升技术的“落地能力”;二是参与鸿蒙开源社区的贡献,将自己在版本适配、场景开发中积累的经验转化为开源案例或技术文章,与更多开发者共享成长。同时,我也期待见证鸿蒙API在未来持续迭代中实现更强大的能力,更期待自己能在这场生态建设中,成为既懂技术又懂场景的核心参与者。
这段学习历程,早已超越“掌握一项技术”的意义——它让我亲历了国产操作系统的崛起,也让我在技术迭代中实现了自我成长。未来,与鸿蒙共成长的脚步,从未停歇。



















