开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1082|回复: 4
收起左侧

[闲聊] 推荐一个桌面应用开发框架

[复制链接]
发表于 2023-11-2 00:57:22 | 显示全部楼层 |阅读模式   山东省滨州市

一个名叫 niva 的开源框架,国人开源的,更新比较佛系,但目前的功能基本够用
上官网简介

简介
什么是 Niva?
Niva 是一个跨平台(支持 Windows 和 MacOS)的桌面应用开发框架,使用前端技术开发,可用于构建轻量级的桌面应用。它基于系统 Webview 而非 Chromium,体积仅为 3MB ~ 4MB,不需要 Node.js 环境,直接提供系统 API 进行操作。Niva 兼容 React / Vue 等主流框架,对于 Vue 和 React 项目可以直接一键导入。

Niva 开发者工具
Niva 开发者工具是一个图形化界面开发者工具,提供图形化界面进行对 Niva 项目进行构建或者调试的开发工具。

Niva 与 Tauri 和 Electron 的异同
Niva 与 Tauri 和 Electron 定位不同。它是 Tauri 和 Electron 的轻量级替代方案,比它们更加简单易用但同时牺牲了部分生态和能力。

下表列出了 Niva、Tauri 和 Electron 的主要区别:

Niva Tauri Electron
体积 3MB 6MB+ 85MB+
支持系统 Windows10+/MacOS Windows10+/MacOS/Linux Windows/MacOS/Linux
APP 后端 无,但可用隐藏 window 代替 Rust Node.js
Webview System System Chromium
生态 前端 Rust + 前端 Node.js + 前端
上手难度 简单 极难 困难

Niva 使用了 Tauri 的跨端窗口管理库 tao 和跨端 Webview 库 wry,所以在窗口和 Webview 上面 Niva 和 Tauri 具备相同的能力,以及相同数量级的体积。不同之处在于,Niva 直接为 Webview 提供通用的 API,无需编写 Rust 代码,对前端开发者更加友好。而使用 Electron 则需要 Node.js 和 Chromium 的依赖,体积也更大。

与 Electron 相比,Niva 不依赖 Node.js 和 Chromium,因此能够实现更小的体积,对前端开发者更加友好。Niva 提供了图形化的开发者工具和简单易用的配置,能够快速将前端项目迁移至 Niva 等桌面应用。

总之,Niva 专注于提供更小的体积和更加便捷的开发体验,适合需要快速构建轻量级桌面应用的前端开发者使用。


这时候可能就有人会说了,易语言也能做 web 桌面应用开发,有 chromium内核,有 webview 的,有简化的 miniblink 的,我用他干什么
那这就属于仁者见仁智者见智了,易语言目前现有的这些,精易 web 支持库个人感觉代码写起来并不方便,其他各项CEF3 的用起来都差不多、不方便,体积也基本上都要带一个 chromium 内核,大小下不来。
再加上易语言本身不支持 x64,一直都有很多令人诟病的问题。(现在论坛有人在搞基于易语言源码,然后 e2txt 转 C++源码去编译的,可以观望一下,但这是个大工程,指望一个人搞不现实)
还有就是跨平台编译的问题,前段时间还看到有人在问怎么在 mac 上跑易语言编译的 exe 程序


niva 目前支持 windows 和 mac,linux 的兼容配置没做,不过应该没什么大问题
只需要关注前端知识(html+css+js),换句话说只需要会 js 就可以了。
在不支持 webview的系统上,目前官网在说考虑增加 miniblink,但看起来遥遥无期。
底层运行性能基于 rust,这个就不多说了,不过rust 本身是快,但是总归是 js 写,架构层面没走 rust 的js 编译器,那就还是解释型语言
ajax 请求更方便,json 处理更方便,web 开发天然优势,这个也不多说了。


目前用来做了俩项目,遇到的坑大概是 fs 系统读入写出时会让人感到不适,和 electron中不一样的是,electron用的buffer,本质上也是字节数组,存二进制文件直接存了,就和易语言写字节集一样。
niva 中读写文件都是字符串,这就有点难受了,二进制文件没法通过读写字符串去搞,结果我偶然一试,发现他支持的 base64 就可以读写二进制文件,文档中没写明。

另外项目名不支持带中文,project-name 配置带中文在构建 exe 时会报错,有人在 github 上提了 issue,但还是那句话,遥遥无期

 楼主| 发表于 2023-11-3 09:10:46 | 显示全部楼层   山东省滨州市
羽傲天 发表于 2023-11-3 00:07
要不然看看 aardio  ?我觉得也不错,虽然有一点各种语言胶水拼接在一起赶脚,但是我觉得写起来也还不错体 ...

说起来其实感觉一般般,一个是跨平台方面,一个是写界面方面,前端可以用 vue、 react 、 angluar 等各种框架。
不过总体而言还是看个人习惯和需求吧
回复 支持 反对

使用道具 举报

结帖率:84% (16/19)
发表于 2023-11-3 00:07:15 | 显示全部楼层   广东省深圳市
要不然看看 aardio  ?我觉得也不错,虽然有一点各种语言胶水拼接在一起赶脚,但是我觉得写起来也还不错体积一样很小,会JS就行也很方便,还能调用python或者Java写的
回复 支持 反对

使用道具 举报

结帖率:83% (5/6)
发表于 2023-11-2 11:15:08 | 显示全部楼层   广东省东莞市
嘿,老子不识字~~!
回复 支持 反对

使用道具 举报

结帖率:100% (20/20)

签到天数: 2 天

发表于 2023-11-2 10:07:20 | 显示全部楼层   湖北省武汉市
可以的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表