
#星光不负 码向未来#初学者鸿蒙的历程心得 原创
初学者鸿蒙的历程
我的鸿蒙学习之旅始于今年六月。在大学时,我只是对鸿蒙有所耳闻,作为软件工程专业的学生,虽怀揣着在本行业发光发热的梦想,但对前路仍不免迷茫。
初次接触鸿蒙,我本以为它与其他前端技术大同小异,但深入了解后,它却带来了十足的惊喜。目睹华为正全力推动鸿蒙生态的发展,我清晰地看到了其中蕴含的机遇!自此,我满怀好奇与动力,踏上了与鸿蒙共同成长的道路。
从0到1的突破:首个项目成功上架
近期,我成功将三款应用上架到了应用市场,它们分别是:朋友圈文案助手、动能盒和康测盒。
在此,我尤其想感谢我的鸿蒙导师——万少。他是我开发路上的引路人,在我的第一个项目从零到一的过程中,万少提供了数不尽的帮助。每当遇到技术难题,他总能以渊博的知识和极大的耐心,为我指点迷津。在此,我想向万少表达最诚挚的谢意!
#星光不负 码向未来#初学者鸿蒙的历程心得
图注:这位大佬的技术博客截图,他的文章总能给我带来新的启发。
此外我开发的项目也是基于DevEco Studio 6.0.0Release开发,目前这个版相对也是比较稳定,并且支持了许许多多的新特性
#星光不负 码向未来#初学者鸿蒙的历程心得
我也是在官方开发者联盟当中的最佳实践和行业样板间了我很大的启示
#星光不负 码向未来#初学者鸿蒙的历程心得
这里又许许多多前辈们总结的经验和一些好用的UI组件
#星光不负 码向未来#初学者鸿蒙的历程心得
#星光不负 码向未来#初学者鸿蒙的历程心得
从八月份开始,我的第一个项目朋友圈文案经过一个月的时间同项目小伙伴们的共同努力以及万少和我搭伙的前端小伙伴给了我很大的帮助,我的第一个项目也终于完成了
#星光不负 码向未来#初学者鸿蒙的历程心得
当时真的是无比激励,就像是自己的孩子一样看着他成长,因为有团队的小伙伴帮助这次上架还是比较顺利,让我也萌发出了自己独立开发一个项目的想法,于是我的第二个项目就这样开始了。。。。
#星光不负 码向未来#初学者鸿蒙的历程心得
经过上次上架的经历我原本以为这次也会非常顺利的上架到应用市场,但是现实给我了非常沉重的打击,脱离了团队的帮助这个项目我只有一点点的去打磨推敲,却一次次的给我驳回。。。
#星光不负 码向未来#初学者鸿蒙的历程心得
那段时间,我几近放弃。每当看到同行开发者们分享的上架喜讯,再对比自己停滞不前的项目,数次想过就此止步——但让几个月的心血付之东流,又实在心有不甘。幸而有我的引路人万少,一次次耐心指导,为我点亮前路。最终,当看到应用通过审核、获得华为官方认可的那一刻,我激动得难以自持,活像一位在产房外收到喜讯的老父亲,所有的焦虑与等待,都化为了无比的喜悦与自豪!
#星光不负 码向未来#初学者鸿蒙的历程心得
然而,成功的道路从未平坦。正是那一次次的申请被拒,一次次根据反馈修改优化,为我的成长之路奠定了最坚实的基石。当最终成功上架的喜悦降临,我并未止步。那份来之不易的熟练与自信,让我在国庆假期休整之际,一个新的应用创意再次萌发。于是,我满怀热忱,又一次踏上了全新的上架征程……正所谓“轻舟已过万重山”,前路的挑战已化为我前进的动力。
#星光不负 码向未来#初学者鸿蒙的历程心得
后续经过两次的驳回后,我进行完善和补充,我的第三个作品也是诞生了!!!
#星光不负 码向未来#初学者鸿蒙的历程心得
实战案例:如何使用鸿蒙开放能力
在我以上的开发过程中也是对鸿蒙开放式的新能里有了新的看法
在我上面开发的应用中用到了一个鸿蒙内置的ai朗读功能!!这一点让我十分的惊奇,还是比较好用的
#星光不负 码向未来#初学者鸿蒙的历程心得
使用场景:我开发的应用中有许多文章部分,比如菜谱的制作流程等,当时我也在考虑添加一个朗读的部分让用户不用一直盯着屏幕去看文字,于是我便开始在官网的文档当中发现了有离线ai的能力,可以不用联网就能使用!
在我的项目当中对ai工具进行了封装
import { textToSpeech } from '@kit.CoreSpeechKit';
import { BusinessError, emitter } from '@kit.BasicServicesKit';
export class Speaker {
ttsEngine?: textToSpeech.TextToSpeechEngine;
extraParam: Record<string, Object> = {
"queueMode": 0,
"speed": 1,
"volume": 2,
"pitch": 1,
"languageContext": 'zh-CN',
"audioType": "pcm",
"soundChannel": 3,
"playType": 1
};
initParamsInfo: textToSpeech.CreateEngineParams = {
language: 'zh-CN',
person: 0,
online: 1,
extraParams: { "style": 'interaction-broadcast', "locate": 'CN', "name": 'EngineName' }
};
speakListener?: textToSpeech.SpeakListener;
constructor() {
this.initListener()
this.createEngine()
}
initListener() {
this.speakListener = {
onStart(requestId: string, response: textToSpeech.StartResponse) {
},
onComplete(requestId: string, response: textToSpeech.CompleteResponse) {
if (response.type === 1) {
emitter.emit("eventId");
}
},
onStop(requestId: string, response: textToSpeech.StopResponse) {
if (response.type === 1) {emitter.emit("eventId");}},
onData(requestId: string, audio: ArrayBuffer, response: textToSpeech.SynthesisResponse) {},
onError(requestId: string, errorCode: number, errorMessage: string) {}
};
}
createEngine() {
try {
textToSpeech.createEngine(this.initParamsInfo,
(err: BusinessError, textToSpeechEngine: textToSpeech.TextToSpeechEngine) => {
if (!err) {
this.ttsEngine = textToSpeechEngine;
this.ttsEngine.setListener(this.speakListener);
} else {
}
});
} catch (error) {
let message = (error as BusinessError).message;
let code = (error as BusinessError).code;
}
}
startSpeak(content: string) {
let speakParams: textToSpeech.SpeakParams = {
requestId: Date.now().toString(),
extraParams: this.extraParam
};
this.ttsEngine?.speak(content, speakParams);
}
stopSpeak() {
this.ttsEngine?.stop();
}
shutdownEngine() {
this.ttsEngine?.shutdown();
}
}
让后即可在外部进行引入,非常好用
#星光不负 码向未来#初学者鸿蒙的历程心得
参加活动
在开发学习的过程中,华为针对我们这些开发者举办了2025年9月20日 鸿蒙赋能交流会-实操工坊(广州站) 活动,并且作为实战讲师分享鸿蒙应用开发到相关知识。
#星光不负 码向未来#初学者鸿蒙的历程心得
#星光不负 码向未来#初学者鸿蒙的历程心得
我也是获得了一些小小的礼品嘿嘿
#星光不负 码向未来#初学者鸿蒙的历程心得
这次活动我也认识了许许多多志同道合的小伙伴们非常开心!
#星光不负 码向未来#初学者鸿蒙的历程心得
享受鸿蒙带来的福利
参加鸿蒙赋能交流会-实操工坊(广州站)获得的奖品。
#星光不负 码向未来#初学者鸿蒙的历程心得
参加HarmonyOS组件/模板集成创新活动获得的奖品
#星光不负 码向未来#初学者鸿蒙的历程心得
结语:相伴鸿蒙,共同前行
在万物互联的浪潮中,我的鸿蒙探索之路既充满挑战也满载惊喜。从最初的代码迷茫到如今的架构清晰,每一次突破都得益于开源社区的智慧结晶与技术前辈的悉心指点。鸿蒙生态的蓬勃发展,正为我们打开一扇通向未来的无限可能之门。如果你也怀揣着对分布式技术的憧憬,不妨现在就开始动手实践,主动拥抱这场科技变革。相信你也能在星辰大海般的创新领域中,点亮属于自己的技术火花,与我们携手共筑鸿蒙生态的璀璨明天!
