前回までで、ログイン関係について書きました。
今回はログインをSNSに寄せているため、パスワードリセットが不要です。そういう意味でもSNSログインは便利ですね〜。
さて、今回からはプロフィール登録をして検索をしていく内容になります。
プロフィールの登録
プロフィールページの項目を精査
今回は「テニスのプレースタイル、年齢、地域、試合へのモチベーションなどを選択し、検索」するアプリなのでどんな項目を入力してもらうか考えました。
最低限、「名前」「画像(任意)」「性別」「休日(テニスができる日)」「地域(参加できる地域)」はまず必要です。これが合わないとどんなに魅力的なプレーヤーがいても会えないですよね。「性別」は試合に出る場合「男子ダブルス」「女子ダブルス」「混合(ミックス)ダブルス」のカテゴリーがあるので必要です。
なお、小話ですが、10年くらい前にappleにアプリ申請したことがありますが、性別が「男女」だけではリジェクトをくらいました。今はわからないのですが…。でもこう言ったカテゴリが必要な場合、どうなるんでしょうね?
その他、年齢別の試合が存在します。また、どんなプレーをするのか、ダブルスの場合右・左どちらのサイドが得意なのか、と言ったことも気になります。
そんな感じで、登録する項目は以下のように設定しました。
なお、使用する英語名が間違っているところのツッコミは勘弁してください。他に思いつかなかったので。
カラム | 内容 | Type |
---|---|---|
Name | ユーザー名 SNSの登録名を自動登録するが、変更可 | text |
image | ユーザー画像 SNSの登録画像を自動登録するが、変更可 | file |
Sex | 性別 | Option Sets(男性/女性) |
Address | 居住地 | Option Sets(47都道府県) |
Hand | 利き手 両手と片手の場合があるので、利き手×両手/片手の組み合わせ | Option Sets(右利き/左利き) |
Racket | 使用ラケット(ほぼアンケート) | text |
FavoriteShot | 得意ショット | Option Sets(ショット名) |
Appeal | アピール情報、戦歴など | text |
Other | その他自己紹介(自由欄) | text |
Weekday | 休日(参戦可能な日) | Option Sets(日〜土/祝) |
Area | 参戦可能な地域 | Option Sets(47都道府県) |
MatchType | 試合カテゴリー | Option Sets(男D/女D/Mix) |
Age | 参加する試合の年代 | Option Sets(制限なし・35〜70歳) |
Level | 参加する試合のレベル | Option Sets(レベル) |
Motivation | 試合へのモチベーション | Option Sets(エンジョイ/勝ちたい、等) |
PlayStyle | プレースタイル | Option Sets(プレースタイル) |
Side | ダブルスの得意サイド | Option Sets(DU/AD) |
Recruiting | 募集状況 | yes/no |
今後項目の変更がしやすいように Option Sets にしています。また、複数登録が可能になっていますので、カラムのタイプは List of Option Setsです。
画面を作る
さて、たくさんあって大変でしたが、画面に要素を配置しました。
複数項目を登録可能な項目は、Repeating Groupを使い、以下のようにしています。
- Repeating Groupを配置し、Data Sourceは対象のOption Sets全てにします。
- 各セルにチェックボックスを設置し、セルのOption SetsのDisplayをラベルにします。
- 自分自身のその項目に、セルの項目が含んでいる場合、チェックをオンにします。
上記のようにすると、例えば「得意ショット」に「サーブ」を登録していたとき、Repeating Groupで表示した項目のうち「サーブ」にチェックが入った状態で表示されます。
テーブルに複数項目を保存する
DBへ複数選択した項目を保存するには、このままでは登録できません。チェックを入れた項目を取得する必要があります。
こういうときはCustom Stateの出番!
全ての複数登録可能な項目のGroupにCustom Stateを設定しました。
Custom StateのTypeは、それぞれのOption Setsのリストにします。
そして、チェックが入った時Custom Stateに保存、チェックが外れたときCustom Stateから削除という処理を全てに行います!!😂
最後、実際にDBに保存するときは簡単です。
対象のカラムで、このCustom StateをSet listすれば良いです。
③おわりに
こうしてプロフィールの登録画面を作成しました。
このまま検索についても書きたいのですが、長くなるので次回に持ち越します!
果たして複数登録したものをどうやって検索するのか…?簡単にできるのか…?
Tennis Buddyアプリを作るにあたって、どうしたら良いのか一番考えた部分です。
おすすめサイト
今回参考にしたサイトはありませんが、チェックボックスの扱いについて、お知り合いのobatrip様が懇切丁寧に解説してくださっているので、是非是非こちらを見てみてください😆
(詳しい説明は他人に丸投げともいう)