webapp/gemini.md

2.1 KiB

Gemini Project: MyReactNativeApp

This is a React Native application built with TypeScript.

General Instructions

  • Always use Chinese to answer.
  • Check for potential errors in the user's prompt and try to fix them.
  • If the proposed changes are significant or alter the core logic, ask the user for confirmation before proceeding. Otherwise, you can make the changes directly.

AI-Assisted Development Guidelines

1. Code Style & Conventions

  • Adherence: Strictly follow the existing code style, formatting (Prettier), and linting rules (ESLint) of the project.
  • Consistency: When adding new features, first analyze the surrounding code to ensure new code matches the existing patterns in terms of naming, structure, and architecture.

2. Component-Based Architecture

  • Modularity: Prioritize creating modular, reusable, and single-purpose components. Place all reusable components in the src/components/ directory.
  • Props: Define explicit TypeScript interfaces for all component props in the src/types/ directory or co-located with the component file.

3. State Management

  • React Context: For global or shared state, utilize the existing React Context API structure located in src/context/.
  • Local State: For component-specific state that doesn't need to be shared, use the useState and useReducer hooks.

4. API & Data Fetching

  • Service Layer: All interactions with external APIs must be encapsulated within the service layer (src/services/). Do not make direct API calls (e.g., using fetch or axios) from within UI components.
  • Type Safety: Define clear TypeScript types for all API request payloads and responses in the src/types/ directory.

5. Navigation

  • Centralized Logic: All screen navigation logic should be managed within the src/navigation/ directory, using the established React Navigation setup.

6. Testing

  • Unit Tests: When creating new components or services, please also create corresponding unit tests in the __tests__ directory.
  • Existing Tests: When modifying existing code, ensure all related tests are updated and continue to pass.