V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yuyue001
V2EX  ›  程序员

2024 年,桌面软件开发(不考虑移动端),推荐什么技术栈?

  •  
  •   yuyue001 · 2024-01-24 11:47:16 +08:00 · 19946 次点击
    这是一个创建于 371 天前的主题,其中的信息可能已经有所发展或是发生改变。

    flutter 似乎不支持多窗口,pass ,

    比如 QT/MAUI/Avalonia/JetPack Compose/,哪个容易上手?

    基于 web 的技术, Electron 项目太大,性能要求可能不行。 tauri 尝试了一下,rust 太难写业务太复杂了。 wails 怎么样?

    113 条回复    2024-01-26 16:33:50 +08:00
    1  2  
    murmur
        1
    murmur  
       2024-01-24 11:49:21 +08:00   ❤️ 16
    electron 性能哪里不行了,不就是启动慢点么,浏览器的性能挺好的,尤其是 chrome ,比菜鸟写的桌面程序好多了,ui 多还炫酷
    wuruxu
        2
    wuruxu  
       2024-01-24 11:52:12 +08:00   ❤️ 1
    桌面软件开发 还是 QT 比较靠谱
    wireshark , telegram , zoom 都是 QT 写的
    stinkytofu
        3
    stinkytofu  
       2024-01-24 11:55:03 +08:00
    javafx
    mainjzb
        4
    mainjzb  
       2024-01-24 11:55:57 +08:00   ❤️ 2
    wails 3.0 才有多窗口,目前似乎处于 beta 版本
    tauri 的多窗口似乎不支持 linux
    多窗口是硬需求的话,这些新框架的坑还挺多,不想踩坑的话以上似乎只有 qt 和 Electron 符合你的需求。
    guguji5
        5
    guguji5  
       2024-01-24 12:03:08 +08:00   ❤️ 1
    刚拿 electron 试了试手,,感觉很适合前端,
    hez2010
        6
    hez2010  
       2024-01-24 12:06:58 +08:00 via Android   ❤️ 5
    Avalonia 对非线性动画支持的很好,还支持 gpu interop ,还是在场唯一一个有 compositing renderer 架构的自绘 UI 框架,可以做到无论 UI 线程是否卡死都能流畅进行的隐式动画。
    配合 FluentAvaloniaUI 可以做出很漂亮的 fluent design 的 app 。
    另外它还支持 nativeaot 编译到机器码直接出二进制,aot 后可以做到双击后瞬间启动。
    rwecho
        7
    rwecho  
       2024-01-24 12:41:00 +08:00 via Android
    Blazor
    Maui+blazor 或者 avalonia+ blazor
    rwecho
        8
    rwecho  
       2024-01-24 12:48:32 +08:00 via Android   ❤️ 1
    说下原因,首先你提到业务,那基本上如果能用前端框架必然是最好的。又提到 eletron 太大和性能问题,对于 blazor 可以把耗时的逻辑放到 native 里面,页面注重展示。并且打包不大,webview2 另外算。

    但是如果你想支持 xp 那就算了。

    技术栈 c# blazor Javascript tailwindcss
    你可以参考下 https://github.com/rwecho/V2ex.Maui
    iorilu
        9
    iorilu  
       2024-01-24 12:57:31 +08:00 via Android   ❤️ 1
    愿意学习的话,还是 pyqt 靠谱,跨平台方便
    ashong
        10
    ashong  
       2024-01-24 13:01:54 +08:00 via iPhone
    cef+ts
    huage
        11
    huage  
       2024-01-24 13:07:52 +08:00   ❤️ 1
    https://www.v2ex.com/t/986341

    总结一下:
    aardio
    electron
    pyqt
    antonius
        13
    antonius  
       2024-01-24 13:14:10 +08:00
    业务复杂的话,前端用 Electron ,C++用 Qt 。c#用 wpf/uwp 。
    业务不复杂的话,c/c++用 nanovg/imgui 都行。
    yKXSkKoR8I1RcxaS
        14
    yKXSkKoR8I1RcxaS  
       2024-01-24 13:16:19 +08:00
    QT ,唯一选择
    renmu
        15
    renmu  
       2024-01-24 13:22:54 +08:00 via Android
    人 vscode 怎么不卡(狗头
    tyzandhr
        16
    tyzandhr  
       2024-01-24 13:24:18 +08:00 via Android
    compose 还是前端的风格,和桌面不是很搭
    jlkm2010
        17
    jlkm2010  
       2024-01-24 13:25:37 +08:00
    可以试试同样基于 webview2 的 Neutralinojs
    https://neutralino.windhc.com/
    xieren58
        18
    xieren58  
       2024-01-24 13:41:21 +08:00
    Avalonia
    tool2d
        19
    tool2d  
       2024-01-24 13:54:38 +08:00
    都 2024 年,有什么不懂问 gpt 就行,前端和客户端技术,已经没有很大隔阂了。

    以前前端写太多,今年我也试试用纯 GPU 写本地客户端程序,也许会挺有意思。

    反正 gpt 是万能老师傅,一般不会翻车。
    dc46555ad
        20
    dc46555ad  
       2024-01-24 13:57:33 +08:00
    颜值第一,我推荐 electron
    lyusantu
        21
    lyusantu  
       2024-01-24 14:04:02 +08:00
    wpf
    jones2000
        22
    jones2000  
       2024-01-24 14:05:23 +08:00
    win32
    yuyue001
        23
    yuyue001  
    OP
       2024-01-24 14:12:15 +08:00
    @renmu

    我说 electron 开发臃肿,是因为我本人 Python 开发,前端技术比较菜,我觉得自己搞不定。VSCode 是不卡,可我也没微软那水平啊。
    yuyue001
        24
    yuyue001  
    OP
       2024-01-24 14:15:25 +08:00
    @hez2010 试了 Avalonia ,axaml 文件太大,拆分组件时传递参数总是失败。ChatGPT 也解决不了,现在除了 11 版,ChatGPT 好像还没学到。

    一方面感觉 ChatGPT 变笨了,另一方面,ChatGPT 做技术选型讨论的时候,它总是和稀泥,这也好,那也好。
    angrylid
        25
    angrylid  
       2024-01-24 14:32:21 +08:00 via Android   ❤️ 1
    这也算月经贴了。
    你要做什么东西,你团队的人都会什么技术你是一概不谈,既然这样的话直接 PyQt 吧
    realJamespond
        26
    realJamespond  
       2024-01-24 14:35:36 +08:00
    没人提 flutter?虽然不懂
    xiaoxinshiwo
        27
    xiaoxinshiwo  
       2024-01-24 14:38:59 +08:00
    python 就 QT
    alleluya
        28
    alleluya  
       2024-01-24 14:46:44 +08:00
    @realJamespond 图啥呢 op 又不考虑移动端 多窗口支持也有问题 单纯桌面客户端技术选择足够纠结了...
    vialon17
        29
    vialon17  
       2024-01-24 14:48:07 +08:00
    推一下 qt/pyside 原因:名字好听
    murmur
        30
    murmur  
       2024-01-24 14:52:18 +08:00
    @realJamespond flutter 那屎语法太难学了
    Befehishaber
        31
    Befehishaber  
       2024-01-24 15:19:44 +08:00
    Avalonia
    Promtheus
        32
    Promtheus  
       2024-01-24 15:29:32 +08:00
    有大佬知道 QT 的界面怎么美化吗 我写的界面有点丑啊。
    LXGMAX
        33
    LXGMAX  
       2024-01-24 15:31:51 +08:00
    @Promtheus 去找别人的 css style 抄上去
    或者交给美工
    langhuishan
        34
    langhuishan  
       2024-01-24 15:45:56 +08:00
    @iorilu 打包发布的时候,就各种打不开。
    broken123
        35
    broken123  
       2024-01-24 15:49:32 +08:00   ❤️ 1
    必然是 flutter 开发 1 年半 已经喜欢上了
    yidadaa
        36
    yidadaa  
       2024-01-24 15:57:45 +08:00
    别选了,electron 除了打包体积大点,开发体验和生态都是断层领先,根本不存在你说的性能问题。非得注重体积,就用 flutter ,但是 flutter desktop 也没什么正经团队在用,喜欢踩坑可以试试。Qt 和 WPF 就别看了,老登公司才用这些玩意儿,开发体验还停留在上个时代。
    xieren58
        37
    xieren58  
       2024-01-24 16:07:14 +08:00
    但凡用过原生开发, 就不想用 electron 这玩意了... electron 启动慢的一逼... 用 Avalonia 做了几个项目了... 从 electron, wpf 转到 Avalonia 的...
    txzh007
        38
    txzh007  
       2024-01-24 16:20:34 +08:00
    还是看需求,如果开发一个窗口套壳,将第三方 exe 包裹在自己写的应用里,这个需求 electron 就完全没办法做.
    ayang23
        39
    ayang23  
       2024-01-24 16:31:13 +08:00
    qt 或者 pyqt ,最近我把各种方案都测试了一遍。当然 electron 也不错,和 qt 生态位完全是错开的。
    qml 也是套了一个浏览器,虽然性能比 electron 高,但写起来肯定不如 react 之类的爽,编译慢,错误提示垃圾,关键还有学习成本,排除。
    ayang23
        40
    ayang23  
       2024-01-24 16:32:11 +08:00
    @Promtheus qtwidget 支持一些简单的 css
    murmur
        41
    murmur  
       2024-01-24 16:33:20 +08:00
    @txzh007 ??那你自己的应用开一个 webview 不就可以了么,然后自己提供 native 接口
    atpex
        42
    atpex  
       2024-01-24 16:33:45 +08:00
    electron 做出来的东西怎么说呢,有一种黏糊糊的感觉,看着好像很 cool (寨味儿很冲),但总觉得哪里不舒服。
    murmur
        43
    murmur  
       2024-01-24 16:35:34 +08:00
    @atpex 这还不是 ui 问题,好看的应用是要自己设计的,qq 音乐这些不还是 webview 套壳,只不过不是直接 electron ,改成 cef 了
    lujiaxing
        44
    lujiaxing  
       2024-01-24 16:39:49 +08:00
    Electron 是首选。
    别关心什么内存占用的问题。那不是你该关心的问题。除非涉及到 C++ 交互,否则 Electron 永远是不二之选。界面美观开发简单。没什么比 Electron 更合适的。

    然后其次是 Avalonia 。性能强悍内存占用低,可 AOT 所以也不需要什么 .NET 环境。打包好了到处都能用。尤其涉及到界面复杂或者带动效/3D/图表的情况下,Avalonia 基本上可以说是唯一选择。

    最后是 QT 。老牌 GUI 开发框架了。性能极其强悍,但是绑定 C++。对 C++ 熟悉的可以考虑。
    murmur
        45
    murmur  
       2024-01-24 16:40:40 +08:00
    推 flutter 的,挑明了说,完全的 kpi 导向,难用,难写,但是容易出 kpi ,别人不好接

    electron 是最适合的,国内用的也最广,ui 好设计,好学,会做网页就会做程序,各种 ui 库随便用

    如果看重底层就 cef ,都是 h5 套壳,看是壳有多重而已

    再看重底层就 qt ,wps ,davinci 这些都是 qt 做的,再头铁点,比如 affinity photo ,怀疑真的是双端自己写,一堆 c 和 wpf 的库
    hez2010
        46
    hez2010  
       2024-01-24 16:43:48 +08:00 via Android   ❤️ 1
    @yuyue001 拆分 axaml 一般做法是分 template 出去放到资源字典里来使用。
    dcsuibian
        47
    dcsuibian  
       2024-01-24 17:00:12 +08:00
    如果是我来开发的话,我会优先考虑直接做成 Web 版(毕竟现在 Web 能调用的 API 也很多),如果真的本地调用特别多再考虑用 Electron
    cktsun
        48
    cktsun  
       2024-01-24 17:11:52 +08:00 via iPad
    @tool2d 人家是期待討論的過程🥹
    你可能不太了解。這些決策類盡量不要交給 GPT ,還是要個人深入了解,沒深入了解過等同沒參與過開發過程。
    txzh007
        49
    txzh007  
       2024-01-24 17:20:42 +08:00
    @murmur 如果我选择嵌套第三方 exe 肯定需要第三方 exe 的运行界面啊. 可能是需求不一样,我这边是将三维云流化,这种操作太多了
    lstz
        50
    lstz  
       2024-01-24 17:27:06 +08:00 via Android
    我很是推荐 tauri ,我的开源项目 github.com/work7z/LafTools 就计划用它来作为桌面端的支持。

    我这个项目是 go 写的,但为什么桌面端不用 wails 而是 tauri 呢?原因如下

    1 ,支持桌面呼出,这个貌似 wails.io 目前还做不到
    2 ,软件体积小,这对于开箱即用的工具箱来说尤其重要,如果你想体积 30mb 以内,就用它!
    3 ,rust 逼格高。当然,我不想拉踩,只是我个人的角度来看....
    4 ,web 生态直接用起来!

    其实,很多人希望原生 ui ,无非就是太卡了或者不方便用。但其实还是用户体验跟程序设计的原因,用户只在乎颜值!功能!效率!

    其他内存占用多少之类的,很少会有人真的这么看
    lstz
        51
    lstz  
       2024-01-24 17:34:08 +08:00 via Android
    至于 rust 难度的问题,其实有了 gpt4 ,很多困难都会迎刃而解,再不济也有现成的 awesome-tauri 给你用

    关于 electron ,假如我要做面向大众的产品,那是肯定用的,无论是兼容性还是视觉统一性

    然后就我个人而言,我的产品用户都是专业人士,他们应该都会安装最新的浏览器,不太可能会用 ie11 了吧。。。
    yooomu
        52
    yooomu  
       2024-01-24 17:39:34 +08:00
    electron 啊,好写,好看,跨平台。除了占内存占硬盘。至于性能,js 性能挺强的,不过我不知道你对性能要求有多高
    murmur
        53
    murmur  
       2024-01-24 17:43:58 +08:00
    @txzh007 三围那你可以考虑 unity ,用游戏引擎做 3d 比自己开发简单多了
    ljsh093
        54
    ljsh093  
       2024-01-24 17:45:22 +08:00
    @lyusantu #21 文艺复兴是吧
    leyoumake1997
        55
    leyoumake1997  
       2024-01-24 17:51:29 +08:00
    大项目的话,后端业务功能较多,推荐 wails 。目前 wails 也支持多窗口(若是你觉得复杂可以窗内多 Dialog )。wails 打包最小体积也只有 10MB 左右(客户端运行只需要安装个 Edge 扩展即可)。另外 wails 是基于 golang 研发出来的,天生并发性能好,组件库都是源生代码。
    duan602728596
        56
    duan602728596  
       2024-01-24 17:59:18 +08:00
    Electron 启动慢,可能是初始化的时候启动慢,也可能是启动时同步加载了所有 node 的模块
    rockxsj
        57
    rockxsj  
       2024-01-24 18:00:37 +08:00
    avalonia 还能用 C# 美滋滋
    wangtian2020
        58
    wangtian2020  
       2024-01-24 18:00:43 +08:00
    electron 🤓
    不是什么好就用什么,而是我会什么就用什么,我只会 electron ,最近在用 electron 狠狠的写上位机跟底层通信,nodejs 直接 JavaScript 一把梭了
    iorilu
        59
    iorilu  
       2024-01-24 19:24:04 +08:00
    @langhuishan 是要花点时间, 但肯定可以用 pyinstaller 打包得

    我自己得软件就是用这个得, win 和 mac 都可以
    Nosub
        60
    Nosub  
       2024-01-24 19:37:24 +08:00 via iPhone
    不建议 QT 和 WPF ,用 electron 或是 Java 的 swing 都可以,学习 c++的时间成本太高,c#客户端生态太差,flutter 不了解不评价,你就想想现在主流前端和后端用的啥,就可以做出选择了。
    jackOff
        61
    jackOff  
       2024-01-24 19:49:45 +08:00
    qt+go
    jianchang512
        62
    jianchang512  
       2024-01-24 20:24:28 +08:00 via Android
    pyqt 性能够用,开发方便快速
    kaedeair
        63
    kaedeair  
       2024-01-24 20:40:40 +08:00   ❤️ 1
    后排提醒 pyqt 是 gpl 协议
    janus77
        64
    janus77  
       2024-01-24 20:42:50 +08:00
    你性能要求很高? QQ 都用 electron 了,不要预设一些有的没的,我个人猜你是非企业级项目,性能要求完全够用了。(我为什么猜你是非企业级项目?因为你压根没提到 WPF ,看来是个人开发,喜欢用新技术的那种)
    不需要跨平台的话,win 直接选 webview2 ,比 electron 包体小
    unbridle
        65
    unbridle  
       2024-01-24 20:43:52 +08:00
    目前来看支持 qt 和 electron 的最多,我更熟悉 python 所以倾向于 qt ,但是感觉 qt 的界面要想做的好看,方便程度还是比 electron 差了一些
    Elroooo0Y
        66
    Elroooo0Y  
       2024-01-24 20:49:21 +08:00
    pyside6, 上手难度低 ,快速实现功能.
    iorilu
        67
    iorilu  
       2024-01-24 22:35:03 +08:00 via Android
    qt 最大问题就是没那么多 web 组件库,样式难看点,但一般工具软件也不用太在意

    很在意外观的建议还是用 web 那套

    当然了,qt 本身也有 webview 组件,可以做到 electron 一样的事
    ty10086
        68
    ty10086  
       2024-01-25 02:39:59 +08:00   ❤️ 1
    正好因为项目 GUI 界面全平台兼容需要,翻到历史贴有人对比过各种。
    最后我选择了 H2O WAVE (水波)
    https://wave.h2o.ai/docs/getting-started

    H2O Wave 是一个软件堆栈,用于完全使用 Python 构建美观、低延迟、实时、基于浏览器的应用程序和仪表板,而无需使用 HTML 、Javascript 或 CSS 。

    借楼问问:以后长期用这个 widgets 组件开发 GUI 了,有人愿意做长久支持吗?
    lijy91
        69
    lijy91  
       2024-01-25 08:44:24 +08:00   ❤️ 1
    @yidadaa 微信输入法目前就在用 Flutter desktop ,还有 360 的极连快传也在用,我最近搞了个仓库做了个 flutter desktop apps 清单 https://github.com/leanflutter/flutter-apps
    sunmker
        70
    sunmker  
       2024-01-25 09:02:26 +08:00   ❤️ 2
    还有人说“c#客户端生态太差”???
    layxy
        71
    layxy  
       2024-01-25 09:21:21 +08:00   ❤️ 1
    lazarus,跨平台,前提你得会 Free Pascal
    v2yllhwa
        72
    v2yllhwa  
       2024-01-25 09:56:30 +08:00 via Android
    其实 pywebview 也不错,nuitka 打包不到 10M ,不过没有 tauri 和 wails 成熟
    mh
        73
    mh  
       2024-01-25 10:06:15 +08:00
    QML FluentUI ,之前看到这个国人开发的库,颜值不错,不知道实际用起来怎么样
    googleaccount
        74
    googleaccount  
       2024-01-25 10:41:23 +08:00
    不知道选啥就选 Electron
    atpex
        75
    atpex  
       2024-01-25 10:51:35 +08:00
    @murmur 嗯,确实设计做好了,其实都一样。只能说 electron 的产品基数大,所以体感千奇百怪了。
    antfu
        76
    antfu  
       2024-01-25 10:54:32 +08:00
    新版 qq 就行 electron 感觉还行
    daokedao
        77
    daokedao  
       2024-01-25 11:11:49 +08:00
    新版 qq 用的是 electron 还是 cef ?
    masterclock
        78
    masterclock  
       2024-01-25 11:11:55 +08:00
    在用 qt ,qml ,总结就是别用 qml ,别用 qml ,别用 qml ,谨慎选择 qt
    ShadowPower
        79
    ShadowPower  
       2024-01-25 11:16:55 +08:00
    @sunmker 也许是和 Web 生态比……
    Narcissu5
        80
    Narcissu5  
       2024-01-25 11:27:27 +08:00
    @tool2d gpt 的知识库到 2024 了么?
    hongyi2020
        81
    hongyi2020  
       2024-01-25 11:34:58 +08:00
    想做一个图像处理相关的软件,推荐用什么开发?
    iDeveloper666
        82
    iDeveloper666  
       2024-01-25 11:53:25 +08:00
    桌面端个人不太推荐使用 Compose Multiplatform 。

    相比移动开发来说,只有可以继续用 kotlin 这一个优势,官方目前似乎没有提供一个比较完整的开发方案,路由/状态管理/基础的配置读写等等这些都依赖自己或第三方实现。

    目前用来写了一个小工具,功能可以实现,但过程感觉很费劲。
    HaroldFinchNYC
        83
    HaroldFinchNYC  
       2024-01-25 12:19:58 +08:00
    真实一场持久战
    HaroldFinchNYC
        84
    HaroldFinchNYC  
       2024-01-25 12:26:09 +08:00
    我准备先试试 electron 和 wails

    先做几个 app 玩具试试

    然后再考虑下一步

    electron 确实,除了体积大,启动不快,对于一个前端程序员,没有更合适的了
    Nosub
        85
    Nosub  
       2024-01-25 12:38:56 +08:00 via iPhone
    @sunmker c#客户端生态的确差,你看过有几个互联网公司基于 c#开发客户端的例子,微软自己除外,做些简单的应用还好,你要要调用一些知名的第三方库,非常难受,比如 ffmpeg ,OpenCV ,sdl ,webrtc 这些。
    xujinkai
        86
    xujinkai  
       2024-01-25 12:45:37 +08:00 via Android
    WPF 套一个 Webview2 我目前是这么做的
    BYDH
        87
    BYDH  
       2024-01-25 12:46:46 +08:00
    比起现代化的桌面应用,我更倾向于在个人项目中写 Terminal GUI ,主打一个反差强烈
    zsan3653nj
        88
    zsan3653nj  
       2024-01-25 12:49:11 +08:00
    wxpython
    westoy
        89
    westoy  
       2024-01-25 13:26:03 +08:00
    #23 @yuyue001

    作为 python 圈 GUI 的大佬,bt 作者开 chia 这个坑的时候一言不合直接用了 electron......
    yuhuai
        90
    yuhuai  
       2024-01-25 13:50:50 +08:00
    @Nosub 互联网企业要求不高的开发客户端短平快,但不代表没有,而且你说的所谓的知名第三方,nuget 上都有,就算没有,c#调用 c++ dll 混编也比 electron 这些简单,不要对你不了解的领域随意贴标签
    fox0001
        91
    fox0001  
       2024-01-25 13:55:38 +08:00 via Android   ❤️ 1
    @realJamespond #26 推荐 Flutter
    yangzzzzzz
        92
    yangzzzzzz  
       2024-01-25 14:33:59 +08:00
    win 端还是 winui3 好用
    ybz
        93
    ybz  
       2024-01-25 15:34:47 +08:00   ❤️ 1
    再等等,Flutter 马上就要出多窗口了
    yidadaa
        94
    yidadaa  
       2024-01-25 15:59:57 +08:00
    @lijy91 微信输入法安装包都 132MB 了,很难不让人怀疑里面有没有塞个浏览器内核。
    okhao8801
        95
    okhao8801  
       2024-01-25 16:29:34 +08:00   ❤️ 1
    @murmur 还好吧,我写了好多年 Android 原生了,写了 flutter 之后发现太方便了,现在不太愿意写原生了,嫌太啰嗦,很多认识的人也是这个感觉
    Nosub
        96
    Nosub  
       2024-01-25 19:25:27 +08:00 via iPhone
    @yuhuai 或是你举几个例子,国内互联网公司有用 c#做桌面客户端,开发比较成功的案例,不要把别人不用,一律说成别人不懂,别人追求短平快,都是别人的原因。
    roundgis
        97
    roundgis  
       2024-01-25 19:25:46 +08:00 via Android
    @ybz 預計什麼時候?
    murmur
        98
    murmur  
       2024-01-25 19:34:40 +08:00
    @okhao8801 跟 h5 和 rn 比语法就一坨 shit ,真的,组件一堆属性我忍了,布局也要专门的组件套
    okhao8801
        99
    okhao8801  
       2024-01-25 21:01:08 +08:00
    @murmur 哈哈哈,是有点,不过有了扩展函数后,用 style 这个库就很方便了,就跟链式调用一样,可以少写很多嵌套
    wang5635099
        100
    wang5635099  
       2024-01-25 21:58:56 +08:00
    @stinkytofu 哈哈哈哈
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1743 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:45 · PVG 10:45 · LAX 18:45 · JFK 21:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.