Android

【Kotlin + Retrofit】API通信してみる

投稿日:

はじめに

こんにちは。miyagawaです。つい最近、ポケモン剣盾を衝動買いしてしました。BW2から全く買っていなかったので、3Dのマップはとても新鮮です。
今回はKotlin、Retrofitを使用してAPI通信の処理を実装したいと思います。
使用するAPIはpokeapiです。
ポケモンのいろいろなデータをまとめられているので、このデータを用いて図鑑番号検索アプリを作ってみたいと思います。

準備

新しくプロジェクトを作成し、build.gradle(app)に下記を追加します。
最新版の2.7.1(2020年1月時点)を導入します。

上記の追加が完了したら、syncを行います。

また、HTTP通信を許容するため、 AndroidManifest.xml に下記を追記します。

レイアウトファイルの作成

準備ができたら、次はレイアウトファイルの作成を行います。
activity_main.xml を下記のように設定します。

list_item_pokemon.xml を作成します。

APIを実装する

レイアウトファイルを整えた後、 PokemonInfo.kt というデータクラスファイルを作成します。

pokemonInfo メソッドを呼び出すことによって番号を検索するようにしています。
@GET はAPIGETを示しており、()内のものは後ほど登場するBaseURLの後に続くエンドポイントを記載します。
今回の場合はポケモンの図鑑番号を検索したいので、idを渡し、それをパラメーターに含めるようにしています。

PokemonListAdapter.kt ファイルを作成します。

RecyclerView、Glideの使い方に関しては別の記事にまとめているので、是非みてみてください。
【Kotlin】RecyclerViewAdapterを使ってリスト表示
【Kotlin】Glideで角丸の画像を作成する

MainActivity.kt ファイルを下記のように調整します。

上記のコードを実装すると、下の画像のようにポケモンを図鑑番号で検索することが可能になります。


かわいいですね!

さいごに

今回はRetrofitを使用してポケモンを検索するアプリを作ってみました。今後もRetrofitは使うと思うので、備忘録としてよかったのではないかなと思います。

おすすめ書籍

Kotlinイン・アクション Head Firstオブジェクト指向分析設計 ―頭とからだで覚えるオブジェクト指向の基本

blog-page_footer_336




blog-page_footer_336




-Android

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

【Kotlin】RoomでDB管理をする

1 はじめに2 Gradleを更新3 Data Classを作成する4 DAOファイルを作成する5 RoomDatabaseファイルを作成する6 DBを操作してみる7 さいごに8 参考9 おすすめ書籍 ...

Android 11でdeprecatedになったAsyncTask対応Kotlin編

1 はじめに2 基本的な対応2.1 対応後のサンプル3 Coroutinesで実装4 最後に5 おすすめ書籍 はじめに 以前の記事で、Android 11にてdeprecatedになったAsyncTa ...

Kotlinで初期化を遅延する

1 はじめに2 初期化の遅延とは3 by lazy4 lateinit5 Delegates.notNull6 さいごに7 おすすめ書籍 はじめに こんにちは、前回に引き続き、Kotlinの基本的な文 ...

Android 11でdeprecatedになったAsyncTask対応Java編

1 はじめに2 基本的な対応2.1 対応後のサンプル2.2 cancelとonCancelled3 execute().get()への対応4 最後に5 おすすめ書籍 はじめに タイトルの通りAndro ...

Kotlinのスコープ関数を調べて見た

1 はじめに2 スコープ関数とは3 スコープ関数の種類について4 with関数4.1 使い方4.1.1 withを使わない場合4.1.2 withを使う場合4.2 所感5 apply関数5.1 使い方 ...

フォロー

blog-page_side_responsive

2020年1月
 1234
567891011
12131415161718
19202122232425
262728293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。