能力详情

APP 与客户端

Android、PC 客户端、小程序,与后台系统打通。

01 / 技术决策

三个绕不过去的取舍

每个都有代价,我们选了哪边、为什么。

原生还是跨平台:性能还是要覆盖面

常见做法iOS / Android 各写一套原生
另一种一套跨平台代码(Flutter / RN)
我们的做法跨平台为主,重性能模块用原生插件
全原生的问题是两套代码两套人,维护成本翻倍。跨平台的性能在绝大多数业务场景已经够用,真正需要原生的只有:高频动画、大量图像处理、复杂传感器融合。这些做成原生插件挂上去,其余用跨平台。

离线怎么支持:缓一点还是要能全功能用

常见做法不做离线,必须联网
另一种缓存常用数据,断网可看
我们的做法核心流程完全离线可用,联网后同步
展厅、车间、井下这些场景经常没网。如果核心流程依赖联网,设备一断网整个系统就废了。所以关键流程(比如考核答题、设备巡检)要做成完全离线,数据先落本地库,联网后按时间戳增量同步。

更新怎么发:应用商店还是自更新

常见做法走应用商店审核发布
另一种应用内检查更新,下载安装包
我们的做法商店 + 内部分发双轨
应用商店的审核周期不可控,紧急修复要等几天。对内部使用的 App(如巡检、考核),用 MDM 或内部分发更实际;面向公众的才走商店。
02 / 方案对比

同样是这件事,三种做法

没有最优方案,只有适配场景。

方案开发成本性能离线能力适合场景
双端原生最高最好强重交互、重图形
跨平台(Flutter/RN)中好(多数场景够)强业务型 App
PWA / 小程序最低中弱(受浏览器限制)轻量工具、活动页
选型先看「有没有离线硬需求」,而不是先看技术栈。

我们做什么

  • Android 应用(多个项目已交付)
  • PC 客户端与桌面工具
  • 离线可用,支持内网部署
  • 与培训/考核系统对接

聊具体需求

交付形态

部署方式私有化 / 专有云 / 内网
交付内容系统 + 文档 + 培训
运维支持远程 + 现场
源码交付可谈
相关案例

已跑通的系统

客户名称按保密要求匿名。

港口 / 智能体 + 联盟链 + APP

某大型集装箱港口 · 智慧安全实训中心

背景
年吞吐量居国内前列的集装箱港口。原有培训以课堂讲授为主,高危作业实操训练无法覆盖。
方案
综合安全实训中心 + 培训考核平台 + 移动端学习。7 类考核系统、9 个软件模块、3 节点联盟链。
技术
FISCO BCOS 联盟链(PBFT)· 成绩单 SHA-256 上链 · node.js 后台 · Android 移动端 · 3D 模型交互
成效
培训记录可链上核验,成绩单防篡改;覆盖 55 类设备、66 台设备台账。
海外 / 数字展陈

某中亚国家博物馆 · 数字展陈

背景
中亚地区国家博物馆,需要数字化展陈与多语导览。
方案
数字展陈系统 + 多语导览 + 3D 展示 + 互动装置。
技术
3D 建模与展示 · 多语言内容 · 触摸导览 · 大屏联动
成效
多语言数字展陈交付,3D 内容可在普通设备流畅运行。

查看全部案例

03 / 实施路径

从零到上线分几步

顺序不能反 —— 先做写操作、先做多步编排,出错都很难查。

确认离线边界

哪些功能必须断网可用?这是架构的第一决定项,比选框架重要。

定数据同步策略

本地库与服务端怎么对账:按时间戳增量、还是按操作日志回放?冲突怎么解?这决定后面会不会出现数据错乱。

搭骨架

导航、登录、权限、本地存储先跑通,业务功能后加。

做核心流程

选一条最关键的流程(如巡检或考核)做完整,含离线与同步。这条流程通了,其他流程是复制。

打包与分发

内部分发用 MDM 或直接分发安装包;公众版走商店。同时要预留强制升级机制,否则老版本会一直留着。

04 / 关键指标

能被验证的数字

不写形容词,写口径。

离线可用范围核心流程 100% 非核心流程可降级
同步策略增量 + 时间戳 冲突按服务端优先或人工介入
支持平台Android / iOS / 小程序 按需裁剪
安装包体积20–60 MB 视是否内置模型与资源
05 / 常见问题

技术负责人最常问的

这些是真实问过的问题,答案不带营销话术。

能不能只做小程序不做 App?
如果不需要离线与硬件调用,小程序够用且成本低。但只要涉及「断网可用」「扫码枪/串口/蓝牙」这类需求,就必须做原生 App。
跨平台会不会性能不够?
业务型应用一般够。真正吃性能的是高频动画与图像处理,这部分用原生插件解决,不需要整体改原生。
离线数据会不会丢?
会,如果没做好同步。我们的做法是本地写操作先落库并标记未同步,联网后按队列逐条上传,失败的保留并提示,不静默丢弃。
以后想加功能要不要重新发版?
要。这是原生 App 的固有代价。所以架构上要预留「配置驱动」的空间 —— 能把变化放到配置或服务端的,就不要写死在客户端。
安卓碎片化怎么处理?
定最低支持版本,低于该版本的强制升级;同时避免使用太新的系统 API。这一条在项目启动时就要定,中途改代价很大。