In the SUSI.AI app, I found the extensive use of “Retrofit” to make API calls to the server. While working on a part of the app, I faced some difficulty regarding the implementation of “Retrofit”. Though I learned and overcame the problems, I realized that others would face a similar problem. So, today I am writing this blog explaining how to implement “Retrofit” using the help of “SUSI.AI” android client.
Working of API Calls:
Android networking or any networking works in the following way:
- Request— An HTTP request is made to a certain URL, with all the supplied parameters.
- Response — The request created returns a response, usually in the JSON format.
- Parse & Store —The JSON returned is parsed and is being used accordingly.
In Android, we use —
- Okhttp — For creating an HTTP request with all the proper headers
- Retrofit — For making the request
- Moshi / GSON — For parsing the JSON data
- Kotlin Coroutines — For making non-blocking (main thread) network requests.
- Picasso / Glide— For downloading an image from the internet and setting it into an ImageView.
Obviously, these are just some of the popular libraries but there are others too.
How to use Retrofit?
First of all we need to import certain libraries in the app level gradle file.
Don’t forget to add the following in the manifest file.
Now, create an interface. The API link mentioned in the interface would be used to fetch data from the server.
Now create a class to parse the JSON data. Here, we have used a Gson Converter and so the JSON response is automatically converted to the respective.
Here Session and Settings are also a data class. These data classes are framed according to the response that we receive.
Now, create a Retrofit Builder with Base URL and GsonConverterFactory. This builder will be useful to make the API calls.
Create a service for Retrofit with your service interface. Then, create a queue which will be used to de-serialize the JSON.
Resources:
Documentation: Retrofit
Blog: Retrofit
Tutorial: Retrofit Video Tutorial
SUSI.AI Android App: PlayStore GitHub
Tags:
SUSI.AI Android App, Kotlin, SUSI.AI, FOSSASIA, GSoC, Android, Retrofit, API calls