折腾了半年,开发的用 js 开发原生 APP 的框架已经基本成熟了。 目前用这个框架开发了 5 个项目:一个高仿扫雷,一个聚合直播播放器,还有 3 个小项目。 全部逻辑使用 js 实现,使用 vscode ,还支持 js 代码调试及 api 提示。 所有代码全部开源(注意开源协议) 代码仓库: https://github.com/soui4js/soui4js 官网: https://soui4js.com
1
pursuer 2023-06-25 11:35:22 +08:00
很多场合语言已经不重要了,生态很重要,node 凭借先发优势,deno 都望尘莫及,quickjs 也就更加不明朗,也许 txiki.js 对此能有所帮助.
|
2
xjqxz2 2023-06-25 14:14:07 +08:00
这是啥原理用的是 native 还是 Electron
|
3
setoutsoft OP @xjqxz2 native
|
4
setoutsoft OP 原理很简单。首先要有一个客户端框架,这里用的是我自己开发的 soui4, 然后使用一个 js 引擎,这里用的 quickjs 。然后使用 js 提供的机制将 oui4 的接口导出给 js 用就好了。
当然具体实现起来,你首先要知道导出哪些接口对于一个 UI 框架是够的,由于通常一个 UI 框架可能需要很多对象参与才能满足客户端开发的需求,随便导出几个函数到 JS 肯定是不行的;然后通常的 UI 框架可能是由各种 C++类实现的,C++又有各种继承,多态特性,JS 导出函数只能接受 C 函数,怎么样将这些 C++对象方便的导出到 JS 也是一个挑战。 这个项目里实现了一套 qjsbind ,提供了比较方便的导出 C++对象的能力。 |
5
archxm 2023-06-25 15:32:25 +08:00
soui ?以前搞 duilib 时,听说过。挺强的
|
6
ysc3839 2023-06-25 20:00:21 +08:00 via Android
注意:该“开源”代码仅仅是“公开源代码”而不是“开放源代码”,此代码的授权协议包含诸多限制,不是 Open Source Initiative (OSI)认可的“开放源代码协议”。
|
7
setoutsoft OP @ysc3839 我可没说是免费的。
|
8
setoutsoft OP 开源只是让大家可以放心用。不代码免费商用。
|
9
zado 2023-06-26 09:59:05 +08:00
要是 UI 相关的 xml 能用 json 代替,lua 也可以使用 js 代替就更完美了。
|
10
setoutsoft OP @zado UI 布局为什么要用 json 呢? XML 布局最重要的一个好处在于好阅读,json 阅读比 xml 差太多了了。如果说为了解析的性能,soui4js 里使用的 xml 模块支持 xml 的预编译,也就是将 xml 编译成二进制,加载速度比 json 快不知道多少了。
|
11
zado 2023-06-26 12:09:21 +08:00
@setoutsoft #10 我没有仔细了解,还以为是需要用 js 代码操作这些界面元素的。如果是直接编辑的话的确是 XML 更合适。
|
12
soui 2023-10-09 18:21:07 +08:00
非常好用。
|