はじめに
MTG(Magic: The Gathering)のAPIを使うことで、カードデータを取得することができます。
今回はそのAPIを使ってカード検索をするAndroidアプリを作りました。
ついでに一からアプリを作るということで、Android Architecture Components(AAC)での設計、実装をしました。
使ったAPI
Magic: The Gathering API
MTGのカードやフォーマット等の情報を取得することが出来るAPI。
取得できる情報量が多い + 多言語のカードも取得できるAPIになっています。
このAPIはhttps://api.magicthegathering.io/<version>/<resource>
の形式でのREST APIを提供しているので、今回はこちらを使って以下のリクエストでカード検索を行いました。
https://api.magicthegathering.io/v1/cards?language=japanese&name=$カード名
設計
全体の設計は以下のような形になっています。AACを意識してみました。
できたもの
学べたこと
- REST APIの結果をGsonを用いてパースする際のモデルを一から作成できた
- Android Architecture Componentsでの設計
今後の拡張予定
-
AWS Lambda, Firebaseとの組み合わせ
実はAWS Lambdaとの組み合わせは途中まで作っていたのですが、実際の作成物に組み込むまで進めることができず...
これは完成まで持っていきたい -
検索方法の自由度アップ
今回はREST APIをAndroidから呼び出し -> 結果をパースして表示をメインにしていたのでカード名のみでの検索になりましたが、他の条件(マナコスト、色との組み合わせで検索とか)でも自由に検索できるようにしたい -
多言語設定
日本語に特化したものを作ってしまったので、クライアント側から言語切り替えしたりできたら楽しそう... -
デザイン
後回しにしすぎてほぼデフォルト状態。せっかくなので新しいMaterial Designであるandroidx.componse.material3
をフルに使ったものにしたい