# flutter_pluggable **Repository Path**: zhenqi-a/flutter_pluggable ## Basic Information - **Project Name**: flutter_pluggable - **Description**: 以「依赖倒置 + 接口标准化」为核心,用「适配器模式」统一三方 SDK,再通过「Mixin 组合插拔」注入页面,实现完全解耦、高复用、可任意替换底层的企业级组件化架构。 模块化插拔架构、面向接口组件化、能力注入式架构 - **Primary Language**: Dart - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-03 - **Last Updated**: 2026-04-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Flutter Pluggable 企业级 Flutter 可插拔应用框架 ## 项目概述 这是一个企业级 Flutter 可插拔应用框架,提供了一套完整的硬件和软件能力抽象层。通过接口抽象与实现分离的设计,实现了高度的可复用性和可替换性,支持多种硬件 SDK 的灵活切换,真正做到即插即用。 ## 核心特性 - **可插拔架构**:模块化设计,各功能模块独立,可按需引入 - **高复用**:统一抽象接口层,一次编写,多端复用 - **无耦合**:接口与实现完全分离,业务逻辑不依赖具体 SDK - **可替换 SDK**:不修改业务代码即可切换底层实现 - **多端支持**:支持 Android、Windows、Linux 等多平台 - **即插即用**:Mixin 方式直接注入页面,快速集成 ## 项目结构 ``` lib/ ├── pluggable/ # 核心可插拔模块 │ ├── base/ # 抽象接口层(统一标准) │ │ ├── i_http.dart # 网络请求抽象 │ │ ├── i_scan.dart # 扫码抽象(横屏/声音/闪光灯) │ │ ├── i_serial.dart # 串口抽象(多平台支持) │ │ ├── i_ble.dart # 蓝牙BLE抽象 │ │ ├── i_print.dart # 打印机抽象 │ │ ├── i_nfc.dart # NFC读卡抽象 │ │ ├── i_storage.dart # 本地缓存抽象 │ │ ├── i_location.dart # 定位抽象 │ │ └── i_pay.dart # 支付抽象(微信/支付宝) │ ├── impl/ # 具体实现层(可替换SDK) │ │ ├── http_impl.dart │ │ ├── scan_impl.dart │ │ ├── serial_impl.dart │ │ ├── ble_impl.dart │ │ ├── print_impl.dart │ │ ├── nfc_impl.dart │ │ ├── storage_impl.dart │ │ ├── location_impl.dart │ │ └── pay_impl.dart │ └── mixin/ # 页面注入Mixin │ ├── http_mixin.dart │ ├── scan_mixin.dart │ ├── serial_mixin.dart │ ├── ble_mixin.dart │ ├── print_mixin.dart │ ├── nfc_mixin.dart │ ├── storage_mixin.dart │ ├── location_mixin.dart │ ├── pay_mixin.dart │ └── app_state_mixin.dart # 全局状态管理 ├── pages/ │ └── super_all_page.dart # 使用界面 ├── utils/ # 全局工具 │ ├── toast_util.dart │ └── loading_util.dart └── main.dart # 全局初始化入口 ``` ## 功能模块 ### 网络模块 (HTTP) 抽象网络请求接口,支持自定义实现,满足不同业务场景的请求需求。 ### 扫码模块 (Scan) 支持横屏模式、声音提示、闪光灯控制等多种扫码交互方式。 ### 串口模块 (Serial) 跨平台串口通信,支持 Android、Windows、Linux 等多系统。 ### 蓝牙模块 (BLE) 蓝牙 BLE 低功耗通信接口,适用于物联网设备连接。 ### 打印模块 (Print) 通用打印机接口,支持多种打印机 SDK 的无缝切换。 ### NFC 模块 (NFC) NFC 读卡功能抽象,支持卡片读写操作。 ### 存储模块 (Storage) 本地数据缓存抽象,提供高效的数据持久化能力。 ### 定位模块 (Location) 地理位置服务接口,支持多种定位 SDK 的替换。 ### 支付模块 (Pay) 集成微信支付和支付宝支付,统一支付接口。 ## 快速开始 ### 添加依赖 在 `pubspec.yaml` 中添加依赖: ```yaml dependencies: flutter_pluggable: path: ../flutter_pluggable ``` ### 初始化 在应用入口进行全局初始化: ```dart import 'package:flutter_pluggable/main.dart'; void main() { runApp(MyApp()); Pluggable.init(); } ``` ### 使用 Mixin 在页面中使用相应的 Mixin: ```dart import 'package:flutter_pluggable/pluggable/mixin/http_mixin.dart'; import 'package:flutter_pluggable/pluggable/mixin/app_state_mixin.dart'; class MyPage extends StatefulWidget { @override _MyPageState createState() => _MyPageState; } class _MyPageState extends State