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.
/docs/screens/auth-light.png/docs/screens/auth-dark.pngfeature/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-authThat 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