---
id: protobuf-retrofit-plugin
title: Protobut + Retrofit Setup
sidebar_label: Protobut + Retrofit
---

## Gradle Dependencies

Ensure that you already have an explicit dependency in your application's
`build.gradle` including the plugin dependency, e.g.

```groovy
dependencies {
  implementation "com.squareup.retrofit2:retrofit:2.9.0"
  implementation "com.squareup.retrofit2:converter-protobuf:2.9.0"
  
  // update version below to match latest Flipper client app
  debugImplementation "com.facebook.flipper:flipper:0.84.0"
  debugImplementation "com.facebook.flipper:flipper-network-plugin:0.84.0"
  debugImplementation "com.facebook.flipper:flipper-retrofit2-protobuf-plugin:0.84.0"
}
```

## Network Plugin Requirement

Ensure that `NetworkFlipperPlugin` is added as shown in the [Network setup guide](https://fbflipper.com/docs/setup/network-plugin#android)

## Sending Retrofit Service

Suppose you have a Retrofit service interface `PersonService` which has Protobuf body or return types. At the time you create your implementation, call the plugin with your `baseUrl` and service class:

```
import com.facebook.flipper.plugins.retrofit2protobuf.SendProtobufToFlipperFromRetrofit
...
val personService = retrofit.create(PersonService::class.java)
SendProtobufToFlipperFromRetrofit(baseUrl, PersonService::class.java)
```