Development Standards

Best practices and coding standards

TypeScript Type Safety

Zero `any` Types Policy

NEVER use `any` type - Project enforces 100% type safety

BAD - Implicit any
function process(data) { }
GOOD - Proper typing
function process(data: Record<string, string | number>): Promise<void> { }

UI Design System

ALWAYS follow the design system documented in docs/ui-design-system.md

Colors: Use AppTheme constants (no hardcoded colors)

Primary: #00979D (teal)

Typography: RobotoMono font family

Borders: 2px borders for cards, inputs

Border Radius: 8-12px

Flutter Version Management

Use FVM (Flutter Version Manager) for all Flutter commands:

# All Flutter commands must use fvm prefix
fvm flutter run
fvm flutter build apk
fvm flutter pub get
fvm flutter test

Locked Version: Flutter 3.24.5 (Dart 3.5.4)

Git Practices

Commit Convention

feat: Add visual programming IDE
fix: Resolve BLE connection timeout
docs: Update protocol specifications
refactor: Simplify motor control logic
test: Add BLE integration tests
chore: Update dependencies

Common Commands

Development

npm run dev - Start Next.js

fvm flutter run - Run Flutter

idf.py monitor - Monitor ESP32

Building

npm run build - Build Next.js

fvm flutter build apk - Build APK

idf.py build - Build ESP32