V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lufengd3
V2EX  ›  分享创造

基于 Tauri 开发的壁纸软件 [跨平台、AI、Web3 畅想]

  •  
  •   lufengd3 · 2023-10-22 11:07:47 +08:00 · 2178 次点击
    这是一个创建于 427 天前的主题,其中的信息可能已经有所发展或是发生改变。

    当前壁纸软件的一些问题:

    • 图片素材有限
    • 不能跨平台,支持跨平台的 90% 基于 Electron 开发,太臃肿
    • 不支持多设备同步(有多台个人电脑,壁纸共享)

    为了解决上述问题,壁纸软件技术选型:

    1. 支持 Webview ,软件内打开网站,从无穷无尽的壁纸网站中获取素材
    2. 排除 Electron 的技术方案都可以,但综合考虑研发成本,UI 层希望基于 Web 技术栈开发,当前比较有潜力的是各种语言基于 Webview 的 Hybrid 封装,先选比较或的 Tauri 试试
    3. 多设备同步,简单看是有个中心服务器中转即可,但考虑防火墙等问题,理想情况是构建 P2P 网络传输图片

    结合到 AI 与 Web3 进一步解决素材与存储分发问题:

    • 图片素材,结合 AIGC 本地生成图片
    • 图片存储分发,结合 IPFS 等 Web3 技术概念,构建去中心化的图片文件存储、传输

    再下一步:

    • AI 算力共享,本机如果没有强力显卡,分发计算任务到其他设备,支持算力共享
    • AIGC 内容版权:似乎有点像 NFT
    • 磁盘空间共享:FileCoin 🤣

    好了,YY 了这么多,回到最初的目的:PC 应用跨平台方案调研... 无论移动端还是 PC 端,研发成本作为高优决策条件时,一定是选择 Web Base 的方案,当前桌面端主流且成熟的方案是 Electron 及 CEF ,但他们的优缺点都很明显; Windows 的 Webview2 、Rust 语言的出现逐步改变这种情况。 Webview2 自不用说,微软 Teams 的重构已经能说明问题。再说到框架封装,Rust 阵营各种 GUI 框架层出不穷,Tauri 作为 Webview 结合方案代表,对比 Electron 以 10MB VS 100MB 的包大小优势吸粉无数,可能是受限于投入资源,进展感觉还比较慢,生态也一般,目前没看到企业级应用落地,可以作为潜力股持续观察,但对于小型应用已足够,主要门槛在于 Rust 。

    最后,再说壁纸软件,基于 Tauri 开发,初步实现了上述 1 2 3 的想法,欢迎一起学习交流: https://github.com/lufengd3/wallpaper-player

    截图: 11

    10 条回复    2023-10-25 13:54:01 +08:00
    jy00566722
        1
    jy00566722  
       2023-10-22 12:26:46 +08:00
    好东西。
    bihui
        2
    bihui  
       2023-10-22 14:03:32 +08:00
    666
    bestie
        3
    bestie  
       2023-10-22 15:10:19 +08:00
    我最近开发的桌面软件最开始也尝试用 Tauri ,可是 rust 我实在学不懂,后来使用了 golang 后端的 wails ,相对来说好写好多,原理上和 Tauri 是一样的。
    lufengd3
        4
    lufengd3  
    OP
       2023-10-22 16:07:52 +08:00 via iPhone
    @bestie 是的,rust 是个问题,我也不太会,基本是边搜索边写😂
    lsk569937453
        5
    lsk569937453  
       2023-10-23 09:00:45 +08:00
    @bestie 没记错的话,tauri 是支持用 js 操作底层逻辑的。即前端(vue/react)+底层(js)
    lufengd3
        6
    lufengd3  
    OP
       2023-10-23 10:14:25 +08:00
    @lsk569937453 对,tauri 提供了一些基础的底层能力封装,比如文件系统、消息通知、窗口之类的,但要比如要设置个壁纸、开启启动还是要写 rust 实现;除非有人写好了发个 tauri plugin ,注册为 command 给 js 调用
    chenxishen
        7
    chenxishen  
       2023-10-24 14:51:26 +08:00
    大佬没有发布吗,需要自己运行项目是吗?
    chenxishen
        8
    chenxishen  
       2023-10-24 14:54:08 +08:00
    请忽略,看错了
    lufengd3
        9
    lufengd3  
    OP
       2023-10-25 08:48:48 +08:00
    @chenxishen 可以试试安装包能用么,不行的话 clone 下来自己构建,有 rust 和 node 环境就行
    bestie
        10
    bestie  
       2023-10-25 13:54:01 +08:00
    @lufengd3
    @lsk569937453
    是的,除非你的应用知识 web 套个壳,没有什么原生操作,或者是只用 tauri 封装好的几个 api 就足够了。不然的话,还是需要学习 rust 的。相对来说我更愿意学 golang ,更简单一点。wails 和 tauri 用起来其实没太大区别。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3499 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 00:54 · PVG 08:54 · LAX 16:54 · JFK 19:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.