Files
phone_login/GEMINI.md
2026-01-19 14:58:17 +08:00

42 lines
2.1 KiB
Markdown

# 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.
* **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.
### 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
```