Skip to content

使用 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 方案很成熟,但仍有团队会卡在这些点:

  1. 技术栈门槛
    团队主力是 Vue / 前端,而不是 Dart / Flutter。

  2. 国内多端诉求
    除了 App,还要 H5、微信小程序、企业微信 / 钉钉入口。UniApp 一条业务代码覆盖多端,交付路径更短。

  3. 交付与联调习惯
    国内很多项目更熟悉 npm、HBuilderX、各小程序后台的发布流程。

  4. 二次定制成本
    白标、菜单、登录页、列表交互要按甲方 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 AppUniApp 仿写(本仓库方向)
技术栈Dart / FlutterVue + UniApp
端能力主打 iOS / AndroidApp + H5 + 小程序更易扩展
与官方同步跟官方 Release 走需自己跟平台 API 演进
适合团队有 Flutter 能力 / 要官方路线Vue 团队、国内多端交付
白标上架官方文档与工具链完整需自建打包与各商店流程
定位官方标准答案国内场景的补充实现

一句话:

  • 要官方标准、长期跟版本 → 优先 Flutter 官方仓库
  • 要国内多端、前端团队可维护 → 看 UniApp 仿写开源项目

开源项目怎么用(上手提示) ​

  1. 打开仓库:https://gitee.com/zhoudong-space/thingsboard_app
  2. 用 HBuilderX 或 VS Code 打开工程
  3. 配置你的 ThingsBoard 地址与租户账号
  4. 先跑通登录与设备 / 告警列表,再接看板

更完整的平台侧配置思路,可对照:

适合谁、不适合谁 ​

适合:

  • 已有 ThingsBoard(CE / 私有化),要快速给客户一个「能看能管」的手机入口
  • 前端 / UniApp 团队主导交付
  • 需要小程序或 H5,而不只是双端原生 App

需谨慎:

  • 强依赖官方最新 Flutter 特性(BLE 配网、完整 Mobile Center 配置同步等)且要「零偏差」跟官方
  • 没有人维护自研移动端时的 API 变更

小结 ​

官方 Flutter App 证明了一件事:移动端不必另造业务系统,把 ThingsBoard 已有能力带到手机即可。

我用 UniApp 仿写,是为了在国内交付语境里,多一条更顺手的路:技术栈熟、多端好发、定制灵活。代码已开源在 Gitee,欢迎 Star、提 Issue,也欢迎一起把「登录—设备—告警—看板」这条链路打磨得更稳。

相关阅读: