Skip to content

Latest commit

 

History

History
119 lines (84 loc) · 3.44 KB

File metadata and controls

119 lines (84 loc) · 3.44 KB

Developer Documentation

This documentation provides information for developers working on the MoveTopia project.

Project Structure

The MoveTopia project follows a Clean Architecture with clear layer separation:

lib/
├── core/                 # Core functionalities and base components  
├── data/                 # Data sources, repositories, and services
├── domain/               # Business logic, entities, and interfaces
├── presentation/         # UI components and ViewModels
│   ├── common/           # Common UI elements
│   ├── onboarding/       # Onboarding screens
│   ├── profile/          # Profile screens and settings
│   └── ...               # Additional feature-specific UI components
├── utils/                # Helper functions and utilities
├── l10n/                 # Localization files
├── generated/            # Generated files
├── main.dart             # Main entry point
└── version.dart          # Automatically generated version information

Development Workflow

Branch Strategy

  1. Feature development takes place on separate branches that are branched from development
  2. Naming convention: feature/name-of-feature or bugfix/name-of-bug
  3. After completion, a Pull Request to development is created
  4. After code review and successful CI check, it is merged into development
  5. Stable versions are merged from development to main

Local Development

  1. Clone repository:

    git clone https://github.com/username/movetopia.git
    cd movetopia
  2. Install dependencies:

    flutter pub get
  3. Build and run the app:

    flutter run

Build Process

For detailed information on the build process and CI/CD system, see CI/CD Documentation.

Code Guidelines

Style Rules

  • Follow the Dart Style Guidelines
  • Use camelCase for variables and functions
  • Use PascalCase for classes and types
  • Write code documentation in English
  • Use // for single-line comments and /// for documentation comments

Architecture Guidelines

  • Keep widgets as small and focused as possible
  • Separate business logic from UI code
  • Use Riverpod for state management
  • Implement Repository pattern for data access
  • Use Clean Architecture principles

Error Handling

  • Use try-catch blocks for error handling
  • Log errors with meaningful messages
  • Display user-friendly error messages

Testing

Unit Tests

Unit tests are located in the test/ directory. Run tests with the following command:

flutter test

Widget Tests

Widget tests test the user interface and interactions.

flutter test test/widget_tests/

Integration Tests

Integration tests are located in the integration_test/ directory.

flutter test integration_test/

Internationalization

MoveTopia supports multiple languages. The translations are located in the lib/l10n/ directory.

Add new strings to the lib/l10n/app_en.arb file and translations to the corresponding language files.

Resources