为了戒手机瘾,爆肝20天!我开发了一款纯血鸿蒙应用。
UP主分享了零基础在20天内利用纯血鸿蒙系统及AI工具,从设计到代码实现一款戒手机瘾APP的全过程。
UP主: Topbook · 时长: 7:20 · 🔗 B站原视频
发布: 2024-09-13 · 收录: 2024-09-14
标签: 鸿蒙开发 · HarmonyOS · 编程入门 · 独立开发 · 效率工具
我为啥要做这个戒手机瘾的东西
超过 86% 的人经常有漫无目的刷手机的行为。每天刷手机最多 7 分钟,我就没有手机,但朋友们都说我像有大病。
因为我的方法就是随时搞清楚自己在干嘛,以及干了多久。代价就是事无巨细都得记一笔,吃饭、上厕所都要记。
为了看起来没病,我买了些 NFC 标签,在我的家里、书店、车里全部贴满,把繁琐的记录变成简单的“碰一下”。结果那天早上看见我们书店的宝涵大叔,我发现我确实有病,所以还得再想其他办法。
方案:用“正常一点”的方式随手计时
这是一个魔方,这是我爆肝 20 天开发的 APP。当我要读书、看视频、开会、休息,直接切换计时,看起来正常多了吧。
这是一只带蓝牙功能的陀螺仪,转动不同的方向和姿势,它就能把信号传给计时器。现在的问题是:怎么做一只计时器应用?因为我只会 Hello World。
为啥选纯血鸿蒙:新手也得能搞定
刚好华为的朋友告诉我,他们新开发的 HarmonyOS NEXT 开发非常便捷简单。这个操作系统从底层架构到外壳全线推翻安卓,华为千人团队耗费数年,百分之百重新研发,外界别称“纯血鸿蒙”。
于是接下来的 20 天,我决定用它来练手,开发人生第一款应用,看纯血鸿蒙的开发到底有什么特别。毕竟我这种纯新手都能搞得定,才算真便捷。
先做设计稿:核心功能就一个计时器
有之前用 PS 设计书店的经验,我也不纠结专业不专业了,先用 PS 做了个效果图。
应用核心功能就一个:计时器实时显示你当前正在做什么,以及做了多久。你可以暂停或继续,也可以直接关闭计时器。
下方有两张可以上下滑动的卡片,分别展示你的所有事件以及你的时间花销。点击不同的分类和事件,就可以触发上面的计时器。因为对自己没多大信心,所以设计稿就这样,先把技术功能做好就行。
纯新手怎么开始:刷官网、看 CodeLabs、用设计指南
只会 Hello World 的人怎么开始下一步?我的经验是,你至少用两天时间快速刷一遍 HarmonyOS 开发者官网,提取对自己有用的信息。
我找到的路径是:
- 通过知识地图先小小掌握全局
- 下载开发软件,快速新建应用,看到熟悉的 Hello World 先建立信心
- 找官方的 CodeLabs,示例代码就算你不会做也能马上试用,快速了解
- 老老实实跟着第一课,知道每个功能如何快速实现
专业程序员可能直接刷一遍开发文档就能开干。像我这种半吊子,可以通过设计指南快速找到想要实现的前端效果和逻辑,再去找对应的开发文档和示例。
你还可以申请下载官方的 CodeGenie,装上之后不懂就问它,还能帮你补全代码,甚至让它帮你写代码。把这些都过一遍,提取信息会事半功倍。
做出基础功能:组件复用、多端预览、可视化编辑
比如这个计时器,可以直接引用官方组件。图标引用用一个 Resource 里输入相应符号,后面就自己出来了。
可以随时通过 Preview、虚拟机或者真机调试看到效果。打开不同设备同时预览,可以做到一次开发多端部署;调整部分代码让它根据设备自适应,或者使用不同布局,大大简化多端开发工作量。这应该是只有鸿蒙才有的核心特性,真的太简单了。
你随时 Add Preview,就能在右边实时看到每个组件样式,甚至做一些小小的可视化编辑。我理解调整组件样式更多是设计思路,代码其实不多,所以基础的东西很快就搞定了。
我还顺便做了一个用户界面和日历界面,通过滑动来登录,或者切换日历的月视图和周视图。你记录过的时间都会高亮,后面我会添加一些功能,让你通过日期更直观地看到自己具体的时间花销。
下一步:提醒 + 更方便的记录方式
现在只是完成了简单记录和简单查看时间开销的功能。接下来是怎么随时获得提醒,知道自己现在在做什么,以及怎么把记录这个动作做得更方便一点。
大部分要添加的功能都是一个个成套的工具 Kit。
鸿蒙服务卡片:我做了三个卡片
要加的第一个功能是鸿蒙的一个特别能力:服务卡片。写卡片我称之为最傻瓜式的操作,你只需要新建卡片,按官方文档做,所需的样式代码跟应用内代码差不多,甚至可以复用。不想自己写,让 CodeGenie 生成也行。
我一时兴起做了三个卡片:
- 纯时间显示卡片:没啥用,主要为了好看
- 日历卡片:把日历显示到卡片上,随时看到自己的记录
- 即时卡片:最重要,应用内事件自动同步到卡片上,让你随时知道自己在干嘛、做了多久,也能手动暂停或结束
后面应该会做其他卡片,你可以按需添加,比如刷手机多久、摸鱼多久、专注多久。大概只要在 APP 里给事件加个分类标签就能实现。
实况窗:实时通知 + 胶囊模式 + 锁屏可见
我还加了实况窗功能。你只要记录某个事件,就会收到一个实时通知,包括事件名称以及时间;可以随时回到应用内,还能变成胶囊模式或者切回来。锁屏状态下也能看到实况窗,当然还能随时关闭或暂停。
这里有一些数据同步和样式我还没优化好。
平板怎么办:数据同步与应用接续
如果这时候你用的是平板而不是手机,其实也可以数据同步,或者使用应用接续。比如你在手机上使用这个 APP,平板收到通知,点击图标可以自动打开平板。
语音识别:离线可用 + 更直觉的交互反馈
我在开发文档里发现了语音识别功能,跟着操作就能调用 AI,通过语音输入快速记录。
我给语音功能加了一个“呼吸感”的气泡:长按输入时气泡会快速抖动,你的实时记录也会触发即时气泡弹动,再加一个振动反馈,让语音输入更符合直觉。而且这个语音功能离线可用。
不想语音识别的时候,点击关闭,自动切回卡片模式。后续可能会加上小艺的介入,因为现在小艺已经足够聪明了,不打开应用直接对它说话会更方便。
陀螺仪与蓝牙接入:动作绑定事件,手机翻面自动冥想
为了防止朋友们说我每天对着手机嘚嘚嘚像有病,我必须加入其他办法。
陀螺仪的接入其实只涉及 HarmonyOS 的蓝牙开发:添加蓝牙能力,把陀螺仪的不同动作数据和你常做的事件绑定起来就可以了。这样一来,手机不在身边也能记录。
既然第三方陀螺仪能用,那手机里的陀螺仪也能用。所以我做了一个隐藏功能:比如我准备冥想,只需要把手机翻过来,就自动开启冥想计时。你也可以根据需要设置,比如自动开启读书或者工作计时。
20 天总结:比预期简单,但还有很多要完善
这就是我 20 天挑战开发人生第一款应用的全部内容。一开始真的觉得特别不容易,能做个基础应用界面就可以了,毕竟新语言新平台,我也只会 Hello World。
但实际完全超过我的预期。比如蓝牙开发,目前在新上的纯血鸿蒙还没看到其他人做的蓝牙调试工具,但你只要看着文档写 Kit,几小时就能自己写一个。
当然我这个应用还有不少地方需要完善,包括数据同步、界面主题等等。大家觉得怎么样?如果觉得还不错,求个点赞、关注、转发、投币。点赞过 5 万我争取早日上架;如果点赞过 5 万,我考虑再牺牲些头发,给其他平台手机也做一个。
让工具回归工具,让你成为你。这里是 Tobo,我们下期再见。