第一次写 HarmonyOS 应用:ArkTS 给我的几个小惊喜
来英国留学之前,我的开发世界里基本只有 Android、iOS 和 Web。鸿蒙这个词对我来说,约等于"手机系统"四个字。直到上周在宿舍里,我给自己的 MateBook 装上了 DevEco Studio,才发现:原来鸿蒙早就把"写代码"这件事安排得明明白白。
先说说我是怎么入坑的。手头这台 MateBook 是我来英国前买的,平时主力写代码。某天刷到一个用 ArkTS 写小应用的视频,弹幕都在说"会 TS 的直接冲",我这种写过 TypeScript 的人一下就坐不住了。当天晚上就去华为开发者联盟官网下了 DevEco Studio,准备亲手验证一下。
安装过程比我想象中顺滑。从官网下载安装包,一路 Next,IDE 会自己检测并提示补齐需要的依赖,半小时左右就看到了熟悉的界面——说白了就是 IntelliJ 那一套,快捷键、配色、项目结构全都照搬,我这种老用户基本零学习成本,连教程都没看就直接开干了。
第一个好奇自然是:ArkTS 到底是个什么语言?官方的说法是鸿蒙的应用开发语言,脱胎于 TypeScript。实际体验下来,类型声明、接口、泛型、箭头函数这些几乎原样照搬,写 TS 的人打开文档会有种"这题我会"的错觉。真正新的东西在 UI 部分:ArkTS 用的是声明式 UI,界面由一个个加了 @Component 装饰器的类拼出来,思路上有点像 Flutter 的 Widget,又有点像 React 的组件化,写过前端的人适应起来很快。
我的第一个练手项目很俗:一个番茄钟。界面就一个倒计时大数字,加开始和暂停两个按钮。核心逻辑加 UI 写下来不到 150 行代码。这里就遇到了第一个小惊喜:DevEco Studio 自带的实时预览器。改一行代码,预览窗口几乎秒刷新,不用连手机、不用等编译安装。对我这种习惯"写一行看一眼"的急性子来说,这种反馈速度真的太舒服了,写 UI 的快乐直接翻倍。
第二个惊喜是"一次开发,多端部署"。把番茄钟在手机预览里跑通之后,我顺手切到了折叠屏和智能手表的预览模板,布局居然自动适配了。虽然真机上肯定还有一堆细节要调,但"一个工程跑多个设备"的思路,对只有一台笔记本、几台二手设备的穷学生来说,实在太友好了。以前学 Android 开发时,被各种屏幕尺寸折磨过的记忆瞬间被治愈了一半。
第三个惊喜是文档的中文味。鸿蒙开发者文档的中文明显是用心写过的,不是机器翻译腔,每个 API 下面都配有效果图和可直接抄的示例代码。我这种常年读英文技术文档的人,偶尔看到写得这么清楚的中文文档,还真有点不习惯——褒义的那种。
当然,坑也没少踩。最蠢的一个:第一次跑起来,预览器里倒计时数字死活不变,按钮点了跟没点一样。我查了半天,最后发现是 @State 装饰器用错了地方,变量没声明成"状态",UI 就不刷新。改了两行代码,立马就好。这种"坑虽小但很疼"的经历,反而让我一下记住了状态管理这个核心概念——鸿蒙的 UI 刷新逻辑,全靠这套状态驱动。
多说一句 ArkUI 的布局。它的 Row/Column 嵌套思路和 Flutter 的 Row/Column 几乎一模一样,间距用.margin()、.padding() 链式调用,写起来很顺手。唯一让我愣了一下的是"栅格系统"——鸿蒙推荐用 GridRow/GridCol 做响应式布局,我一开始还觉得多此一举,直到在折叠屏预览里看到同一份代码在展开和折叠两种形态下都能正常显示,才明白这套东西就是为"多端"服务的,思路挺超前。
还有一个小插曲是关于模拟器的。DevEco Studio 自带模拟器,我第一次启动等了快两分钟,还以为卡死了,结果是它在后台下载系统镜像。跑起来之后倒是挺稳,番茄钟的倒计时动画在模拟器里和预览器里表现一致。真机调试我暂时没试,看了一眼文档,真机要走开发者实名认证的流程,这个周末先欠着,下周有空再补上。
一个周末折腾下来,我最大的感受是:鸿蒙应用开发的门槛,真的没有传说中那么高。会 TypeScript 的人,大半天就能写出能跑的东西;写过 Flutter 或者 React 的,思路更是直接平移。华为把 IDE、语言、预览器、文档这一整套工具链都配齐了,剩下的就是多写多练。
- 点赞
- 收藏
- 关注作者
评论(0)