
安卓
从去年11月开始写鸿蒙开发相关内容,到现在快一年了,下面简单讲讲。总的来讲,入门鸿蒙开发比较容易。ArkUI的很多设计都借鉴了
安卓(我个人感觉借鉴
安卓的地方最多,很多组件的方法明显是以
安卓的对标组件为样板来提供的)、
IOS、WPF、Flutter以及一些前端框架(像栅格系统)的设计。所以不管之前是做哪种gui开发的,进入鸿蒙开发领域后都会有熟悉感,能很快上手。然而,虽然上手快,但要把鸿蒙app做好却有一定难度。首先,在UI开发方面,对于一些比较复杂、组件和数据层级较深的页面(例如我做过的电商应用的购物车页面,还有一个非常头疼的多商品评价页面,层层嵌套,都是由交互触发动态变换,数据从外到里最深有十几层,最后还得组合到一起提交),使用ArkUI这套东西说实话有点难操作。基本上无法按照框架设计者脑海中预想的mvvm实践去开发,最后都是用各种奇奇怪怪的技巧跳出这套mvvm框架,打破了代码的一致性。我做那个评论功能最后是经过魔改回归到mvc了,用mvvm数据绑定那套方法实在搞不定这个。我想这也是为什么后来
华为在api12又推出了一套V2状态变量。但说实话,虽然有了这套V2变量,我们却不敢用。万一之后的新版本直接把V2整合回去了,我们的项目代码岂不是要跟着改回去?或者就像当年
安卓的v4 support一样,最后变得尾大不掉。其次,有些设计我实在是理解不了,比如DataSource。这个东西曾经很让我困扰,而且我相信也困扰过不少鸿蒙开发者。直到有一天我突然明白这个东西应该是由vm层去实现的接口,这才恍然大悟。而不像很多项目组搞的那种所谓的万能DataSource,搞那个绝对会一头雾水,最后被淹没在状态变量无法实现的困境之中。第三,开发文档太差劲了,特别是去年下半年到今年上半年内测阶段。当时全网只有工单系统、内部论坛和文档可以查看。这破文档遗漏了很多重要内容。我在今年年中的时候和四个鸿蒙开发团队交流过,居然没有一个团队知道原来还有Reusable这个东西。真是够了,这么重要的东西,开发文档在List或者LazyForEach那几章里居然都没有提到。我也是有一天吃饱饭没事干去看鸿蒙视频教程的时候才发现有这个东西的。