-
Notifications
You must be signed in to change notification settings - Fork 9
products
Productは完成作品を管理するアプリケーションである。
Projectとは基本的に独立しているが、Projectと紐付けることも可能である。
このアプリは、Kawaz2ndにおいても企画段階は存在したが「もう面倒だから良いじゃん」みたいな誤った判断によりエターナったアプリである。
今思えば、外部にKawaz作品を知らしめるために非常に重要なアプリケーションだったと言っても過言ではない。
- 初めて来た人がまずどこにゲームがあるかわからない
- 完成済みのプロジェクトと、未完成のプロジェクトが混在していてわかりにくい
- プロジェクトページのデザインがごちゃごちゃしている
- プラットフォーム別の絞り込みがしにくい
などの問題点が多い。そのため、Kawaz3rdではトップページに大きくProductを表示し、来訪者に見せられるようにしたい。
逆に言えば、Product以外のコンテンツは目立たなくても良い。(ブログ、イベント、プロジェクト)
型はDjangoのFieldモデルに対応。備考がない場合は必須
プロダクトモデルである。
フィールド名 | 型 | 概要 | 備考 |
---|---|---|---|
title | Char | 作品タイトル | |
slug | Slug | 作品ID | |
thumbnail | Thumbnail | サムネイル | 設定必須。16:9。タイル上に配置される |
advertisement_image | ImageField | Kawazポータルトップに来るイメージ画像。スクリーンショットとは別(後述) | 未設定可能 |
trailer | URL | トレーラー用URL。YouTubeのURLを入力しておくとトレーラーが埋め込まれる。Google Playなどに近い | 未指定可能 |
description | Markup | 概要。作品紹介 | |
platforms | ManyToMany(Platform) | 対象プラットフォーム | 事前にNervが用意した物から複数選択可能 |
categories | ManyToMany(Category) | ゲームのカテゴリ | 事前にNervが用意した物から複数選択可能 |
project | ForeignKey | 元のプロジェクト | 未指定可能 |
display_mode | CharField | 表示レベル featured/tiled/normalの3種 | 後述 |
publish_at | date | 公開日 | 過去に公開された物も遡って公開日を設定可能なため、登録者が自分で設定する |
created_at | datetime | 作成日 | 自動指定 |
update_at | datetime | 更新日 | 自動指定 |
administrators | ManyToMany(Persona) | 管理者 | 基本的にお客さんからは誰が作ったかはどうでもいい情報なので、内部メンバーにしか見えない |
前回までは表示順が完全にランダムで、来訪者にとって探しづらいシステムだった。
かといって、配布形態が異なるため、単純にダウンロード数や人気順を比較できない。
そのため、display_modeという概念を導入し、表示順をNervユーザーが弄れるようにした。
|display_mode | 概要 | | Featured | トップのカルーセルにadvertisement_imageが+タイルの上位にthumbnailが表示。 advertisement_imageの設定が必須 | | Tiled | トップにthumbnailがタイル表示 | | Normal | See Moreに表示 |
@shinka-cb と @giginetが策定
トップページには、その他に、Recentlyとして、公開日が新しい、かつdisplay_modeがNormalのもの3つがRecentlyとして並ぶ。
その他のNormalはトップページには置かれずにSee More内に並ぶ。
See More(ListView)内は、display_modeによらず、公開日が新しい順に全てが表示される。
ゲームのバイナリを格納するモデルである。
フィールド名 | 型 | 概要 | 備考 |
---|---|---|---|
label | Char | パッケージ名 | |
platform | ForeignKey | 対象プラットフォーム | |
version | Char | バージョン名 | 空白文字可能 |
product | ForeignKey(Product) | プロダクト | |
content_file | FileField | ファイル | URLが指定されていれば未指定可能 |
downloads | PositiveInteger | ダウンロード数 |
GithubのReleaseのイメージに近いかも
Productに複数のパッケージが紐付くイメージ。
例えば、Windows版、Mac版などはfileとしてアップロードする
URLを保持し、外部サイトにホスティングするRelease形態
フィールド名 | 型 | 概要 | 備考 |
---|---|---|---|
label | Char | パッケージ名 | |
platform | ForeignKey | 対象プラットフォーム | |
version | Char | バージョン名 | 空白文字可能 |
product | ForeignKey(Product) | プロダクト | |
url | URL | URL | |
pageviews | PositiveInteger | ページビュー |
iPhoneやAndroidはStoreへのリンクを貼ると言ったことが可能。 複数バージョンの配布も可能。
フィールド名 | 型 | 概要 | 備考 |
---|---|---|---|
label | Char | プラットフォーム名 | |
icon | ImageField | Platformのfavicon |
Nervが追加可能。例えば「Mac」、「Windows」、「iPad」などと大まかな分類。これにより、ユーザーが絞り込み可能。さらに細かい動作環境については、プロダクトのdescriptionでまかなって貰う。
フィールド名 | 型 | 概要 | 備考 |
---|---|---|---|
image | ImageField | スクリーンショット | |
product | ForeignKey(Product) | Product |
ゲームのスクリーンショット。各プロダクトに複数枚登録可能にして、カルーセルなどでまとめて閲覧できるようにする。App Storeの下の方のイメージに近い
ジャンルを管理するモデル
フィールド名 | 型 | 概要 | 備考 |
---|---|---|---|
label | Char | ジャンル名 | |
description | CharField | ジャンルの説明 |
基本的にProjectのカテゴリと同様。というか、これを作らずにProjectのカテゴリと共用してしまってもいい感じがする。
あくまでアイディア。たぶん乗らないのが多い
解決済み。display_mode参照
- Pressなどの掲載情報を扱えるようにしたい?
or
- Descriptionに勝手に書いて貰うようにする
前者のメリットとしては「掲載ページまとめ」ページを作るのが非常に楽になる。例えばURLを入力すると勝手にタイトル取ってきてリンク貼るとか・・・・・・。
解決済み。別のカテゴリを設置した。
解決済み。URLRelease
に判定メソッドを設置。embed可能
例えば『Wave Weaver』などは、日本語英語両対応してリリースしているので、productだけでもその辺のローカライズ機構があると嬉しい感じある。(あとでよい)