KotlinでRetrofitを使ったAPI通信の基本構成をマスターしよう!初心者向けにやさしく解説
生徒
「先生、KotlinでAPI通信をもっと簡単にする方法ってあるんですか?」
先生
「ありますよ。Retrofitという便利なライブラリを使うと、ネットワーク通信がぐっと簡単になります。」
生徒
「ライブラリってなんですか? そしてRetrofitってどう使うんですか?」
先生
「ライブラリというのは、よく使う機能をまとめた便利セットのことです。Retrofitを使えば、APIとのやり取りがとてもシンプルになるので、一緒に見ていきましょう!」
1. Retrofitってなに?
Retrofit(レトロフィット)は、KotlinやJavaでAPI通信を簡単にするための人気ライブラリです。普通のネットワーク通信は手順が多くて大変ですが、Retrofitを使うと数行のコードでAPIリクエストができます。
つまり、面倒な作業を代わりにやってくれる「便利屋さん」みたいな存在です。
2. ライブラリって何?どうやって使うの?
ライブラリとは、よく使う機能がまとめられた「道具箱」のようなものです。Kotlinのプロジェクトで使うには、Gradleというビルドツールに設定を追加します。
たとえば、Retrofitを使うには以下のような記述をbuild.gradle.ktsファイルに追加します。
dependencies {
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-gson:2.9.0")
}
3. Retrofitの基本構成を理解しよう
RetrofitでAPI通信を行うには、以下の3つのステップを踏みます。
- ① APIのルールを定義するインターフェースを作成
- ② 通信の設定をするRetrofitインスタンスを作成
- ③ 実際に通信を行う
それぞれをわかりやすく分解して説明していきます。
4. APIインターフェースを作成する
まず、通信のルールを定義するためにインターフェースというものを作成します。ここでは「https://jsonplaceholder.typicode.com/posts/1」というダミーのAPIを使って、記事データを取得してみます。
import retrofit2.Call
import retrofit2.http.GET
interface ApiService {
@GET("posts/1")
fun getPost(): Call<Post>
}
5. データクラスを作成しよう
APIから返ってくるデータを受け取るためには、Kotlinのdata classを使います。JSONという形式で届くデータに合わせて、クラスを用意しておきましょう。
data class Post(
val userId: Int,
val id: Int,
val title: String,
val body: String
)
6. Retrofitインスタンスを作成する
次に、実際に通信するためのRetrofit本体を作ります。ベースとなるURLや、データの形式(Gson)を指定します。
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
val retrofit = Retrofit.Builder()
.baseUrl("https://jsonplaceholder.typicode.com/")
.addConverterFactory(GsonConverterFactory.create())
.build()
val service = retrofit.create(ApiService::class.java)
7. 通信を実行して結果を取得する
最後に、通信を実行してAPIからデータを取得します。ここでは、シンプルに同期的な通信方法(enqueueを使わない)を紹介します。
val response = service.getPost().execute()
if (response.isSuccessful) {
val post = response.body()
println("タイトル: ${post?.title}")
println("内容: ${post?.body}")
} else {
println("エラーが発生しました。コード: ${response.code()}")
}
8. 実行結果のイメージ
このコードを実行すると、APIから取得した記事のタイトルと内容が表示されます。
タイトル: sunt aut facere repellat provident occaecati
内容: quia et suscipit...
9. Retrofitを使うメリット
Retrofitを使うことで、KotlinでのAPI通信が非常に簡単になります。通信のエラー処理や、データの変換も自動でやってくれるので、初心者にも優しい設計になっています。
特に、インターフェースに注釈(アノテーション)をつけるだけでHTTPの種類(GETやPOSTなど)を指定できる点が便利です。
10. 注意点:ネットワーク通信は時間がかかる
ネットワーク通信は、相手のサーバーからの応答を待つ必要があるため、時間がかかる場合があります。そのため、実際のアプリでは通信処理を別スレッドで行うのが基本です(この部分は今後の学習で扱います)。