Unfortunately, gRPC doesn't currently work in the browser and won't be a native option before WHATWG Streams are finalized and implemented in all browsers and the relevant client side libraries are written.
Until, then we have a protocol that is extremely similar called gRPC-web which DOES work in browsers. However, our server doesn't know how to speak gRPC-web and as such we need something to help us translate between the two protocols.
In the long term as we get ready to move this project into a production environment we are going to be using a popular proxy that sits in front of our server called Envoy which is capable of doing just that and much more.
However, since we are building a Flutter web app in this project that means we will also need to run that same proxy in our development environment whenever our Flutter app wants to communicate with our server.
This task is to ensure that Envoy is automatically installed in our development environment and that it is configured to work with our application without any manual work on the developers behalf.
Unfortunately, gRPC doesn't currently work in the browser and won't be a native option before WHATWG Streams are finalized and implemented in all browsers and the relevant client side libraries are written.
Until, then we have a protocol that is extremely similar called gRPC-web which DOES work in browsers. However, our server doesn't know how to speak gRPC-web and as such we need something to help us translate between the two protocols.
In the long term as we get ready to move this project into a production environment we are going to be using a popular proxy that sits in front of our server called Envoy which is capable of doing just that and much more.
However, since we are building a Flutter web app in this project that means we will also need to run that same proxy in our development environment whenever our Flutter app wants to communicate with our server.
This task is to ensure that Envoy is automatically installed in our development environment and that it is configured to work with our application without any manual work on the developers behalf.