- 阶段1: 消息类型序列化 (Serialize/Deserialize, &'static str → String) - 阶段2: FFI 边界类型 + Plugin SDK (plugin_abi, showen-plugin-sdk crate) - 阶段3: PluginLoader + DynamicPlugin (libloading 动态加载 .so) - 阶段4: 版本管理 + 错误策略 (VersionManager, PluginState, 自动回退) - 阶段5: 远程仓库客户端 (HTTP 下载 + tar.gz 安装) - 阶段6: 示例插件 + HTTP 管理 API + 全目录 README 文档 54/54 测试通过,0 warnings。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ShowenV2 客户端应用
本目录包含 ShowenV2 的外部控制应用,用户可以通过这些客户端远程控制 ShowenV2 设备。
客户端类型
1. 移动端应用
- iOS App -
ios/- 原生 iOS 应用(Swift/SwiftUI) - Android App -
android/- 原生 Android 应用(Kotlin/Jetpack Compose) - Flutter App -
flutter/- 跨平台移动应用(iOS + Android)
2. 小程序
- 微信小程序 -
wechat-miniapp/- 微信生态 - 支付宝小程序 -
alipay-miniapp/- 支付宝生态 - 抖音小程序 -
douyin-miniapp/- 抖音生态
3. Web 应用
- Web App -
web/- 响应式 Web 应用(React/Vue) - 桌面应用 -
desktop/- Electron 桌面应用(Windows/macOS/Linux)
4. 智能设备
- 智能手表 -
watch/- Apple Watch / Wear OS - 智能音箱 -
voice/- 语音控制集成 - 智能家居 -
smarthome/- HomeKit / 米家 / 小度
5. 开发者工具
- CLI 工具 -
cli/- 命令行控制工具 - SDK -
sdk/- 各语言 SDK(Python、JavaScript、Go、Rust) - 插件开发工具 -
plugin-dev/- 插件开发和调试工具
扩展性说明:
- 客户端类型可以无限扩展
- 任何能发送 HTTP/WebSocket/BLE 请求的设备都可以作为客户端
- 支持第三方开发者贡献新的客户端类型
通信协议
所有客户端通过以下方式与 ShowenV2 设备通信:
HTTP API
- 地址:
http://<device-ip>:8080/api/ - 协议: RESTful API
- 格式: JSON
- 认证: Token / API Key
WebSocket
- 地址:
ws://<device-ip>:8080/ws - 用途: 实时状态推送
- 格式: JSON
BLE (蓝牙)
- 协议: GATT
- 用途: 近场控制、配网
- 服务: 自定义 GATT Service
核心功能
设备管理
- 设备发现和配对
- WiFi 配置
- 设备状态监控
播放控制
- 播放/暂停/停止
- 上一个/下一个
- 跳转到指定视频
- 音量控制
状态机控制
- 触发状态切换
- 场景切换
- 查看当前状态
配置管理
- 查看配置
- 修改配置
- 导入/导出配置
内容管理
- 浏览视频列表
- 上传新视频
- 删除视频
- 视频预览
开发计划
Phase 1(当前)
- Web App - 基础控制界面
- HTTP API 文档
Phase 2(3个月)
- Flutter App - 跨平台移动应用
- 微信小程序 - 快速访问
- WebSocket 实时推送
Phase 3(6个月)
- iOS 原生 App
- Android 原生 App
- 智能音箱集成
Phase 4(12个月)
- 智能手表应用
- 智能家居集成
- 桌面应用
技术栈
移动端
- iOS: Swift 5.9+, SwiftUI, Combine
- Android: Kotlin 1.9+, Jetpack Compose, Coroutines
- Flutter: Flutter 3.x, Dart 3.x
Web 端
- 前端: React 18+ / Vue 3+, TypeScript
- 状态管理: Redux / Pinia
- UI 框架: Ant Design / Element Plus
- 构建工具: Vite / Webpack
小程序
- 微信: 原生小程序框架 / uni-app
- 支付宝: 原生小程序框架
- 抖音: 原生小程序框架
桌面端
- Electron: Electron 28+, React/Vue
- Tauri: Tauri 1.x, Rust + Web
目录结构
clients/
├── README.md # 本文件
├── shared/ # 共享代码
│ ├── api/ # API 客户端库
│ ├── models/ # 数据模型
│ └── utils/ # 工具函数
├── web/ # Web 应用
│ ├── package.json
│ ├── src/
│ └── public/
├── flutter/ # Flutter 应用
│ ├── pubspec.yaml
│ ├── lib/
│ └── assets/
├── ios/ # iOS 应用
│ ├── ShowenV2.xcodeproj
│ └── ShowenV2/
├── android/ # Android 应用
│ ├── build.gradle
│ └── app/
├── wechat-miniapp/ # 微信小程序
│ ├── app.json
│ └── pages/
├── desktop/ # 桌面应用
│ ├── package.json
│ └── src/
└── docs/ # 客户端开发文档
├── API.md # API 文档
├── DESIGN.md # 设计规范
└── DEVELOPMENT.md # 开发指南
快速开始
Web App
cd clients/web
npm install
npm run dev
Flutter App
cd clients/flutter
flutter pub get
flutter run
微信小程序
cd clients/wechat-miniapp
# 使用微信开发者工具打开
API 文档
详见 docs/API.md
设计规范
详见 docs/DESIGN.md
贡献指南
欢迎贡献新的客户端实现!请参考 docs/DEVELOPMENT.md
文档版本: v1.0
最后更新: 2026-03-12
负责人: 赵雨薇 (前端 & 屏幕工程师)