- Initialize iOS project with 6-tab navigation structure - Configure custom Light/Dark themes and AppColors - Define SwiftData models for Tasks, Tags, Goals, and TrackingRecords - Setup relationships (Super/Sub tags) and cascade delete rules - Implement Observable TrackingEngine for real-time timer updates
64 lines
2.4 KiB
Markdown
64 lines
2.4 KiB
Markdown
# TallyFlow
|
|
|
|
## Product summary
|
|
TallyFlow is an iOS productivity tracker for measuring tasks by either time or count.
|
|
It supports hierarchical tags (super tag / sub tag), flexible goals, historical statistics, widgets, Live Activities, and a paired watchOS experience.
|
|
|
|
## Source root
|
|
- iOS source root folder: `IOS/`
|
|
- Do not assume the default inner app folder name is `TallyFlow`; use `IOS/` as the app source root.
|
|
|
|
## Non-negotiable constraints
|
|
- Use SwiftUI.
|
|
- Use SwiftData as the local persistence layer.
|
|
- Keep the project buildable after every milestone.
|
|
- Do not scan or refactor the entire project.
|
|
- Read only the files explicitly listed in each prompt.
|
|
- Edit only the files explicitly listed in each prompt.
|
|
- Do not mention competitor app names in code comments, docs, or commit messages.
|
|
- Korean is the default app language; English must be supported.
|
|
- Theme must support Light and Dark modes with custom green/yellow palettes, not generic system default vibes.
|
|
- All date aggregation must respect configurable week start day and configurable custom day start time.
|
|
- Time tracking must support multiple concurrent running timer tasks.
|
|
- A task can have multiple tags.
|
|
- Selecting a sub tag implies its parent super tag is also associated logically.
|
|
|
|
## Architecture rules
|
|
- Separate app shell, domain models, services, and feature views.
|
|
- Create a single source of truth for:
|
|
1. task definitions,
|
|
2. tag hierarchy,
|
|
3. goals,
|
|
4. tracking sessions / count logs,
|
|
5. calendar boundary calculations.
|
|
- Avoid business logic inside SwiftUI view bodies.
|
|
- Put theme colors/tokens in dedicated files.
|
|
- Keep milestone 1 free of widget/watch/live activity target work; only prepare the architecture so those can be added later.
|
|
|
|
## UX rules
|
|
- Tab order must be:
|
|
1. Main
|
|
2. Tasks
|
|
3. Tags
|
|
4. Goals
|
|
5. Stats
|
|
6. Settings
|
|
- Add a splash/loading screen that shows the app name.
|
|
- Main tab should be scaffolded for:
|
|
- today / week / month summary cards,
|
|
- task action buttons,
|
|
- future layout-edit mode.
|
|
- Settings must be scaffolded for:
|
|
- theme mode,
|
|
- language,
|
|
- week start day,
|
|
- custom day start time,
|
|
- premium section entry.
|
|
|
|
## Coding style
|
|
- Prefer small SwiftUI views.
|
|
- Prefer explicit model names over vague names.
|
|
- Add TODO markers only where the next milestone will extend logic.
|
|
- Do not add placeholder lorem ipsum text.
|
|
- Do not introduce third-party dependencies in milestone 1.
|