【案例实战】听歌学英语鸿蒙APP从零到上架全流程回顾
作为一位热衷于技术探索的开发者,去年我在CSDN上坚持输出了116篇关于鸿蒙的原创技术文章,不仅在郑州片区榜单中常保持前五名,还额外习得一项新技能。最令人兴奋的莫过于,我在玩鸿蒙的过程中,不知不觉竟上架了多款APP。“听歌学英语”项目,是第一个开启我的鸿蒙App之旅并成功上架的项目。
学习鸿蒙开发的初心
哈喽大家好!我是csdn猫哥,其实猫哥从来没有从头到尾的认认真真的学习一遍鸿蒙。猫哥的鸿蒙入门之路,都是玩出来的!
详情参见猫哥的另一篇博文:
鸿蒙HarmonyOS入门学习竟如此简单,如何三天上手鸿蒙应用开发
开发“听歌学英语”App的原因很简单,也是“玩”。我想尝试开发一个全新的应用,不仅能够帮助我学习鸿蒙开发技术,还能在这个过程中找到乐趣。鸿蒙系统作为中国自主研发的操作系统,其潜力巨大,吸引着我深入探索。而“听歌学英语”的概念既符合我的兴趣又具有一定的实用价值,这无疑为我的开发之旅提供了充足的动力。
可以在华为应用市场搜索"听歌学英语”并下载体验。在听歌曲的过程中学习英语。
接下来对听歌学英语的开发从零到上架做个总结回顾,分享给有需要的小伙伴。如果你有好的idea,就玩起来吧。入门鸿蒙也忒简单了吧,比Android开发容易太多。
开发过程中的挑战与收获
制定小目标
一开始,我没有设定一个完美的App,而是从简单的功能开始,逐步完善。这种“小步快跑”的开发策略,不仅让我保持了持续的热情,也避免了因一开始就追求完美而陷入困境。每完成一个小目标,都会有成就感,这激励着我不断前行。
“先完成再完美”,这是董老师说的。董老师是谁?就是那个长得像兵马俑,眼睛也很小,眯起来像一条线的人。就是那个常自嘲说,“你说我眼睛小,但我要说万物皆有裂痕,那是光照进来的地方”,你知道他不?
不要等, 不要等完美,没有完美的事情。高考给你三年准备,你能准备好吗?可能给你三十年,你都未必能准备好。要有先上场的勇气。
输出学习笔记
每次学习新知识或遇到问题时,我都会及时记录下来。这些笔记不仅帮助我巩固了所学知识,也为其他开发者提供了参考。在开发过程中,我也遇到了很多问题,比如网络请求的处理、UI布局的设计等。而通过不断的记录和总结,这些问题都得到了有效解决,同时也加深了我对鸿蒙开发的理解。比如我的博客,就是我的笔记本。
开发“听歌学英语”APP的过程
选择开发工具
我选择使用DevEco Studio进行鸿蒙应用的开发。DevEco Studio是专门为鸿蒙操作系统设计的集成开发环境,提供了丰富的工具和插件支持,可以大大提高开发效率。
制定项目需求
为了使项目具有一定的实用价值,我将“听歌学英语”App定位为一个寓教于乐的应用,用户可以通过听英文歌曲学习英语。项目的主要功能包括歌曲搜索、歌曲播放、歌词显示等。
设计UI界面
UI设计是开发过程中非常重要的一环。我根据项目需求,设计了简洁明了的用户界面。UI设计不仅可以提升用户体验,还可以让开发者在开发过程中更加专注于功能实现,而不会被过于复杂的UI设计所困扰。
实现网络接口
在HarmonyOS中,原始的ohos.net.http接口虽然功能强大,但在实际使用中却存在一些复杂性和局限性。这使得开发者在进行网络请求时需要写更多的代码,而且处理错误、配置请求等操作也较为繁琐。而鸿蒙平台下面的axios网络库,虽然很知名,但是不封装以下还是不好用。因为我想要一分钟写完一个接口,追求速度和效率。博主封装了axios网络库,让它变得更好用。
我封装的axios三方库地址:
https://ohpm.openharmony.cn/#/cn/detail/@nutpi%2Faxios
或者可以使用我封装的另外一个库,相比axios更加轻量化。
三方库地址:
https://ohpm.openharmony.cn/#/cn/detail/@yyz116%2Fh_request
一行代码写接口,接口如:
清晰直观。
//api.ets
import { http } from './utils/axiosClient';// 一行代码完成GET请求
const userList = await http.get('/api/users', { page: 1, size: 10 });// 一行代码完成POST请求
const newUser = await http.post('/api/users', { name: '张三', age: 25 });// 一行代码完成文件上传
const uploadResult = await http.uploadFile('/api/upload', file);// 一行代码完成文件下载
const downloadResult = await http.downloadFile('/api/download/file', '/local/path/file.jpg');
网络接口的实现往往是一个繁琐且重复的过程。为了提高开发效率,我借助了坚果派(nutpi.net)推出的JsonFormat插件。这款插件的主要功能是将JSON格式的数据直接转换为arkts的结构定义,让我们在编写接口时能够更加轻松快捷。
使用JsonFormat插件
JsonFormat插件可以极大地简化鸿蒙应用开发中的数据处理过程。通过这个插件,开发者只需简单操作,即可将JSON转化为对应的鸿蒙ets类,减少手动编写代码的时间,提高工作效率。具体步骤如下:
-
安装插件
- 打开DevEco Studio,导航至
Settings/Preferences > Plugins > Marketplace
。 - 在搜索框中输入“JsonFormat”,然后进行安装。
- 打开DevEco Studio,导航至
-
使用插件
- 拿到接口响应的JSON报文,粘贴到JsonFormat插件中。
- 生成对应的arkts文件,直接使用在项目中。
开发功能模块
在完成网络接口的实现后,我开始开发各个功能模块。比如歌曲搜索模块,我通过调用第三方API获取歌曲信息,并使用JsonFormat插件将JSON数据转换为arkts类,方便后续处理。其他功能模块如歌曲播放、歌词显示等,也都是通过类似的方式逐步实现的。
上架应用
在完成所有的功能开发和测试后,我将“听歌学英语”App上架到了鸿蒙应用市场。这个过程相对简单,只需要按照应用市场的指南,准备相应的应用资料和图标,然后提交审核即可。审核通过后,我的第一个鸿蒙App就正式上线了,这对我来说是一个巨大的里程碑。
关于上架的各种秘钥详解及上架流程,可以参考博主的其他文章。
开源和分享
我一直坚持开源和分享,将“爱影家”鸿蒙版APP项目发布到了开源社区。通过开源,我可以让更多的人了解和使用我的项目,同时也能够从其他开发者的反馈中获得改进的机会。
“爱影家”鸿蒙免费观影APP开源项目地址参见博文地址:https://blog.csdn.net/yyz_1987/article/details/153418477
结语
通过这个项目,我深刻体会到:“几乎任何事情,都是越做越简单,越想越困难,越拖着越想放弃”。一个粗糙的开始,就是最好的开始。如果你想做一件事,可以立马开干,非常粗糙的开始,丢掉一切得失心去做!
希望我的这篇博客能帮助到那些正在尝试鸿蒙开发的开发者,让我们一起在开发的道路上越走越远!
参考资料
- JsonFormat插件:https://plugins.jetbrains.com/plugin/24930-jsonformat/edit/versions
- @nutpi/axios库:https://ohpm.openharmony.cn/#/cn/detail/@nutpi%2Faxios