Skip to content

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”的前提下:

  1. 作业提交线:React Native(优先 Expo/EAS)
  2. 企业微信使用线:继续 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(重点是“完整闭环”):

  1. 产品功能介绍:目标用户、3 个核心页面、关键流程(登录→对话→结果)。
  2. 程序概要设计:页面/模块划分、关键状态(token、会话、缓存)。
  3. 软件架构图:客户端 → 后端(Go/Gin)→ AI/仿真服务(FastAPI)→ MySQL/文件存储。
  4. 技术点说明:网络(API 调用/鉴权)、存储(token/历史)、性能优化要点。
  5. (可选)技术亮点:离线缓存/图片缓存/弱网重试/错误处理等。
  6. 演示与测试:录屏路径、性能自检截图/说明。

7. 提交物打包提醒(避免格式被卡)

按要求把三类内容放进同一个文件夹后压缩:

  • 产品报告(pdf/doc/ppt)
  • 源码仓库地址.txt(GitHub/gitee 链接)
  • 演示录屏(mp4 优先)

命名:学校+姓名+Android/iOS/鸿蒙+APP名称(例如:XX大学-张三-Android-Tiny-SSHjia.zip)。

Released under the MIT License.