Flutter使用protobuf
本篇记录下 Flutter 使用 protobuf
安装Protoc
这个不做赘述,直接搜索对应平台下载,配置环境变量
安装 protoc-gen-dart
这个是 Dart 的 Protocol Buffers
插件 , 直接全局安装
1 | dart pub global activate protoc_plugin |
然后查看实际路径
1 | dart pub global list |
将对应路径配置环境变量 , 然后查看得到结果
1 | Activated protoc_plugin 版本 at /Users/用户/.dart-sdks/bin |
验证是否可用
1 | protoc-gen-dart --version |
使用
比如这边我是将 proto 文件放在 package 中开发 , 目录如下
1 | package |
首先要添加依赖
1 | protobuf: ^3.1.0 |
然后将 proto 文件拷贝到 proto 目录下后 , 就可以使用命令生成 pb 文件了
1 | protoc -I=lib/proto --dart_out=grpc:lib/pb/ lib/proto/*ext.proto |
若使用到了 google/protobuf/empty.proto
则需要加上一段
1 | protoc -I=lib/proto --dart_out=grpc:lib/pb/ lib/proto/*ext.proto google/protobuf/empty.proto |
然后即可在 service 下新建自己的服务类,示例:
1 | class LogicService { |
也可以通过
build_runner
来生成 , 不过基本上协议确定后是很少改动的 , 而网络 http 请求这块通常我是用 Retrofit 也会涉及到使用build_runner
生成 , 为避免每次运行重新生成文件太多,则 Proto 这部分生成直接通过命令行来完成
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Halcyon Days!