JEEKSSHIRE 24

桌面应用开发:为macOS和Windows定制软件

桌面应用是安装在电脑上的 macOS 和 Windows 软件,可以直接处理本地文件,并能自动更新。JEEKSSHIRE 24 负责这类产品的完整流程:从需求分析、界面设计,到安装包、代码签名、公证、自动更新和后续维护。我们自己的产品 Wallet 和 Legal 都在网页版之外提供 Mac 和 Windows 版本,所以桌面软件发布的每一步我们都亲自走过。

我们开发哪些桌面应用

我们开发的电脑软件要解决具体的工作问题,而不是把网站原样搬进一个独立窗口。

如果产品还需要手机版,可以在同一个项目中一起开发,详见iOS 与安卓手机app开发。

什么时候企业需要电脑软件而不是网站

网页应用更容易分发,很多任务用它就足够了,详见web应用开发页面。而在下面这些情况下,桌面软件更有优势:

如果还不确定是否真的需要定制软件,可以先阅读软件定制还是购买成品。

macOS 和 Windows:原生开发还是跨平台

原生应用用各个系统自己的工具开发,例如 macOS 使用 Swift。Electron 等跨平台桌面应用开发框架可以让 Mac 和 Windows 共用一套代码,并复用已有的网页界面。我们的原则很简单:在划算的地方共用一套代码,在速度关键的地方采用原生构建。

原生开发跨平台(例如 Electron)
代码库macOS 和 Windows 各一套两个系统共用一套
速度与内存表现最好内存占用更高,但通常足以满足业务需求
外观与交互完全符合系统习惯两个系统界面统一
复用网页版很少如果已有网页界面,复用程度很高
适合场景大量计算、与系统深度集成产品已有网页版,需要尽快覆盖两个系统

具体方案在评估阶段确定。我们用业务语言而不是技术术语来解释选择,方便您就实质问题提出不同意见。

桌面应用开发流程

  1. 需求分析:了解员工或客户现在在电脑上做什么,时间浪费在哪里。不一定需要完整的需求文档,一份简短说明就够了,可以参考软件需求规格说明书的写法。
  2. 方案与评估:确定平台、原生还是跨平台,并把工作拆分成可以分别展示和验证的部分。
  3. 界面与架构:设计窗口、菜单、文件处理、数据存储以及与服务器的通信。
  4. 分阶段开发:开发过程中您就能看到可运行的功能,并且可以随时调整优先级。
  5. 检查与发布:构建、代码检查和测试必须在发布前全部通过;只要有一项不通过,就不发布。
  6. 制作安装包,完成代码签名、公证,并搭建自动更新通道。
  7. 监控与迭代:故障告警、数据备份和后续版本发布。

一款独立应用的开发周期通常从几个月起;包含核心场景的第一个版本会更早发布,其余功能放到后续版本。进度如何安排,可以参考软件开发流程与周期。

安装包、代码签名、公证与自动更新

用户不应该看到系统提示“来自身份不明的开发者”,也不应该每次都手动下载新版本。因此,发布是开发的一部分,而不是最后一天才处理的事情。

文件、硬件、离线与数据安全

桌面软件离用户数据更近,因此对安全的要求更高。我们从第一次提交起就把安全写进代码:校验每一个输入字段,密钥不放在代码里,权限尽量最小。数据不会被送到不该去的地方:在我们的 Legal 中,文字识别直接在用户设备上完成,文档不必离开电脑。

应用可以处理文件和文件夹,在本地保存数据,并在网络恢复后与服务器同步。与您的 API、数据库、CRM 或仓储系统的对接,会在架构阶段一并设计。如果需要把多个系统连接起来,可以参考业务流程自动化。

客户将获得什么

验收之前,建议对照软件验收清单逐项检查。

我们的案例:Mac 和 Windows 版的 Wallet 与 Legal

我们自己在生产环境中运营着十余款产品,它们都由同一支团队编写、发布和维护。其中两款已经公开,而且都有桌面版本。

您的应用也会走同样的流程:只有在所有检查都通过时才发布。更多做法见软件定制开发页面,也可以直接在需求表单中描述您的任务。

常见问题

原生开发还是 Electron,该怎么选?

如果产品已有网页版,并且需要尽快覆盖两个系统,跨平台构建往往更划算。如果涉及大量计算或需要与系统深度集成,原生开发更合适。

macOS 和 Windows 能共用一套代码吗?

可以,跨平台方案能让两个系统共用大部分代码。不过与系统功能相关的部分,仍需要针对每个平台单独编写。

macOS 应用需要公证吗?

如果在 App Store 之外分发,就需要:没有签名和公证,macOS 会警告用户,甚至阻止打开应用。签名和公证由我们负责完成。

自动更新是怎么工作的?

应用会检查是否有新版本,自动下载并安装,用户无需手动操作。只有在所有检查都通过后才会推送更新。

应用能离线使用吗?

可以,只要在架构中提前设计:数据保存在本地,网络恢复后再与服务器同步。哪些功能需要离线可用,在需求分析时确定。

能把我们的网页服务做成桌面版吗?

可以。网页界面往往可以作为桌面应用的基础,再加上文件处理、系统菜单、安装包和自动更新。

桌面应用开发费用是多少?

费用取决于工作量和工期,包括平台、功能、集成以及数据方面的要求。我们不公开价目表,会在分析需求之后给出评估和分步计划。

代码归谁所有,上线后有维护吗?

代码及其权利归客户所有,条款写入合同。上线后我们会约定维护方式,包括适配新版系统、修复问题和继续开发。

ⓘ