Files
phone_login/GEMINI.md
soragui 6307cb03dc docs: Update GEMINI.md for HomeScreen and AuthState modifications
Updates the GEMINI.md document to reflect the changes made during the implementation of dynamic HomeScreen views based on authentication status.
- Added details about the new `logout()` functionality and improved `toggleLogin()` in `AuthState`.
- Noted that `HomeScreen` now dynamically renders `_LoggedInView` or `_LoggedOutView` based on user authentication.
2026-01-19 15:49:36 +08:00

2.3 KiB

GEMINI.md

App: phone_login

This document describes the "phone_login" Flutter application, its purpose, implementation details, and file layout.

Purpose

The "phone_login" app is a simple Flutter application that demonstrates a phone number-based authentication flow. It includes screens for entering a phone number, verifying an SMS code, and displaying different content based on the user's authentication status. The app also features a basic home screen and a profile screen.

Implementation Details

The application is built using the Flutter framework and follows a layered architecture to separate concerns.

Key Components:

  • Authentication: The authentication flow is designed to be handled by Firebase Authentication, but it is currently mocked for demonstration purposes. The AuthState class manages the user's authentication state, now including logout() functionality and a more flexible toggleLogin() method.
  • Navigation: go_router is used for declarative routing and navigation. It includes a redirect mechanism to handle authentication-aware routes.
  • State Management: provider is used for state management, with ChangeNotifierProvider making the AuthState available throughout the app.
  • UI: The user interface is built with Flutter's Material Design widgets. The screens are designed to be simple and intuitive. The HomeScreen now dynamically renders a _LoggedInView or _LoggedOutView based on the user's authentication status.

File Layout:

lib/
├── main.dart              # App entry point
├── app.dart               # MaterialApp setup, theme, and routing
├── auth/                  # Authentication-related screens and logic
│   ├── auth_state.dart    # Manages authentication state
│   ├── phone_input_screen.dart
│   └── sms_verification_screen.dart
├── home/                  # Home screen
│   └── home_screen.dart
├── profile/               # User profile screen
│   └── profile_screen.dart
├── services/              # Backend services (e.g., Firebase)
├── shared/                # Common widgets, utilities, models
│   ├── models/
│   └── widgets/
└── theme/                 # Theming and styling