sample
repository
https://github.com/somen440/flutter-go-todo
.
├── client
│ ├── lib
│ │ ├── api
│ │ │ ├── grpc_client
│ │ │ │ └── todo_client
│ │ │ └── pb
│ │ │ └── todo
│ │ ├── config
│ │ ├── models
│ │ │ ├── controllers
│ │ │ │ └── todo_list_controller
│ │ │ ├── entities
│ │ │ │ └── todo
│ │ │ └── repositories
│ │ │ └── todo_repository
│ │ ├── pages
│ │ │ └── todo_list_page
│ │ │ └── todo_tile
│ │ ├── util
│ │ └── widget
│ │ └── error_popup
│ └── test
│ └── model
│ ├── controllers
│ │ └── todo
│ └── entities
│ └── todo
├── protos
│ └── todo
└── server
├── cmd
│ ├── app
│ └── batch-n
├── internal
│ ├── adapter
│ │ └── todo
│ ├── config
│ ├── di
│ ├── domain
│ │ ├── entity
│ │ │ └── todo
│ │ ├── repository
│ │ │ └── todo
│ │ └── service
│ │ └── todo
│ ├── infrastructure
│ │ ├── grpc
│ │ └── inmemory
│ │ └── todo
│ ├── pb
│ │ └── todo
│ ├── usecase
│ │ └── todo
│ └── util
└── test
└── e2e
└── util
timestamp
について, 厳密に ecosystem の流儀に乗っ取る場合, https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/timestamp.proto を使うのが正しそう。今回は省略して, RFC3339 形式の文字列を timestamp として扱ってる。
Makefile
などタスクランナーに自動生成ファイルスクリプトをおいて置くと便利。あとは protoc がバージョンによって挙動がかなり変わることがあるので, バージョンを明記しておくなりしておかないとすぐ壊れそう。