feat: Tuist 워크스페이스 전환 및 AtchaV2(메인 2.0) 모듈 기반 구축 - #338
Merged
Conversation
- Tuist 4.202 워크스페이스 도입: 레거시 앱을 단일 타겟(Projects/Legacy)으로 래핑, 기존 xcodeproj는 전환기 동안 유지 - AtchaV2 신규 앱 타겟: Swift 6 / iOS 26(AlarmKit 대비) / com.atcha.iOS.v2 / Debug·Stage·Release 3구성 - 마이크로피처(uFeatures) + 클린아키텍처 스켈레톤: - Domain(Entity·추상화 UseCase·Repository 인터페이스), AtchaData(DTO·RepositoryImpl) - HomeFeature(Interface/Sources/Tests/Example 4타겟, @mainactor ViewModel·ViewData) - CoreNetwork(Endpoint·NetworkClient), CoreCoordinator(finish delegate 포함), DesignSystem(토큰·DSButton) - 코드 기반 AppEnvironment(DEV/STAGE/LIVE 컴파일 플래그), Firebase는 plist 존재 가드 후 configure - Scripts/bootstrap.sh: gitignore된 xcconfig 스탠드인 생성 후 tuist install/generate - 검증: AtchaV2 Debug/Stage 시뮬 빌드, HomeFeature 테스트(Swift Testing), 레거시 디바이스 빌드 통과 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
개요
앗차 "메인 2.0"(AtchaV2)을 위한 Tuist 4 기반 모듈 구조를 구축합니다. 레거시 앱은 단일 Tuist 타겟으로 래핑해 같은 워크스페이스에 두고, 기존
Atcha-iOS.xcodeproj는 전환기 동안 그대로 유지합니다 (CI/fastlane 무영향 — 여전히 기존 xcodeproj로 빌드됨).주요 변경
워크스페이스 / 도구
mise.toml) —tuist generate로Atcha.xcworkspace생성 (생성물은 gitignore)Scripts/bootstrap.sh: gitignore된 xcconfig 4개의 빈 스탠드인 생성 →tuist install→tuist generate(xcconfig 부재 시 generate가 실패하므로 필수)Tuist/Package.swift로 통합,Package.resolved커밋 (Amplitude branch 리비전 고정)AtchaV2 (신규 메인 2.0 앱)
SWIFT_DEFAULT_ACTOR_ISOLATION=MainActor) / iOS 26.0 (AlarmKit 대비,NSAlarmKitUsageDescription포함) / 번들com.atcha.iOS.v2/ Debug·Stage·Release 3구성AppEnvironment(DEV/STAGE/LIVE 컴파일 플래그 — 런타임에 xcconfig 의존 없음)모듈 구조 (uFeatures + 클린아키텍처)
HomeSummary) · 추상화 UseCase(프로토콜+구현) · Repository 인터페이스toEntity()매핑) · RepositoryImpl@MainActorViewModel · ViewData · 피처 DIContainer(조립) · Coordinator(흐름)Atcha-Dev/Stage/Live) 보존. 기존 프로젝트가 컴파일하지 않던 죽은 파일(App/DIContainer/DIContainer.swift) 제외, 번들에 실수 복사되던 xcconfig(시크릿) 리소스 제외검증
tuist generate+ 의존 그래프 (Feature→AtchaData 엣지 없음)Atcha-Dev디바이스 빌드 (TMapSDK가 디바이스 전용이라 시뮬 빌드는 원래 불가)후속 작업 (범위 밖)
실제 API base URL 입력 / v2용 GoogleService-Info.plist·APNs·match / V2 앱 아이콘 / CI의 Tuist 전환(mise 스텝,
build_app(workspace:), agvtool 대체) / AlarmKit Live Activity 위젯 익스텐션🤖 Generated with Claude Code