Sign In Screen

AuthScreen — the sign-in screen. Email + password and/or a native Google button, an "or" divider, and links to whatever flows you enable. Built on KitTextField, KitPasswordField, and KitButton.

📱Sign In screen — lightlight/docs/screens/auth-light.png
📱Sign In screen — darkdark/docs/screens/auth-dark.png

feature/auth/AuthScreen.kt

How it's wired

You don't instantiate this by hand — the kit's nav (KitNavHost) routes to it when auth is on and the user is signed out. You configure it with one command:

/kit-setup-auth

That command sets the relevant KitConfig switches and walks the provider setup:

// KitConfig.kt — set for you by /kit-setup-auth
const val AUTH_ENABLED = true
val AUTH_PROVIDER = AuthProvider.SUPABASE     // SUPABASE · FIREBASE · STUB
const val EMAIL_SIGN_IN_ENABLED = true
const val GOOGLE_SIGN_IN_ENABLED = true

The screen renders only the methods you turned on — email-only, Google-only, or both.

Features

  • Email + password with inline validation and error states
  • Native Google sign-in via Credential Manager, with an OAuth deep-link fallback
  • Per-method toggles — show the email form, the Google button, or both
  • Provider-agnostic — same screen for Supabase or Firebase
  • Session state drives navigation: sign-out from anywhere returns here

Notes

The screen talks to AuthRepository (see Backend → Auth), which has Supabase, Firebase, and Stub implementations chosen by AUTH_PROVIDER. Account + data deletion (Play-mandatory) is handled from Settings. Google sign-in needs two Google Cloud OAuth clients — the command walks both; release SHA-1 is registered later by /kit-publish-to-play.

Configure with /kit-setup-auth · deep dive: Features → Authentication