Skip to content

Setting/#4 - DVDesign 모듈 폴더 구조 세팅 및 SampleApp 초기 화면 구현#5

Merged
doyeonk429 merged 2 commits into
developfrom
Setting/#4/DVDesign_Setting
May 7, 2026
Merged

Setting/#4 - DVDesign 모듈 폴더 구조 세팅 및 SampleApp 초기 화면 구현#5
doyeonk429 merged 2 commits into
developfrom
Setting/#4/DVDesign_Setting

Conversation

@doyeonk429
Copy link
Copy Markdown
Contributor

@doyeonk429 doyeonk429 commented May 7, 2026

✨ What’s this PR?

📌 관련 이슈 (Related Issue)


🧶 주요 변경 내용 (Summary)

  • DVDesign 모듈 하위 폴더 구조 세팅 (Foundations/, Components/, Extensions/)
  • Resources/Assets.xcassets 추가
  • 각 폴더 Xcode 트래킹을 위한 Placeholder.swift 추가
  • Components/Placeholder.swift에 구현 예정 컴포넌트 리스트업 (예성 / 도연 담당 분리)
  • DVDesignSampleApp 초기 화면 구현
    • NavigationSplitView 기반 컴포넌트 목록 리스트
    • 담당자별 섹션(예성 / 도연)으로 분리
    • 각 컴포넌트 선택 시 Placeholder 디테일 뷰 표시

📸 스크린샷 (Optional)

스크린샷 2026-05-07 오후 10 11 53

🧪 테스트 / 검증 내역

  • tuist generate 정상 동작 확인
  • DVDesignSampleApp 빌드 및 실행 확인
  • 컴포넌트 목록 NavigationLink 동작 확인

💬 기타 공유 사항

  • 현재 컴포넌트는 모두 Placeholder 상태이며, 각 담당자가 구현 후 ComponentPlaceholderView를 실제 컴포넌트로 교체하면 됩니다
  • Foundations/, Extensions/는 디자인 토큰 및 SwiftUI 확장 구현 시 채워질 예정입니다

🙇🏻‍♀️ 리뷰 가이드 (선택)

  • DVDesign/Sources/ 폴더 구조가 앞으로의 작업 기준이 되므로, 방향성 이상 없는지 확인 부탁드려요
  • SampleApp/Sources/ContentView.swift의 섹션/컴포넌트 데이터 구조 적절한지 봐주세요

Summary by CodeRabbit

  • New Features

    • Redesigned the sample app interface with a sidebar navigation system, allowing users to browse and select design components organized by category for easy preview.
  • Chores

    • Updated internal design system assets and project structure configurations.

@doyeonk429 doyeonk429 requested review from dlguszoo and yeseonglee May 7, 2026 13:16
@doyeonk429 doyeonk429 self-assigned this May 7, 2026
@doyeonk429 doyeonk429 added the ⚙ Setting 개발 환경 설정 label May 7, 2026
@doyeonk429 doyeonk429 linked an issue May 7, 2026 that may be closed by this pull request
2 tasks
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 7, 2026

Review Change Stack

Warning

.coderabbit.yaml has a parsing error

The CodeRabbit configuration file in this repository has a parsing error and default settings were used instead. Please fix the error(s) in the configuration file. You can initialize chat with CodeRabbit to get help with the configuration file.

💥 Parsing errors (1)
Validation error: String must contain at most 250 character(s) at "tone_instructions"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
📝 Walkthrough

Walkthrough

The PR establishes DVDesign project structure with Xcode asset catalog configuration, implements a NavigationSplitView-based component browser in SampleApp with sidebar navigation over ComponentSection enum, defines Component and ComponentSection data models, and adds directory structure tracking placeholders for Sources subdirectories.

Changes

DVDesign Setup and Sample App Navigation

Layer / File(s) Summary
Asset Catalog Configuration
Projects/DVDesign/Resources/Assets.xcassets/Contents.json, Projects/DVDesign/Resources/Assets.xcassets/Color.colorset/Contents.json
Asset catalog metadata (author: xcode, version: 1) and color asset definition (srgb, RGBA components: red=0xFE, green=0xFF, blue=0xFF, alpha=1.0) with dark-mode appearance variant.
Component Data Model
Projects/DVDesign/SampleApp/Sources/ContentView.swift
Enums Component (name, owner) and ComponentSection (yeseong, doyeon) with computed components property for sidebar list generation.
Sample App Navigation UI
Projects/DVDesign/SampleApp/Sources/ContentView.swift
ContentView replaces placeholder text with NavigationSplitView; sidebar renders List from ComponentSection.allCases with Sections mapping to component arrays; NavigationLink navigation to ComponentPlaceholderView detail; split view title "DVDesign", detail placeholder text "컴포넌트를 선택하세요", minimum frame enforced.
Directory Structure Placeholders
Projects/DVDesign/Sources/Components/PlaceholderA.swift, Projects/DVDesign/Sources/Extensions/PlaceholderB.swift, Projects/DVDesign/Sources/Foundations/PlaceholderC.swift
Comment-only placeholder files for Xcode directory tracking.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A rabbit hops through folders neat,
Assets configured, colors complete!
Navigation split, components align,
Placeholders guide the way so fine.
DVDesign blooms—the stage is set! 🌱

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main changes: DVDesign module folder structure setup and SampleApp initial screen implementation, which are the primary objectives of the PR.
Linked Issues check ✅ Passed The PR fulfills both coding requirements from issue #4: establishes DVDesign folder structure with Foundations/, Components/, Extensions/ subdirectories and Resources/Assets, and implements SampleApp initial screen with NavigationSplitView-based component navigation.
Out of Scope Changes check ✅ Passed All changes are within scope: placeholder files for folder tracking, color asset definitions, and the SampleApp initial screen implementation directly address the requirements of issue #4.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch Setting/#4/DVDesign_Setting

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
Projects/DVDesign/SampleApp/Sources/ContentView.swift (1)

54-84: ⚡ Quick win

Remove duplicated owner literals to avoid section/data drift.

owner is repeated for every Component, which makes future edits error-prone. Build components from names using section-level owner once.

♻️ Suggested refactor
 private enum ComponentSection: CaseIterable {
     case yeseong
     case doyeon

+    var owner: String {
+        switch self {
+        case .yeseong: return "예성"
+        case .doyeon:  return "도연"
+        }
+    }
+
     var title: String {
-        switch self {
-        case .yeseong: return "예성"
-        case .doyeon:  return "도연"
-        }
+        owner
     }

     var components: [Component] {
         switch self {
         case .yeseong:
-            return [
-                Component(name: "DVPageControl", owner: "예성"),
-                Component(name: "DVProjectContainer", owner: "예성"),
-                Component(name: "DVVaultContainer", owner: "예성"),
-                Component(name: "DVCategory", owner: "예성"),
-                Component(name: "DVButton", owner: "예성"),
-                Component(name: "DVCheckBox", owner: "예성"),
-            ]
+            return [
+                "DVPageControl",
+                "DVProjectContainer",
+                "DVVaultContainer",
+                "DVCategory",
+                "DVButton",
+                "DVCheckBox",
+            ].map { Component(name: $0, owner: owner) }
         case .doyeon:
-            return [
-                Component(name: "DVRadioButton", owner: "도연"),
-                Component(name: "DVRadioButtonGroup", owner: "도연"),
-                Component(name: "DVTextContainer", owner: "도연"),
-                Component(name: "DVTextField", owner: "도연"),
-                Component(name: "DVInputField", owner: "도연"),
-                Component(name: "DVDropDown", owner: "도연"),
-            ]
+            return [
+                "DVRadioButton",
+                "DVRadioButtonGroup",
+                "DVTextContainer",
+                "DVTextField",
+                "DVInputField",
+                "DVDropDown",
+            ].map { Component(name: $0, owner: owner) }
         }
     }
 }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Projects/DVDesign/SampleApp/Sources/ContentView.swift` around lines 54 - 84,
The components array repeats the owner literal for every Component causing
drift; add a section-level owner computed property on ComponentSection (e.g.,
var owner: String { switch self { case .yeseong: return "예성" ... } }) and then
build the components list from a names array using mapping (e.g., let names =
[...] then return names.map { Component(name: $0, owner: owner) }) inside the
existing var components to remove duplicated owner literals while keeping the
existing enum cases and Component initializer references.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@Projects/DVDesign/SampleApp/Sources/ContentView.swift`:
- Around line 54-84: The components array repeats the owner literal for every
Component causing drift; add a section-level owner computed property on
ComponentSection (e.g., var owner: String { switch self { case .yeseong: return
"예성" ... } }) and then build the components list from a names array using
mapping (e.g., let names = [...] then return names.map { Component(name: $0,
owner: owner) }) inside the existing var components to remove duplicated owner
literals while keeping the existing enum cases and Component initializer
references.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0f817a1c-d40c-4277-8c14-80a0e527ee55

📥 Commits

Reviewing files that changed from the base of the PR and between 613fadf and 3d3f52e.

📒 Files selected for processing (8)
  • Projects/DVDesign/Resources/.gitkeep
  • Projects/DVDesign/Resources/Assets.xcassets/Color.colorset/Contents.json
  • Projects/DVDesign/Resources/Assets.xcassets/Contents.json
  • Projects/DVDesign/SampleApp/Sources/ContentView.swift
  • Projects/DVDesign/Sources/.gitkeep
  • Projects/DVDesign/Sources/Components/PlaceholderA.swift
  • Projects/DVDesign/Sources/Extensions/PlaceholderB.swift
  • Projects/DVDesign/Sources/Foundations/PlaceholderC.swift

@doyeonk429 doyeonk429 merged commit d9d8484 into develop May 7, 2026
1 check passed
@doyeonk429 doyeonk429 deleted the Setting/#4/DVDesign_Setting branch May 7, 2026 13:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⚙ Setting 개발 환경 설정

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Setting: DVDesign 작업 전 세팅

2 participants