テーマを変更中で、表示が崩れているところがあります…!

【bubble】3日でアプリ開発した話③プロフィールの登録

.bubble
.bubble

前回までで、ログイン関係について書きました。

今回はログインを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を使い、以下のようにしています。

  1. Repeating Groupを配置し、Data Sourceは対象のOption Sets全てにします。
  2. 各セルにチェックボックスを設置し、セルのOption SetsのDisplayをラベルにします。
  3. 自分自身のその項目に、セルの項目が含んでいる場合、チェックをオンにします。
複数登録項目の表示
チェックボックスのラベルと値の設定

上記のようにすると、例えば「得意ショット」に「サーブ」を登録していたとき、Repeating Groupで表示した項目のうち「サーブ」にチェックが入った状態で表示されます。

テーブルに複数項目を保存する

DBへ複数選択した項目を保存するには、このままでは登録できません。チェックを入れた項目を取得する必要があります。

こういうときはCustom Stateの出番!

全ての複数登録可能な項目のGroupにCustom Stateを設定しました。

選択項目を保存するCustom State

Custom StateのTypeは、それぞれのOption Setsのリストにします。

そして、チェックが入った時Custom Stateに保存、チェックが外れたときCustom Stateから削除という処理を全てに行います!!😂

チェックが入った時
Custom Stateに追加する
チェックが外れた時
Custom Stateから削除する

最後、実際にDBに保存するときは簡単です。

対象のカラムで、このCustom StateをSet listすれば良いです。

複数選択項目の保存

③おわりに

こうしてプロフィールの登録画面を作成しました。

このまま検索についても書きたいのですが、長くなるので次回に持ち越します!

果たして複数登録したものをどうやって検索するのか…?簡単にできるのか…?

Tennis Buddyアプリを作るにあたって、どうしたら良いのか一番考えた部分です。

おすすめサイト

今回参考にしたサイトはありませんが、チェックボックスの扱いについて、お知り合いのobatrip様が懇切丁寧に解説してくださっているので、是非是非こちらを見てみてください😆

(詳しい説明は他人に丸投げともいう)

タイトルとURLをコピーしました