Open1

002. Swift 登録画面いろいろ(FirebaseAuthでメールアドレスで登録する場合)

phihashphihash

必要なUI

  1. メールアドレス
  2. パスワード欄
  3. パスワード確認欄
  4. 利用機能チェック
  5. 登録ボタン

考慮

1. 入力バリデーション

  • 各入力欄が空でないことを確認する
  • メールアドレスの形式が正しいか確認する(例: @含むかなど)
  • パスワードが一定の条件(長さ、特定の文字を使っているか)を満たしている(Firebaseでは最低6文字)
  • パスワードと確認パスワードが一致している
  • 利用規約に同意したか確認し、同意がないと送信ボタンが押せない(Toggle など)

2. パスワード入力UI

  • SecureField / TextField の切り替え(プレーン/シークレット)
  • 表示切替ボタン(eyeアイコン)をつける
  • 見た目がわかりやすいようにスタイリングする

3. ボタンの制御

  • バリデーションが通っていないときは「送信」ボタンを無効にする(.disabled())
  • 押下中はボタンを無効にし、色やラベルを「送信中…」にする
  • ローディングインジケーター(ProgressView)の導入も検討

4. エラーメッセージの表示

  • バリデーションエラーを明確に表示する(例:赤字テキスト)
  • Firebaseエラーをユーザー向けの日本語に変換して表示する
  • その際にFirebaseの英語メッセージも一緒に表示する(開発・問い合わせ用)

5. 成功時の挙動

  • 登録完了後の画面遷移(Home画面など)
  • トーストやモーダルで「登録完了しました」などの通知

6. その他のUI/UX要素

  • TextFieldのキーボード設定(.emailAddress など)
  • プレースホルダ(また、何文字以上などあれば親切)
  • オートキャピタライズ無効、予測変換オフ
  • ボタンの配置・文字サイズ・タップしやすさ
  • 利用規約の詳細へのリンク(別画面やURLなど)
  • 自動大文字化・予測変換オフなどの細かい配慮(.textInputAutocapitalization(.never).autocorrectionDisabled(true))

7. セキュリティ・設計面

  • 入力情報を画面外に保持しない(@State の扱い)
  • ログイン状態やAuth情報をViewModelやStoreで管理する準備
  • メール確認フローをどうするか(Email Verification)

🔸2. 利用規約チェックボックス
Toggle("利用規約に同意する", isOn: $agreedToTerms) などで追加
🔸3. 送信ボタンの制御
無効状態にする条件の設定(例:disabled())
押したらローディング状態に変わるようにしたい
Button 押下後の処理(Firebase Auth登録)まだ未実装
🔸4. エラーメッセージ表示UI
入力が不正なときや、Firebaseからのエラー表示
表示位置や色(例:赤字でフォームの下)
🔸6. UI面での調整
SecureField と TextField の条件分岐が逆(eyeマークと動作が逆になってるっぽい)→ 明日検討でもOK
ラベル名の調整(例:「パスワード」じゃなくて「パスワード(6文字以上)」など)
ダークモード対応の見た目確認
iPadでも見やすいかチェック
アクセシビリティ対応(VoiceOverでの読み上げ)