Unit Dependencies: Shoe Choo
Dependency Matrix
| Unit | Depends On | Can Parallel With |
|---|---|---|
| Unit 1: Core Editor Engine | — (no dependencies) | — |
| Unit 2: Document Management | Unit 1 | — |
| Unit 3: Focus & Immersion | Unit 1 | Unit 2, Unit 4, Unit 5 |
| Unit 4: Image & Media | Unit 1, Unit 2 | Unit 3, Unit 5 |
| Unit 5: Export & Polish | Unit 1, Unit 2 | Unit 3, Unit 4 |
Dependency Graph
Unit 1: Core Editor Engine
|
+---> Unit 2: Document Management
| |
| +---> Unit 4: Image & Media
| |
| +---> Unit 5: Export & Polish
|
+---> Unit 3: Focus & Immersion
Critical Path
Unit 1 --> Unit 2 --> Unit 5 --> Integration
Unit 1 (Core Editor Engine) is the sole blocker. Once Unit 1 is complete, Units 2-5 can be developed with moderate parallelism (Unit 3 needs only Unit 1; Units 4 and 5 need both Unit 1 and Unit 2).
Integration Points
| From | To | Integration Type |
|---|---|---|
| Unit 1 → Unit 2 | EditorViewModel uses MarkdownParser, EditorNodeModel, MarkdownRenderer | Direct code dependency |
| Unit 1 → Unit 3 | WYSIWYGTextView exposes focus/typewriter methods | Same class extension |
| Unit 2 → Unit 4 | MarkdownDocument provides assets directory; EditorViewModel inserts image references | Method calls via ViewModel |
| Unit 2 → Unit 5 | EditorViewModel triggers export; SidebarView reads NSDocumentController | Method calls + framework API |
| Unit 1 → Unit 5 | ExportService reuses MarkdownParser for HTML generation | Service reuse |
Shared Components
| Component | Used By Units | Ownership |
|---|---|---|
| C-03 EditorViewModel | 1, 2, 3, 4 | Unit 2 (created), extended by others |
| C-04 EditorSettings | 2, 3, 5 | Unit 2 (created), read by others |
| C-08 WYSIWYGTextView | 1, 3, 4 | Unit 1 (created), extended by Unit 3, 4 |
| C-13 FileService | 2, 4 | Unit 2 (created), used by Unit 4 |