产品派
返回

AI时代客户端开发如何权衡效率体验与性能

前端少数派2026/11/4 20:25:55
AI 导读

客户端开发通常有 Web、跨端和原生三条路线。PhoneGap、Cordova 等方案把网页装进原生壳,通过 bridge 调用摄像头等系统能力;React Native、Weex 解决移动端性能和多端复用问题,动态化与热更新也曾推动其普及。桌面端常用 Electron,VS Code、Slack及不少 AI 应用都采用它,但每个应用都要携带 Chromium 和 Node.js,安装包通常超过 100 MB且占用较多内存。

Flutter 通过自有渲染引擎实现一致体验,早期使用 Skia、如今转向 Impeller,Qt 也采用自行绘制界面的思路。Tauri 和 Wails 分别以 Rust、Go 编写,调用系统 WebView,体积比 Electron 小,但 Windows 的 WebView2、macOS 的 WKWebView、Linux 的 WebKitGTK 存在差异,因此兼容成本和显示一致性不如 Electron。

原生开发过去需要分别学习 Objective-C、Java、C++或 C#,投入较大但更容易获得性能和稳定性。SwiftUI、Jetpack Compose、WinUI 3 等声明式框架降低了开发门槛;Kotlin Multiplatform则可共享业务逻辑、分别编写原生界面。整体来看,Web偏向效率,原生偏向体验与性能,跨端处于中间位置,三者构成难以同时最大化的取舍关系。

AI降低了同时维护两套原生代码的成本:内容浏览类轻应用适合 Web,深度调用系统能力、重视内存和交互体验的产品仍适合原生;若业务规模大、技术体验不是核心,跨端则能更快迭代。作者的 macOS 版 Mole 使用 Swift 与 SwiftUI,Windows 版选择 C#、WinUI 3,并运行在 .NET 10 上。

Windows 原生框架经历了 Win32、WinForms、WPF 和 UWP,微软目前主推从系统中独立发布的 Windows App SDK 和 WinUI 3。它采用 Windows 11 Fluent 风格,支持高分屏缩放和 ARM64。作者将 .NET 10 运行时随程序打包,分别提供 x64、ARM64 安装包,并使用开源 Velopack 实现安装与增量更新。由于原有 Swift 代码中不足两成能脱离 AppKit、SwiftUI及 macOS 路径规则复用,Windows 版基本从零开发。

两端底层代码各自维护,但通过设计和规则保持一致:Mac 端颜色、字号、间距、圆角等 token 可脚本生成 XAML 资源,11种语言文案及菜单动画也同步转换。每次同步记录对应提交,并以 SYNC.md 对照新增功能、安全修复和差异原因,避免让 AI 牵引项目偏离;相比代码复用,设计、文案和规则等“能力抽象”更重要。

Windows 正式分发还需要代码签名。Azure Artifact Signing 每月 9.99 美元,但个人开发者仅限美国和加拿大;自 2023 年起私钥须放在硬件或云端 HSM,当前单张证书最长 460 天。作者最终购买 Certum 云端 OV 证书,3年花费300多美元,通过电脑端 SimplySign 和手机动态码签名,并持续向微软恶意软件分析门户提交安装包积累 SmartScreen 信誉。SimplySign 会话数小时不操作便失效,因此难以实现完全自动化打包。开发环境方面,作者计划让代码和 AI 上下文留在 Mac,仅在 Windows 中编译、验证和测试,并使用 Parallels Desktop,年费约300多元。

客户端开发跨端技术原生开发WindowsAI编程

本文基于公开渠道信息整理,内容可能存在不准确或遗漏之处,不代表本站立场,如内容涉及侵权或错误,请联系我们处理。

阅读原文