ファンアート機能の仕様を考える。

公開日:2016/07/22
更新日:2020/02/01

●外部仕様
キャラ詳細画面にファンアートボタンをつける。
ファンアートボタンを押すと、
ファンアートがある場合、一番ライク数の多いファンアートから順に表示される。
ファンアートとページには画像表示・ライクボタン(On/Off)・ライク数・次へ・前へ・戻るボタン・作者名、現在ページ/総ページ数が表示される。
ファンアートがない場合、
まだこのキャラのファンアートはありません。
ぜひファンアートを書いて、「#英語物語ファンアート」のタグとともに、ツイートしよう!
運営から連絡が来るはず!
みたいなポップアップを出す。
通信に失敗した場合、
通信失敗ポップアップを出す。
●データ仕様
FanArtModel ファンアートテーブル(CSV)
artId ファンアートを識別するための一意なId
author 作者名
imageUrl 画像のURL
cardIdArray 配列Json形式で対応するcardIdを記載する。(CSVのみ)
like ライク数(CSVにはない。)
FanTieModel 紐付けテーブル(ファンアートテーブルから動的に生成する。)
id 一意なid(artId_cardIdで生成される。)
artId
cardId
●インターフェース仕様
データ更新API CSVを解析し、ファンアートデーブルと紐付けテーブルを更新する。
-idがファンアートテーブルにない場合、Insertする。キャッシュをクリアする。
データ取得API CardIdを送信、List<FanArtModel> を返す。
-紐付けデータから、cardIdを指定して、List<int>を取得する。FanArtModelをGetして、List<FanArtModel>を生成する。返済するデータはキャッシュする。
Like追加API ArtIdを送信する。FanArtModelのlike数を1増やす。
●実装ポイント
特定のArtに対するLikeは一度Onにすると取り消す事はできない。(端末内にFanLikeTableを持ち、自分がLikeしたArtIdを保存する。)
画像のDLは初めてその画像を見ようとするときに、走る。DL中はローディング画面を表示する。

最終更新日:2020年2月1日