Mini App 技术选型建议(兼顾企业微信使用 + 作业提交)
目标:当前在企业微信(WeCom)内使用,同时满足「腾讯微信客户端菁英班」大作业:做一款 Mini App,至少覆盖 功能点 + 网络/存储 + 不卡顿/无明显资源泄露,并产出可提交材料(产品报告/源码/录屏)。
1. 先明确两条“交付线”
为了同时满足“真实使用场景”和“作业要求”,建议拆成两条交付线,互不冲突:
- 企业微信使用线(生产形态):继续沿用现有 H5(React),在企业微信内置 WebView 打开。
- 作业提交线(Mini App 形态):单独提供一个 可安装的客户端 App(Android/iOS),复用现有后端 API。
这样你既能保持企业微信场景的最小改动,也能把作业要求(存储/性能/客户端工程化)完整展示出来。
2. 候选方案对比(作业提交线)
| 方案 | 是否“客户端 App”形态 | 多系统(Android/iOS) | 复用现有能力(API/业务) | 存储/DB/文件能力 | 性能与资源控制 | 结论 |
|---|---|---|---|---|---|---|
| 继续 H5(企业微信内 WebView) | 否(更像网页) | 依赖宿主 | ✅ 后端全复用 | ⚠️ 受 WebView 限制 | ⚠️ 不易做“无泄露”证明 | 不建议作为作业主交付 |
| 微信小程序(或 uni-app/Taro 编译到小程序) | ✅(但非安装包) | ✅(依赖微信/企微容器) | ✅ | ⚠️ 能力受限 | ✅ 体验较稳 | 若老师明确要“小程序”,选它 |
| React Native(Expo 优先) | ✅ | ✅ | ✅ | ✅(AsyncStorage/MMKV/SQLite/文件) | ✅(可做性能优化与排查) | 推荐:综合性价比最高 |
| Flutter | ✅ | ✅ | ✅ | ✅(SQLite/文件) | ✅(渲染一致、性能好) | 团队会 Dart 时可选 |
| 原生 iOS/Android | ✅ | 需双端 | ✅ | ✅ | ✅ | 成本高,不适合“个人作业”快交付 |
3. 推荐选择(给到明确结论)
在你“企业微信要用 + 作业要交 Mini App”的前提下:
- 作业提交线:React Native(优先 Expo/EAS)
- 企业微信使用线:继续 H5(React)
原因(对齐作业验收点):
- 功能点:用移动端实现 1-2 个明确模块(例如 AI 对话 / 仿真图片查看 / 课程列表)。
- 技术点(网络/存储):直接调用现有
/api/v1/*;JWT/token 与历史记录本地存储。 - 性能点:用
FlatList/分页/图片缓存等展示“不卡顿”;用生命周期清理规避泄露。
4. 作业 Mini App 的最小功能集合(MVP)
建议做“少而完整”,方便写报告、录屏和验收:
- 登录页:账号密码登录(对接
POST /api/v1/auth/login),JWT 写入本地存储。 - AI 对话页:发送问题 → 展示回答(对接
POST /api/v1/ai/chat)。 - 仿真结果页(可选增强):提交参数 → 展示返回图片/结果卡片(对接
/api/v1/sim/*)。
存储建议(任选其一即可满足作业要求,做更多是“技术亮点”):
- 基础:token、用户信息、最近会话列表(AsyncStorage/MMKV)。
- 进阶亮点:会话/消息本地持久化(SQLite),支持离线查看历史。
5. 性能与“无明显资源泄露”自检清单(写进报告也很有用)
- 列表渲染:长列表一律用
FlatList,避免一次性渲染大量节点;开启分页/懒加载。 - 图片:避免长期持有大体积 base64 字符串;优先走“后端落盘返回 URL”或本地文件缓存。
- 网络:请求可取消(页面切走时
abort/清理),避免 setState on unmounted。 - 订阅/定时器:
useEffect必须返回 cleanup;WebSocket/监听在离开页面关闭。 - 内存观察:开发阶段用 Flipper/React DevTools(或 Xcode Instruments / Android Studio Profiler)做一次录屏证据。
6. 产品报告内容怎么写(按作业要求对齐)
建议把作业报告写成 6 页左右的 PDF/Word/PPT(重点是“完整闭环”):
- 产品功能介绍:目标用户、3 个核心页面、关键流程(登录→对话→结果)。
- 程序概要设计:页面/模块划分、关键状态(token、会话、缓存)。
- 软件架构图:客户端 → 后端(Go/Gin)→ AI/仿真服务(FastAPI)→ MySQL/文件存储。
- 技术点说明:网络(API 调用/鉴权)、存储(token/历史)、性能优化要点。
- (可选)技术亮点:离线缓存/图片缓存/弱网重试/错误处理等。
- 演示与测试:录屏路径、性能自检截图/说明。
7. 提交物打包提醒(避免格式被卡)
按要求把三类内容放进同一个文件夹后压缩:
产品报告(pdf/doc/ppt)源码仓库地址.txt(GitHub/gitee 链接)演示录屏(mp4 优先)
命名:学校+姓名+Android/iOS/鸿蒙+APP名称(例如:XX大学-张三-Android-Tiny-SSHjia.zip)。