研究了一段时间HarmonyOS的体会
去年鸿蒙1.0发布时,纯当听听而已,毕竟国产操作系统,跟国足是很像的。
今年鸿蒙2.0发布,上手体验了一把写hello world,在轻量级智能穿戴上成功跑起来
不算下载开发工具及相关SDK的时间,从打开DevEco Studio,新建项目,到成功运行,前后也就10分钟左右。
给我的感觉是:我要好好谋划,弄一个鸿蒙应用出来。
于是接下来仔细研究了鸿蒙2.0的开发方式:
1、通过Java开发。
综合感受:这种方式重新封装一遍Android的Api
论坛看到有一个帖子,有人问“无需改动现有Android代码或者只需要改动很少,是否可以接入鸿蒙”,
有版主说了句:“需要重写,但是难度不大”
很尴尬的回复,对于使用Java开发鸿蒙,如果不能做到低成本接入,那么使用Java作为鸿蒙首选,意义不大。
反正使用Android Studio开发的App,鸿蒙同样也能支持,后续必定也会继续支持。
2、通过JS开发。
这是我比较喜欢的方式,小程序,网站等都需要的js,在这个开发横流的时代,速度决定一切。
虽然我不专门做JS前端开发,不过对于这种快速上线应用的方式还算略知一二。
拿微信小程序来说,全民皆用的微信,在其中运行了众多小程序
从这个角度来看,微信其实已经早就是一个操作系统了,只是没有手机和穿戴设备而已。
3、通过C++开发。
这个还没有试,主要还是太懒,虽然懂点C++,但精力有限,不想为了开发一个App,耗费太多的学习成本。
不知能否兼容MFC?或者是拓展使用C#开发鸿蒙应用后,支持UWP?
初试鸿蒙后,有个疑问,为什么写个鸿蒙UI这么费劲,完全按照Java的方式去做吧又不行,像小程序网页一样用
华为的hml方式吧,支持的组件又太少。
为了加强对鸿蒙的理解,我想了个试水项目,做一个在智能手表上每日可以自动更新图片的应用。一是练手:熟悉基础组件和网络请求;二是熟悉消息处理:是否可以通过后台主动给智能手表推送消息。
首先遇到的问题,轻量级智能穿戴不支持网络接口调用,不支持网络调用,不支持网络调用。
当然论坛版主也有回复这个问题,可以通过华为的WearEngine服务,让轻量级穿戴设备与手机里的App通信,通过App的网络调用传递数据。
所以关键得先有App才可以实现轻量级穿戴设备的网络调用,但是,WearEngine服务暂时还没有开放
所以,得出结论:目前轻量级智能穿戴设备,只能开发单机版应用,单机版应用,单机版应用……
眼见轻量级智能穿戴设备无果,那就转到智能穿戴设备和TV进行开发吧
赶紧确定任务——学会如何发起网络请求,这个网络应用开发的基础操作。
文档中提示需要使用fetch,然而这个模块又没有自动打包进去
有版主回复,需要手动下载fetch.js文件,拷贝至sdk中,但运行仍然失败,提示错误,大致意思是没有网络请求授权
至今,也不知道在哪里配置这个授权……还是学艺不精,我准备暂时放弃了。
期待官方放一个通过js发起网络请求的示例,我是个憨憨,真搞不定了
暂时放弃网络请求功能,那就试试别的组件吧,先用image展示一个图片,图片放在common中,静态图片成功显示
改成带https的网络图片地址,加载不出来
改成带http的网络图片地址,还是加载不出来
难道图片域名不支持?需要像小程序一样,配置访问的安全域名?图片的格式有问题?图片的大小有问题?
………………
至于直接给智能穿戴设备推送通知,在没有App的情况下,貌似也还不支持(没有看到相关文档)
所以至今,这个自己设计用来练手的项目,一点没有推进,朋友问,你研究鸿蒙2.0开发研究如何呢?我只能回答,还在hello world。
想说的是:
1、希望鸿蒙能出一个更好的开发文档。特别是技术开发需要涉及到的基础,我希望在鸿蒙中开发更多好玩的应用,但无从下手。
比如:
(1)智能穿戴设备、轻量级穿戴设备,TV开发的区别?
(2) 使用js开发,引入的@system.*到底都有哪些?
(3)各种做应用开发的基础组件如何使用,使用的示例代码。
2、希望鸿蒙发布的文档尽量不要出错。
比如:《HarmonyOS开发文档(一)》 P206页,有这样一段关于页面间跳转的描述
实际上根本就没有push的操作,更是没有对参数传递进行说明,正确的页面路由应该使用replace。错误的文档,有一种被调戏的感觉。
一点建议:
感觉如果鸿蒙使用js作为首选开发语言,做好华为前端UI的HML组件
简化DevEco Studio的项目文件配置管理,只使用css,hml,js的MVVM的方式去开发,应该会让更多开发者加入进来
Java,C++,C#等高级语言,该写后台写后台,该写接口写接口,鸿蒙专注前端的应用开发及服务框架就好。
鸿蒙没必要死磕底层操作系统,操作系统的本质也就是一个软件程序
做一个能够方便开发者开发应用,能够支撑好这些应用的华为鸿蒙程序,就足够了。
做windows系统的比尔盖茨都已经退休了,Linux也已经坐实开源操作系统,移动端Android和IOS二分天下
鸿蒙离不开Android,所以暂时也没必要去磕
在自家的硬件生态中,弄一个软件平台方便众多开发者为硬件开发应用,就是最牛的国产操作系统。
说完了,一点心得,跟大家分享下,期待鸿蒙更好。
好文章,有用!
我说下我的理解,不一定对。
(1)智能穿戴设备、轻量级穿戴设备,TV开发的区别?
轻量级穿戴设备只能使用蓝牙通讯,或许还有你说的WearEngine,目前一般主要是运动手表,比如最新上市的华为GT2 Pro,或许以后会涉及到眼镜之类的,轻量级开发因为内存的限制,只能使用JS UI,无法使用java。
智能穿戴设备的,应该蓝牙和wifi都能用,而且除了JS UI还能使用java开发。
TV和智能穿戴设备,目前看来好像就是屏幕尺寸和形状不一样。
(2) 使用js开发,引入的@system.*到底都有哪些?
在API参考的接口中,这些都列出来了,包括文件系统、网络等等
包括你最关心的fetch,地址我也贴在这
https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-network-data-request-0000000000626077
(3)各种做应用开发的基础组件如何使用,使用的示例代码。
我写过一个简单的,但是太简陋了。简单看看就行
https://zhuanlan.zhihu.com/p/245309523
https://zhuanlan.zhihu.com/p/247974662
https://zhuanlan.zhihu.com/p/248956027
还有官方的示例代码即将上线
https://developer.harmonyos.com/cn/home
如图
还有官方JS UI的代码示例库
https://gitee.com/openharmony/ace_lite_jsfwk/tree/master/examples/showcase/src/main
你下载下来自己就能运行。
最后,推荐你一个JS UI的教程,能解决很多困惑
https://www.bilibili.com/video/BV1hv411179b