应用套壳指的是将现有的 Web 应用(在线 URL)通过一个壳程序封装,使其成为一个独立的桌面或移动端应用。这种壳程序通常利用跨平台的框架,如 [3]、Tauri[4]、Cordova[5] 等,将 Web 技术与原生应用的特性结合起来(赋予 web 网站许多在浏览器所不具备的能力,如系统通知、本地文件读写等)。
跨平台开发
我所理解的跨平台开发主要分为原生开发和 Web 开发:
Web 开发:
从以上技术特点来对比,其实不难发现套壳的优势:同时兼顾了可维护性、即时性、以及和操作系统的交互性。
既然聊到了套壳, 大概率是绕不开的一个话题,因为它是目前最流行的 PC 端跨平台方案(著名案例:VS Code、Discord、Figma、Notion、Slack 等)。
.js 的发展史充满了创新和突破,它为跨平台桌面应用开发铺平了道路,尤其在 Web 技术与桌面应用之间架起了桥梁。 诞生于 GitHub 的内部项目 Atom[7] 的需求。2013 年,GitHub 工程师 zcbenz[8] 和团队在开发 Atom 编辑器时,遇到了需要构建一个跨平台的桌面应用的需求。然而,当时的解决方案并不多,团队便决定打造一种新工具,这就是 的前身——Atom Shell[9]。该项目的所有权在 2019 年转移到了 OpenJS 基金会( joins the OpenJS [10])。
技术架构初期发展:从 Atom Shell 到
Atom Shell 于 2014 年开源,不久后被重命名为 ,进一步开发为通用的跨平台框架。它利用了 [11] 和 Node.js[12],将 Web 技术引入桌面应用的世界。开发者可以通过 HTML、CSS 和 ,使用 构建桌面应用并在 Windows、macOS 和 Linux 上运行。这种方式极大简化了跨平台开发的复杂性,因为 Web 技术相对统一,开发人员不再需要为每种操作系统单独编写代码。
的开源发布迅速引起了开发者的关注。 让开发者可以在不熟悉桌面应用开发的情况下,使用常见的 Web 技术构建功能强大的应用,降低了技术门槛。同时, 的 API 设计易于调用和扩展,例如与文件系统交互、访问原生窗口和菜单等,这些能力对 Web 开发者来说是全新的体验。
崛起:主流应用的采用
在随后的几年里,越来越多的知名公司采用了 来开发他们的桌面应用,例如 Slack、Visual Studio Code、Discord、Figma、Notion 等。 的强大,特别是 Visual Studio Code (VS Code) 的成功,使其成为业界的标杆。VS Code 的性能优化和跨平台兼容性展示了 的潜力,并推动了开发者社区对 的广泛认可。
挑战:性能和资源占用
尽管 成功地简化了跨平台开发,但其在性能和内存占用方面的不足也逐渐显现。由于 的每个应用都需要嵌入一个完整的 浏览器实例,这导致其在启动速度和内存消耗上比原生应用要大,尤其在低配置设备上尤为明显。面对这些挑战, 社区和开发团队不断优化框架。例如,2019 年 开发团队引入了 API,以提升主进程与渲染进程之间的通信性能,减少不必要的开销。
此外, 不断升级 和 Node.js,以确保应用的安全性和兼容性,并加入了 Tree Shaking 和 Code 等功能来减小应用体积。
未来:集成与性能的平衡
今天, 已成为桌面开发的重要框架之一,但它也面临着新的竞争和趋势。像 Tauri 和 Flutter[13] 等新兴框架,以更小的资源占用和更高效的开发流程为卖点,给 带来了压力。 的未来将可能更加注重与操作系统的深度集成和性能优化,以提升用户体验。
总结来看, 的发展从解决内部需求到开源、被广泛采用,再到不断优化性能和功能,已成就了一个强大且灵活的跨平台开发工具。对于熟悉 Web 开发技术的开发者来说, 仍是构建桌面应用的最佳选择之一,其生态也在随着社区的推动和新需求的出现不断成长。
AI 应用选择套壳
AI 技术发展迅猛,市场竞争激烈。使用套壳方式,可以:
套壳应用的流行,反映了当前软件开发对效率和跨平台性的追求。然而,技术没有银弹,每种方案都有其适用场景和局限性。作为开发者,应该保持对新技术的敏感度,理性评估,避免一味追求速度而忽略了应用的质量和用户体验。未来,我们需要在效率、性能和用户需求之间找到最佳平衡,才能开发出真正优秀的应用。
[1]
Swift:
[2]
ChatGPT search:
[3]
:
[4]
Tauri:
[5]
Cordova:
[6]
NPM:
[7]
Atom:
[8]
zcbenz:
[9]
Atom Shell:
[10]
joins the OpenJS :
[11]
:
[12]
Node.js:
[13]
Flutter:
*请认真填写需求信息,我们会在24小时内与您取得联系。