This documentation provides information for developers working on the MoveTopia project.
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
- Feature development takes place on separate branches that are branched from
development - Naming convention:
feature/name-of-featureorbugfix/name-of-bug - After completion, a Pull Request to
developmentis created - After code review and successful CI check, it is merged into
development - Stable versions are merged from
developmenttomain
-
Clone repository:
git clone https://github.com/username/movetopia.git cd movetopia -
Install dependencies:
flutter pub get
-
Build and run the app:
flutter run
For detailed information on the build process and CI/CD system, see CI/CD Documentation.
- 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
- 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
- Use try-catch blocks for error handling
- Log errors with meaningful messages
- Display user-friendly error messages
Unit tests are located in the test/ directory. Run tests with the following command:
flutter testWidget tests test the user interface and interactions.
flutter test test/widget_tests/Integration tests are located in the integration_test/ directory.
flutter test integration_test/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.