使用 UniApp 仿写 ThingsBoard 的 Flutter App 项目
ThingsBoard 官方移动端是基于 Flutter 的开源项目,能很快做出「看设备、看告警、看板、扫码」这类 IoT App。但对不少国内团队来说,Flutter 工程师不好招、小程序 / 企业微信入口又刚需——于是我用 UniApp 做了一套仿写实践,并把代码开源了。
开源仓库:
本文不是安装手册,而是讲清:官方 Flutter App 在解决什么、我为什么用 UniApp 仿、仿写时应对齐哪些能力、适合谁用。
先认识官方:ThingsBoard Flutter App 是什么
官方定位很明确:用最少代码,做出连到你自己 ThingsBoard 实例的品牌化移动应用(iOS / Android)。
开源仓库:
产品与文档:
官方公开能力大致包括:
| 能力 | 说明 |
|---|---|
| Dashboard 浏览 | 在手机上打开平台里配置好的看板 |
| 设备与告警 | 设备列表、在线状态、告警查看与管理 |
| 首页导航可配 | 入口图标、顺序、可见性可在平台侧配置 |
| 移动动作 | 拍照、扫码、定位、文件导出等(随版本演进) |
| 账号体系 | 登录;高阶场景还有 OAuth2、自助注册、MFA 等 |
| 品牌化 | 白标换肤、包名 / 图标 / 启动页等定制(PE / 商业能力更完整) |
| 设备配网 | 新版本方向包含 ESP32 BLE / SoftAP 等配网能力 |
官方也明确:这不是 Web 端替代品——Web 仍是主平台;移动端把已有能力装进口袋。
我们站点里的 Mobile 专栏 也按这个思路拆过:先把 Web 模型与看板做扎实,再谈移动端。
为什么还要用 UniApp 仿一版?
官方 Flutter 方案很成熟,但仍有团队会卡在这些点:
技术栈门槛
团队主力是 Vue / 前端,而不是 Dart / Flutter。国内多端诉求
除了 App,还要 H5、微信小程序、企业微信 / 钉钉入口。UniApp 一条业务代码覆盖多端,交付路径更短。交付与联调习惯
国内很多项目更熟悉 npm、HBuilderX、各小程序后台的发布流程。二次定制成本
白标、菜单、登录页、列表交互要按甲方 UI 改时,用熟悉的 Vue 技术栈往往更快。
所以仿写的目标不是「完全替代官方 Flutter 仓库」,而是:
在 ThingsBoard REST / WebSocket 能力之上,用 UniApp 提供一条更贴国内交付的移动端实现。
仿写应对齐的核心能力(建议清单)
对照官方产品,UniApp 版至少应逐步覆盖这些「能交付」的能力:
1. 连接你的 ThingsBoard 实例
- 可配置平台地址(CE / 私有化均可)
- 租户 / 用户登录、Token 刷新
- 环境切换(测试 / 生产)要简单
2. 首页与导航
- 展示平台侧配置的入口(或本地可配菜单)
- 看板、设备、告警、我的,形成最小信息架构
3. 设备
- 按类型 / 在线状态浏览
- 进入设备详情、关联看板
- (可选)扫码定位到设备
4. 告警
- 告警列表、状态、详情
- 能跳转到相关看板(值班场景刚需)
5. Dashboard
- 内嵌或跳转打开 ThingsBoard Dashboard
- 处理登录态与移动端适配
6. 体验层
- 下拉刷新、空状态、错误提示
- 深色 / 浅色与基础品牌色(为白标留扩展点)
官方 Flutter 在通知中心、多语言、2FA、BLE 配网等方面迭代很快;UniApp 版可以分阶段对齐,先把「登录 → 设备 → 告警 → 看板」闭环跑通,再补高级能力。
Flutter 官方 vs UniApp 仿写:怎么选
| 维度 | 官方 Flutter App | UniApp 仿写(本仓库方向) |
|---|---|---|
| 技术栈 | Dart / Flutter | Vue + UniApp |
| 端能力 | 主打 iOS / Android | App + H5 + 小程序更易扩展 |
| 与官方同步 | 跟官方 Release 走 | 需自己跟平台 API 演进 |
| 适合团队 | 有 Flutter 能力 / 要官方路线 | Vue 团队、国内多端交付 |
| 白标上架 | 官方文档与工具链完整 | 需自建打包与各商店流程 |
| 定位 | 官方标准答案 | 国内场景的补充实现 |
一句话:
- 要官方标准、长期跟版本 → 优先 Flutter 官方仓库
- 要国内多端、前端团队可维护 → 看 UniApp 仿写开源项目
开源项目怎么用(上手提示)
- 打开仓库:https://gitee.com/zhoudong-space/thingsboard_app
- 用 HBuilderX 或 VS Code 打开工程
- 配置你的 ThingsBoard 地址与租户账号
- 先跑通登录与设备 / 告警列表,再接看板
更完整的平台侧配置思路,可对照:
适合谁、不适合谁
适合:
- 已有 ThingsBoard(CE / 私有化),要快速给客户一个「能看能管」的手机入口
- 前端 / UniApp 团队主导交付
- 需要小程序或 H5,而不只是双端原生 App
需谨慎:
- 强依赖官方最新 Flutter 特性(BLE 配网、完整 Mobile Center 配置同步等)且要「零偏差」跟官方
- 没有人维护自研移动端时的 API 变更
小结
官方 Flutter App 证明了一件事:移动端不必另造业务系统,把 ThingsBoard 已有能力带到手机即可。
我用 UniApp 仿写,是为了在国内交付语境里,多一条更顺手的路:技术栈熟、多端好发、定制灵活。代码已开源在 Gitee,欢迎 Star、提 Issue,也欢迎一起把「登录—设备—告警—看板」这条链路打磨得更稳。
相关阅读:
