桌面应用开发:为macOS和Windows定制软件
桌面应用是安装在电脑上的 macOS 和 Windows 软件,可以直接处理本地文件,并能自动更新。JEEKSSHIRE 24 负责这类产品的完整流程:从需求分析、界面设计,到安装包、代码签名、公证、自动更新和后续维护。我们自己的产品 Wallet 和 Legal 都在网页版之外提供 Mac 和 Windows 版本,所以桌面软件发布的每一步我们都亲自走过。
我们开发哪些桌面应用
我们开发的电脑软件要解决具体的工作问题,而不是把网站原样搬进一个独立窗口。
- macOS 应用:原生开发或共用代码
- 为企业定制的 Windows 应用和软件
- 跨平台桌面应用:Mac 和 Windows 共用一套代码
- 网页服务和客户后台的桌面版
- 文档工具:PDF、DOCX、文字识别、签名和导出
- 员工工作台:记账、文件处理、对接 CRM 和仓储系统
- 带 AI 助手、能处理用户本地文件的应用,详见AI 智能体开发
如果产品还需要手机版,可以在同一个项目中一起开发,详见iOS 与安卓手机app开发。
什么时候企业需要电脑软件而不是网站
网页应用更容易分发,很多任务用它就足够了,详见web应用开发页面。而在下面这些情况下,桌面软件更有优势:
- 需要处理本地文件和文件夹:文档、扫描件、导出数据、大型归档
- 数据不应离开电脑,例如保密文件
- 员工整天使用这个软件,看重快捷键、系统菜单和快速启动
- 需要离线工作,或者网络不稳定
- 需要连接打印机、扫描仪等硬件设备
如果还不确定是否真的需要定制软件,可以先阅读软件定制还是购买成品。
macOS 和 Windows:原生开发还是跨平台
原生应用用各个系统自己的工具开发,例如 macOS 使用 Swift。Electron 等跨平台桌面应用开发框架可以让 Mac 和 Windows 共用一套代码,并复用已有的网页界面。我们的原则很简单:在划算的地方共用一套代码,在速度关键的地方采用原生构建。
| 原生开发 | 跨平台(例如 Electron) | |
|---|---|---|
| 代码库 | macOS 和 Windows 各一套 | 两个系统共用一套 |
| 速度与内存 | 表现最好 | 内存占用更高,但通常足以满足业务需求 |
| 外观与交互 | 完全符合系统习惯 | 两个系统界面统一 |
| 复用网页版 | 很少 | 如果已有网页界面,复用程度很高 |
| 适合场景 | 大量计算、与系统深度集成 | 产品已有网页版,需要尽快覆盖两个系统 |
具体方案在评估阶段确定。我们用业务语言而不是技术术语来解释选择,方便您就实质问题提出不同意见。
桌面应用开发流程
- 需求分析:了解员工或客户现在在电脑上做什么,时间浪费在哪里。不一定需要完整的需求文档,一份简短说明就够了,可以参考软件需求规格说明书的写法。
- 方案与评估:确定平台、原生还是跨平台,并把工作拆分成可以分别展示和验证的部分。
- 界面与架构:设计窗口、菜单、文件处理、数据存储以及与服务器的通信。
- 分阶段开发:开发过程中您就能看到可运行的功能,并且可以随时调整优先级。
- 检查与发布:构建、代码检查和测试必须在发布前全部通过;只要有一项不通过,就不发布。
- 制作安装包,完成代码签名、公证,并搭建自动更新通道。
- 监控与迭代:故障告警、数据备份和后续版本发布。
一款独立应用的开发周期通常从几个月起;包含核心场景的第一个版本会更早发布,其余功能放到后续版本。进度如何安排,可以参考软件开发流程与周期。
安装包、代码签名、公证与自动更新
用户不应该看到系统提示“来自身份不明的开发者”,也不应该每次都手动下载新版本。因此,发布是开发的一部分,而不是最后一天才处理的事情。
- 为 macOS 和 Windows 制作符合系统习惯的安装包
- 在两个系统上用开发者证书进行代码签名
- 为 macOS 应用完成公证,让它打开时不再弹出警告
- 自动更新:应用自己发现新版本并完成安装
- 只有在构建和测试全部通过后才推送更新
文件、硬件、离线与数据安全
桌面软件离用户数据更近,因此对安全的要求更高。我们从第一次提交起就把安全写进代码:校验每一个输入字段,密钥不放在代码里,权限尽量最小。数据不会被送到不该去的地方:在我们的 Legal 中,文字识别直接在用户设备上完成,文档不必离开电脑。
应用可以处理文件和文件夹,在本地保存数据,并在网络恢复后与服务器同步。与您的 API、数据库、CRM 或仓储系统的对接,会在架构阶段一并设计。如果需要把多个系统连接起来,可以参考业务流程自动化。
客户将获得什么
- 已签名的 macOS 和 Windows 安装包,以及配置好的自动更新
- 源代码及其权利,相关条款在开工前写入合同
- 产品结构说明,以及如何构建、签名和发布的文档
- 服务端的故障告警和数据备份
- 按约定提供的维护和后续开发,详见软件维护服务
验收之前,建议对照软件验收清单逐项检查。
我们的案例:Mac 和 Windows 版的 Wallet 与 Legal
我们自己在生产环境中运营着十余款产品,它们都由同一支团队编写、发布和维护。其中两款已经公开,而且都有桌面版本。
- Wallet:用于支付境外数字服务的钱包,商品目录、余额、订单历史和退款都在同一个界面中,可在 Mac、Windows 和浏览器上使用,支持包括阿拉伯语在内的四种语言。
- Legal:带 AI 的文档编辑器,支持 PDF 和 DOCX、从图片和截图中识别文字、签名和导出;在网页版之外提供 Mac 和 Windows 版本,界面支持 184 种语言。
- JEEKSSHIRE 24 网站:提供 Wallet 和 Legal 的产品页面,以及 macOS、Windows 版下载和网页版入口。
您的应用也会走同样的流程:只有在所有检查都通过时才发布。更多做法见软件定制开发页面,也可以直接在需求表单中描述您的任务。
常见问题
原生开发还是 Electron,该怎么选?
如果产品已有网页版,并且需要尽快覆盖两个系统,跨平台构建往往更划算。如果涉及大量计算或需要与系统深度集成,原生开发更合适。
macOS 和 Windows 能共用一套代码吗?
可以,跨平台方案能让两个系统共用大部分代码。不过与系统功能相关的部分,仍需要针对每个平台单独编写。
macOS 应用需要公证吗?
如果在 App Store 之外分发,就需要:没有签名和公证,macOS 会警告用户,甚至阻止打开应用。签名和公证由我们负责完成。
自动更新是怎么工作的?
应用会检查是否有新版本,自动下载并安装,用户无需手动操作。只有在所有检查都通过后才会推送更新。
应用能离线使用吗?
可以,只要在架构中提前设计:数据保存在本地,网络恢复后再与服务器同步。哪些功能需要离线可用,在需求分析时确定。
能把我们的网页服务做成桌面版吗?
可以。网页界面往往可以作为桌面应用的基础,再加上文件处理、系统菜单、安装包和自动更新。
桌面应用开发费用是多少?
费用取决于工作量和工期,包括平台、功能、集成以及数据方面的要求。我们不公开价目表,会在分析需求之后给出评估和分步计划。
代码归谁所有,上线后有维护吗?
代码及其权利归客户所有,条款写入合同。上线后我们会约定维护方式,包括适配新版系统、修复问题和继续开发。