知华科技
知华科技
  • 发布:52 分钟前
  • 更新:52 分钟前
  • 阅读:7

我们在鸿蒙上踩过的坑和攒下的经验

分类:招聘与外包

鸿蒙这个话题,2024年下半年开始热起来,到2025年已经是客户需求里的常客。尤其是金融、政企、运营商类的客户,鸿蒙适配已经从"可以考虑"变成了"必须要有"。我们团队从HarmonyOS NEXT Developer Preview阶段就开始跟进,到现在已经交付了几个纯血鸿蒙项目。这篇文章聊聊我们实际做下来的感受,不吹不黑。

ArkTS:门槛不高,但写好需要时间

如果你有TypeScript和SwiftUI/Flutter的开发经验,上手ArkTS(鸿蒙的声明式UI框架)大概一周就够了。语法上它跟TypeScript高度相似,声明式UI的写法跟SwiftUI和Flutter的Widget树也很接近——状态驱动视图、组件化、单向数据流,这些核心概念是通的。

但"能写"和"写好"之间有一段距离。ArkTS的组件体系、生命周期、状态管理(@State、@Prop、@Link、@Provide/@Consume)有自己的特点,跟Vue和React都不完全一样。比如组件间的状态共享,在Vue里你可能习惯用Pinia,在React里用Context或者Zustand,但在ArkUI里你要理解@Provide和@Consume的作用域和更新机制。我们第一个项目的前两周,团队主要就在磨合这些细节。

比较意外的是ArkUI的动画系统——做得好会很出彩。比如列表的滚动视差效果、页面转场的共享元素动画,写起来比在原生Android上顺手。鸿蒙团队在这一块确实下了功夫。

从Android/iOS迁移:哪些能复用,哪些必须重写

这是被问得最多的问题。我们的经验是:

  • 业务逻辑层可以大比例复用。如果你的Android/iOS项目做了比较好的分层(网络层、数据层、业务逻辑层跟UI层解耦),那ViewModel/UseCase这些核心逻辑直接用ArkTS重写一遍就好——工作量主要集中在对平台API的适配(比如网络请求从OkHttp变成鸿蒙的@ohos.net.http)。我们一个项目的业务逻辑层复用了差不多70%的设计思路,只是换了语法实现。
  • UI层基本要重写。这块没办法省。Android的XML/Jetpack Compose、iOS的Storyboard/SwiftUI,跟ArkUI的组件树是两套体系,不太可能有直接复用的路径。但好消息是重新写一遍UI通常比第一次写要快——因为你已经知道产品长什么样了,只是换了一门新的表达语言。
  • 第三方SDK的鸿蒙版本是最大瓶颈。这不是你的问题,是整个生态还在建设中的现实。即时通讯、地图、支付、推送这些常用SDK,鸿蒙版本的功能完备度和稳定性普遍不如Android/iOS版本。我们一般会提前跟客户沟通SDK选型,把那些鸿蒙版本还不成熟的SDK替换成有鸿蒙原生支持的替代方案或者用H5桥接过渡。
  • 数据库和本地存储:鸿蒙的RelationalStore(关系型数据库)和Preferences(KV存储)基本够用。如果你的应用重度依赖SQLite的一些高级特性,需要评估一下迁移成本。

跨端方案在鸿蒙上的现状

uni-app在2025年初完成了对鸿蒙的适配。如果你现有的业务是用uni-app写的,迁移到鸿蒙的工作量会大幅降低——大部分页面布局和业务逻辑可以直接复用,只需要处理少量平台差异。但要注意的是,uni-app的鸿蒙适配目前还在快速迭代中,部分组件和API可能还存在兼容性问题。

Flutter的鸿蒙支持也在推进。如果你的团队已经有Flutter项目,可以关注一下OpenHarmony的Flutter Engine适配进展。不过目前来看,对于需要深度使用鸿蒙原生能力(如分布式、一次开发多设备部署)的场景,直接用ArkTS还是更稳妥的选择。

我们的建议是这样:如果是一个独立的新项目,预算允许的情况下直接用ArkTS做原生开发,体验最好。如果是对现有uni-app/Flutter项目的鸿蒙扩展,优先评估跨端方案的适配程度,能复用就复用,需要原生的部分单独用ArkTS写Native Plugin桥接。

鸿蒙特有的能力:值得花时间去用

  • 一次开发,多设备部署:这个是鸿蒙最重要的差异化优势。同一个应用包可以运行在手机、平板、车机、手表、智慧屏上,UI自适应不同屏幕尺寸。我们在一个内部工具项目里用了一次开发的方案,手机和平板两端的代码复用率超过85%,确实省了不少事。
  • 分布式数据管理:设备间的数据同步和流转,HarmonyOS的分布式能力是系统级的。我们目前在一个IoT相关的项目中用到了设备发现和跨设备数据共享的能力,整体接入体验比Android生态下的方案简洁不少。
  • 元服务(Atomic Service):类似快应用的概念——用户不需要安装完整的App,就可以使用核心功能。对于低频场景(比如查公积金、办证预约),元服务比App更符合用户的使用习惯。

找对人比技术选型重要

最后一个实在的建议:鸿蒙目前有经验的开发者不多,招聘市场上供不应求。如果你自己的团队刚开始接触鸿蒙,找一个有实际交付经验的团队来带一下,比自己从头摸索效率高很多。哪怕是帮你们搭好项目架构、定好代码规范、做完第一个模块的开发,后续团队接手的门槛就会降低一大截。

我们是上海如静知华信息科技有限公司(知华科技),从软件外包起步,在iOS、Android、鸿蒙、小程序、H5这些终端上都积累了实际交付案例。如果你正在考虑鸿蒙适配但不知道从哪下手,或者有现成的项目想找团队承接,可以先到我们的官网看看案例和交付流程,再决定要不要聊——没有任何推销的压力。网址是 zhuatech.cn

0 关注 分享

要回复文章请先登录注册