# 02 · 技术选型 > 记录"如何把一套代码打包成 iOS + Android"的方案对比与最终决策。 ## 一、候选方案对比 | 方案 | 原理 | iOS 免 Mac | 出微信小程序 | 自托管当网页 | 生态 | |---|---|---|---|---|---| | **uni-app** ✅选定 | Vue 语法,一套代码多端,HBuilderX 云打包 | ✅ 云打包 | ✅ | ✅(H5) | 中文/Vue | | Capacitor + React | 网页 App 套原生壳 | ❌ 需 Mac | ❌ | ✅(更原生) | React/英文 | | Flutter | Dart 编译双端原生 + Web | ❌ 需 Mac | ❌ | 一般 | Dart | | React Native / Expo | JS 原生组件,Expo 可云构建 | ⚠️ 可云构建 | ❌ | ❌ | React | ## 二、最终决策 **前端框架:经典 uni-app(Vue 3)** 选它的三个决定性理由(贴合用户约束): 1. **iOS 能云打包,不用 Mac** —— 直接解决用户"没有 Mac 也想出 iOS 包"的痛点。 2. **一套代码可顺手出微信小程序** —— 方便分享给家人/组员,免安装。 3. **中文生态、文档、社区**,Vue 上手快,图表库(uCharts/qiun-data-charts)成熟。 > 为什么不用 uni-app x:性能更强但插件生态不成熟,财务仪表盘类用经典版(Vue)更省事。 ## 三、必须明确的现实约束(iOS 相关) uni-app 云打包能省掉 **Mac 电脑**,但**苹果的规矩绕不开**: 1. **Apple 开发者账号 $99/年** —— 想装到 iPhone(哪怕自用)就得有,框架无法豁免。 2. **iOS 证书**(`.p12` + `.mobileprovision`)—— 没 Mac 也能生成,用在线工具(香蕉云编 / Appuploader)配合苹果开发者后台。 3. **云打包在 HBuilderX 中操作** —— 需 DCloud 账号;此步由用户在 HBuilderX 点击完成,无法从命令行触发。 > 结论:uni-app 让"无 Mac 出 iOS 包"成立,但 $99/年苹果账号免不了。预算未定前,先用 H5/PWA + Android 自用。 ## 四、技术栈清单 | 层 | 选型 | |---|---| | 用户端骨架 | **unibest**(uni-app + Vue3 + Vite + TS + UnoCSS + wot-ui,命令行开发不依赖 HBuilderX) | | 用户端页面 | 普通 vue 页面(**不用 nvue**) | | 图表 | qiun-data-charts(多端兼容封装) | | 用户端目标 | H5(网页/PWA) + App(iOS/Android 云打包) +(可选/后置)微信小程序 | | **后端** | **Go + Gin + GORM + SQLite(modernc 纯 Go 驱动)+ JWT**,Docker 部署于腾讯云 VPS;Nginx + certbot 提供 HTTPS | | **管理后台** | **无构建**:Gin html/template + HTMX + Alpine.js + **Tabler**(Bootstrap5 后台皮肤) + Chart.js,由 Go 进程直接托管(`//go:embed`),并入 `server/` | | 同步 | REST API(HTTPS) + 本地缓存(离线优先),简单时间戳同步策略 | | 鉴权 | 单用户 JWT | ### 后端语言决策:Go vs Node 选 **Go(Gin + GORM + SQLite)**。理由:单二进制部署、内存占用小、Docker 镜像极小,**更适合常驻的小 VPS 自托管**;前后端经 REST/JSON 解耦,后端用什么语言对 unibest 前端无影响。 **管理端形态:API + Web 管理后台,且管理后台采用「无构建」方案** —— Gin html/template + HTMX + Alpine + **Tabler 后台模板**,由 Go 进程直接渲染托管。Tabler(MIT,Bootstrap5)自带登录/侧边栏/仪表盘/表格等现成页面,是 admin 端等价于 unibest 的"带基本模块骨架",且 CSS/JS 预编译、无需 build。放弃 Vue3+Element Plus(需独立 build/子项目) 与 gin-vue-admin/GoFrame(偏重),换来零 Node 工具链、单二进制、仓库更简单。 ## 五、开发分工 - **AI(在 WSL)**:基于 unibest 搭用户端、写四大功能、H5 实时预览;写 Go(Gin) 后端 + 无构建管理后台(html/template+HTMX);给出 VPS 部署 + certbot HTTPS 步骤。 - **用户**:装 HBuilderX 导入项目 → 点云打包出 App;按教程办苹果账号/生成证书;在腾讯云 VPS 跑后端容器(如需小程序则办域名备案)。 ## 六、用户需准备(按阶段) - 现在:HBuilderX(免费)+ DCloud 账号。 - 出 Android:基本零成本。 - 出 iOS:Apple 开发者账号 $99/年(界面稳定、确定要上 iOS 时再办)。