50 lines
1.8 KiB
Markdown
50 lines
1.8 KiB
Markdown
---
|
|
domain: client
|
|
last_rule_review_commit: no-commit-yet
|
|
last_rule_updated_at: 2026-05-24
|
|
---
|
|
|
|
# client
|
|
|
|
## 목적 / 책임
|
|
|
|
ALT의 Flutter client surface를 담당한다. web/mobile/desktop targets, application shell, routing, feature presentation, and client-side tests belong here.
|
|
|
|
## 포함 경로
|
|
|
|
- `apps/client/lib/main.dart` - Flutter app bootstrap
|
|
- `apps/client/lib/src/app/` - app shell, theme, router
|
|
- `apps/client/lib/src/features/` - feature presentation code
|
|
- `apps/client/test/` - Flutter widget/unit tests
|
|
- `apps/client/pubspec.yaml` - Flutter package dependencies
|
|
|
|
## 제외 경로
|
|
|
|
- `services/api/` - socket server runtime
|
|
- `packages/contracts/` - schema source for generated contracts
|
|
- `packages/domain/` - Go domain models
|
|
|
|
## 주요 구성 요소
|
|
|
|
- `AltClientApp` - Material app shell using Riverpod
|
|
- `appRouterProvider` - `go_router` configuration
|
|
- `DashboardScreen` - initial responsive dashboard surface
|
|
|
|
## 유지할 패턴
|
|
|
|
- Keep app-level shell and router under `lib/src/app`.
|
|
- Put user-facing screens under the `lib/src/features/feature-name/presentation` pattern.
|
|
- Use Material 3 components and responsive navigation patterns.
|
|
- Test user-visible app shell behavior through Flutter tests.
|
|
|
|
## 다른 도메인과의 경계
|
|
|
|
- **api**: client connects to API; server lifecycle and socket parsing stay in `services/api`.
|
|
- **contracts**: client consumes generated/mapped contracts; protobuf source stays in `packages/contracts`.
|
|
- **operations**: `bin/test`, `bin/lint`, and `bin/build` run client checks from the workspace root.
|
|
|
|
## 금지 사항
|
|
|
|
- Do not place backend service code or Go module files under `apps/client`.
|
|
- Do not hand-edit platform generated files unless the Flutter platform integration explicitly requires it.
|
|
- Do not hard-code production endpoint assumptions in presentation widgets.
|