MTGのカード検索アプリを作る with AAC


はじめに

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をフルに使ったものにしたい