使用 Electron 构建 Mac 应用程序有哪些限制?

What are the limitations of using Electron to build Mac Apps?

我发现使用 Ionic 等框架构建移动应用程序存在局限性。这些主要与访问设备特定功能有关。那么两个问题:

  1. 使用 Electron 构建 Mac 应用程序是否有任何类似的限制?

  2. 使用swift构建原生应用有哪些优势?

目前刚开始学electron,但是感觉electron很好用,图灵学院老师的这套deck https://speakerdeck.com/stevekinney/building-desktop-applications-with-node-and-electron

Electron 提供了一些本机功能,例如向 Dock 菜单添加条目或显示菜单栏图标。第三方添加了其他功能,例如 this one, which plugs into System Preferences. If nothing else, there's a JS-to-Obj C bridge,以调用 Objective-C 代码。

另一个重要因素是,使用一次编写-运行-随处编写的框架制作的应用程序通常具有奇怪的用户体验,并且不符合平台约定。当您使用 Cocoa 和 Swift / Objective-C.

构建真正的本机应用程序时,您可以免费获得此功能

例如,当 window 失去焦点时,工具栏的外观应该发生变化。您可以通过打开(比如说)Safari 偏好设置然后切换到另一个 window 或应用程序来亲眼看到这一点。 Electron 应用程序不会这样做。

再举一个例子,如果右键单击菜单打开,用户应该能够按 "C" 将选择移动到 "Copy"。 Electron 又不会这样做。

这会导致应用看起来和感觉起来很奇怪,而且是二流的。如果优先考虑原生品质的用户体验,请在 Cocoa.

中构建您的应用

如果您没有资源来构建单独的 Mac 和 Windows 应用程序(假设您是一家两人创业公司或一家慈善机构),但仍然希望获得比web 应用程序,然后考虑 Electron。

参考资料:Making a web app feel native,以及随后与发表该演讲的工程师 Ben Gotow 的电子邮件讨论。