Repository navigation
Conversation
- destinationView 내부 임시 View 생성 코드 추가
- 프로젝트 경로 수정 - 시뮬레이터 수정 - 누락 기호 추가 ( ' \. ')
- any Route -> Destination 수정으로 인해 함수 동작 오류 방지
- 해당값이 없어도 enum은 Hashable 채택 가능 - Router에서의 associatedType을 제한하기 위해 Route 프로토콜은 삭제하지 않음
[FEAT] 메인 TabView 및 탭별 NavigationStack 연결
Reviewer's Guide이 PR은 SwiftUI 기반 탭 내비게이션 아키텍처(홈, 리포트, 설정을 위한 라우터와 라우트 포함)를 도입하고, 앱 엔트리 포인트를 새로운 메인 뷰에 연결하며, CI에서 올바른 프로젝트 경로와 코드 서명 없이 시뮬레이터 빌드를 수행하도록 Xcode 빌드 설정을 조정하고, README를 프로젝트 설명과 기술 스택으로 확장합니다. File-Level Changes
Assessment against linked issues
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your Experience대시보드에 접속하여:
Getting HelpOriginal review guide in EnglishReviewer's GuideThis PR introduces a SwiftUI-based tabbed navigation architecture (with routers and routes for Home, Report, and Settings), wires the app entry point to the new main view, adjusts the CI Xcode build configuration for the correct project path and non-code-signing simulator builds, and expands the README with project description and tech stack. File-Level Changes
Assessment against linked issues
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey - I've found 1 issue, and left some high level feedback:
- MainRouter가 @observable과 ObservableObject로 모두 선언되어 있습니다. 하나의 관찰 메커니즘만 사용하고, 그 선택에 맞게 환경 주입 방식(예: environment vs environmentObject)을 정렬하는 것을 고려해 주세요.
- TabView의 selection 바인딩은 Hashable 타입을 기대합니다. 암시적인 합성에 의존하기보다는 TabItem이 Hashable을 준수하도록 명시적으로 선언하는 것이 더 명확하고 안전합니다.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- MainRouter가 @Observable과 ObservableObject로 모두 선언되어 있습니다. 하나의 관찰 메커니즘만 사용하고, 그 선택에 맞게 환경 주입 방식(예: environment vs environmentObject)을 정렬하는 것을 고려해 주세요.
- TabView의 selection 바인딩은 Hashable 타입을 기대합니다. 암시적인 합성에 의존하기보다는 TabItem이 Hashable을 준수하도록 명시적으로 선언하는 것이 더 명확하고 안전합니다.
## Individual Comments
### Comment 1
<location path=".github/workflows/ci.yml" line_range="18-25" />
<code_context>
uses: actions/checkout@v4
- - name: Build & Test
+ - name: Build
run: |
xcodebuild \
- -project Moha.xcodeproj \
+ -project Moha/Moha.xcodeproj \
-scheme Moha \
-sdk iphonesimulator \
- -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.5'
- clean test
\ No newline at end of file
+ -destination 'generic/platform=iOS Simulator' \
+ CODE_SIGNING_ALLOWED=NO \
+ clean build
</code_context>
<issue_to_address>
**issue (testing):** CI no longer runs tests; only a build is performed now
업데이트된 워크플로가 이제 `clean test` 대신 `clean build`를 실행하고 있어서, 단위 테스트가 CI에서 더 이상 수행되지 않습니다. 이것이 의도된 변경이 아니라면, 테스트가 아무런 알림 없이 중단되게 됩니다. 빌드와 테스트를 분리하려는 의도였다면, CI 테스트 커버리지를 유지할 수 있도록 별도의 테스트 잡/단계를 추가해 주세요.
</issue_to_address>Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Original comment in English
Hey - I've found 1 issue, and left some high level feedback:
- MainRouter is declared as both @observable and ObservableObject; consider using a single observation mechanism and aligning the environment injection (e.g., environment vs environmentObject) with that choice.
- TabView’s selection binding expects a Hashable type; it would be clearer and safer to explicitly declare TabItem as conforming to Hashable rather than relying on implicit synthesis.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- MainRouter is declared as both @Observable and ObservableObject; consider using a single observation mechanism and aligning the environment injection (e.g., environment vs environmentObject) with that choice.
- TabView’s selection binding expects a Hashable type; it would be clearer and safer to explicitly declare TabItem as conforming to Hashable rather than relying on implicit synthesis.
## Individual Comments
### Comment 1
<location path=".github/workflows/ci.yml" line_range="18-25" />
<code_context>
uses: actions/checkout@v4
- - name: Build & Test
+ - name: Build
run: |
xcodebuild \
- -project Moha.xcodeproj \
+ -project Moha/Moha.xcodeproj \
-scheme Moha \
-sdk iphonesimulator \
- -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.5'
- clean test
\ No newline at end of file
+ -destination 'generic/platform=iOS Simulator' \
+ CODE_SIGNING_ALLOWED=NO \
+ clean build
</code_context>
<issue_to_address>
**issue (testing):** CI no longer runs tests; only a build is performed now
The updated workflow now runs `clean build` instead of `clean test`, so unit tests are no longer executed in CI. If this wasn’t intentional, tests will silently stop running. If you meant to separate build and test, please add a dedicated test job/step to keep CI test coverage.
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
| - name: Build | ||
| run: | | ||
| xcodebuild \ | ||
| -project Moha.xcodeproj \ | ||
| -project Moha/Moha.xcodeproj \ | ||
| -scheme Moha \ | ||
| -sdk iphonesimulator \ | ||
| -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.5' | ||
| clean test No newline at end of file | ||
| -destination 'generic/platform=iOS Simulator' \ | ||
| CODE_SIGNING_ALLOWED=NO \ |
There was a problem hiding this comment.
issue (testing): CI no longer runs tests; only a build is performed now
업데이트된 워크플로가 이제 clean test 대신 clean build를 실행하고 있어서, 단위 테스트가 CI에서 더 이상 수행되지 않습니다. 이것이 의도된 변경이 아니라면, 테스트가 아무런 알림 없이 중단되게 됩니다. 빌드와 테스트를 분리하려는 의도였다면, CI 테스트 커버리지를 유지할 수 있도록 별도의 테스트 잡/단계를 추가해 주세요.
Original comment in English
issue (testing): CI no longer runs tests; only a build is performed now
The updated workflow now runs clean build instead of clean test, so unit tests are no longer executed in CI. If this wasn’t intentional, tests will silently stop running. If you meant to separate build and test, please add a dedicated test job/step to keep CI test coverage.
🎫 관련 이슈 (Linked Issues)
Closes #37
🛠 작업 내용 (What I did)
💻 구현 상세 (Implementation Details)