| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
개발 기록과 Todo를 한 곳에서 관리하는 SwiftUI 기반 앱
저장한 링크, 작업 메모, 마감 일정, 개인 활동 흐름을 하나의 앱 안에서 정리하는 구조
|
|
|
|
|
| 홈 | 마크다운 작성 | 오늘 기준 Todo 확인 | 푸시 알림 | 히트맵 |
|
|
| 로그인 | 홈 |
개발 과정에서 해야 할 일, 참고 링크, 진행 기록이 여러 곳에 흩어지기 쉬운 문제 해결 목적
Todo, 저장 링크, 오늘 할 일, 받은 알림, 누적 활동을 하나의 화면 흐름 안에서 함께 관리할 수 있도록 구성한 앱
|
| Tuist 모듈 의존성 그래프 |
| 구분 | 스택 |
|---|---|
| Deployment Target | iOS / iPadOS 17.0+ |
| Platform Support | iPhone, iPad, Apple Silicon Mac (App Store, Designed for iPad) |
| Architecture | Tuist Modular based Clean Architecture |
| UI | SwiftUI, WidgetKit, AppIntents |
| State & Async | Observable, Combine, async/await, The Composable Architecture |
| Backend | Firebase Authentication, Firestore, Cloud Functions, Cloud Messaging |
| Monitoring | Firebase Analytics, Crashlytics |
| Apple Frameworks | AuthenticationServices, UserNotifications, LinkPresentation, Network, CryptoKit, os.log |
| External Packages | ComposableArchitecture, OrderedCollections, GoogleSignIn, Nexa |
| Testing | swift-testing, TCA TestStore |
| Tooling | Xcode, Tuist, mise, Swift Package Manager, SwiftLint, Fastlane |
| 항목 | 버전 |
|---|---|
| Xcode | 26.5 |
| iOS Deployment Target | 17.0 |
| Swift | 5.0 |
| Tuist | 4.194.4 |
| SwiftLint | 0.63.3 |
| Ruby | 3.4.7 |
| Bundler | 2.7.2 |
| Fastlane | 2.232.2 |
brew install mise
brew install swiftlint
mise install앱 실행에 필요한 비공개 설정 파일은 리포지토리에 포함되지 않음
Application/App/Sources/Resource/
├── Config.xcconfig
└── GoogleService-Info.plist
Firebase 프로젝트와 Firestore database는 build configuration 기준으로 분리함
Debug, Staging -> staging Firebase project / Firestore (default)
Release -> prod Firebase project / Firestore (default)
TestFlight archive는 Staging, App Store 실제 서비스 archive는 Release configuration을 사용함
GitHub Actions 배포 workflow는 PR label 기반 자동 실행 없이 수동 실행함
TestFlight build는 App Store 심사 제출 대상으로 승격하지 않고, 실제 배포는 같은 MARKETING_VERSION의 별도 Release configuration build로 생성함
build number는 TestFlight와 App Store upload가 공유하는 App Store Connect build number 공간에서 자동 증가함
TestFlight build: bundle exec fastlane testflight_build_only
TestFlight upload: bundle exec fastlane deploy_testflight
App Store build: bundle exec fastlane appstore_build_only
App Store upload: bundle exec fastlane deploy_appstore
mise exec -- tuist generate --no-openProject.swift, Workspace.swift, Tuist/ProjectDescriptionHelpers를 수정한 경우 다시 워크스페이스 생성 명령 실행.
DevLog_iOS/
├── Tuist.swift
├── Workspace.swift
├── .mise.toml
├── Tuist/
│ └── ProjectDescriptionHelpers/ # Tuist 공통 패키지, 설정, 타깃 템플릿
├── Application/
│ ├── App/ # 앱 진입점, 앱 생명주기, 라우팅, Assembler 구성
│ ├── Core/ # DI, Logger, Query, 공통 값 타입
│ ├── Domain/ # Entity, Repository Protocol, UseCase
│ ├── Data/ # Repository 구현, DTO, Mapper, Data 계층 Protocol
│ ├── Infra/ # Firebase, 소셜 로그인, 네트워크, 메타데이터 서비스 구현
│ ├── Persistence/ # UserDefaults, 이미지 저장소, 앱 로컬 영속성 처리
│ ├── Presentation/ # Presentation project, re-export/shared/entry/tab target 구성
│ │ ├── Sources/ # Presentation target re-export source
│ │ ├── Entry/ # root/auth/tab shell/window target
│ │ ├── PresentationShared/ # 공통 Todo/Search/Loading UI, 공통 presentation structure
│ │ ├── HomeTab/ # Home 탭 화면, feature, coordinator, 테스트
│ │ ├── TodayTab/ # Today 탭 화면, feature, coordinator, 테스트
│ │ ├── NotificationTab/ # Notification 탭 화면, feature, coordinator, 테스트
│ │ └── ProfileTab/ # Profile/Settings 탭 화면, feature, coordinator, 테스트
│ └── Widget/ # 앱-위젯 브릿지, 위젯 동기화 이벤트, 스냅샷 갱신
├── Libraries/
│ ├── MarkdownRenderer/ # 독립 Markdown 렌더링 화면, WebKit 연결, 자원, 테스트, Tooling
│ └── ThirdParty/ # 외부 Swift Package 선언과 product 링크
├── Widget/
│ ├── WidgetCore/ # 위젯 스냅샷 모델, Factory, App Group 상수
│ └── WidgetExtension/ # WidgetKit UI, Provider, Timeline
├── docs/ # README 이미지와 draw.io 원본
└── README.md
flowchart LR
subgraph Primary["Primary"]
Planner["Planner"]
Implementer["Implementer"]
Integrator["Final Integration"]
end
subgraph ConnectedSideTasks["현재 task 연결형 사이드 작업<br/>사이드바: Option-Command-S<br/>도구: spawn_agent"]
Designer["Designer<br/>designer<br/>gpt-5.6-sol · xhigh"]
ArchitectureWatcher["Architecture Watcher<br/>architecture_watcher"]
CodeReviewer["Code Reviewer<br/>code_reviewer<br/>gpt-5.6-sol · xhigh"]
VerificationRunner["Verification Runner<br/>verification_runner"]
GitHubCIAnalyst["GitHub/CI Analyst<br/>github_ci_analyst"]
DocumentationWriter["Documentation Writer<br/>documentation_writer"]
end
subgraph Gate["Gate"]
DesignBrief["Design Brief"]
UserApproval["사용자 승인"]
Spec["Approved Spec"]
TaskPacket["Task Packet"]
ReviewGate["Review Gate"]
VerificationGate["Build-only Verification"]
end
Planner -->|"비단순 작업"| DesignBrief
DesignBrief --> Designer
Designer --> UserApproval
UserApproval --> Spec
Spec --> Planner
Planner -->|"Approved Spec"| TaskPacket
Planner -->|"단순 작업"| TaskPacket
TaskPacket -->|"Architecture risk<br/>task_name 선택"| ArchitectureWatcher
TaskPacket -->|"No architecture risk"| Implementer
ArchitectureWatcher -->|Pass| Implementer
ArchitectureWatcher -->|Block / Decision| Integrator
Implementer --> CodeReviewer
CodeReviewer --> ReviewGate
ReviewGate --> VerificationRunner
VerificationRunner --> VerificationGate
GitHubCIAnalyst -->|"현재 task로 결과 반환"| Planner
DocumentationWriter -->|"현재 task로 결과 반환"| Integrator
VerificationGate --> Integrator
| 역할 | 정확한 task_name / Custom Agent | 모델 | 담당 | 다음 흐름 |
|---|---|---|---|---|
| Planner | active main agent | Primary | 이슈, 요청, 변경 범위, Design Brief, 승인된 Spec 기반 Task Packet 정리 | Designer / Implementer / Architecture Watcher |
| Designer | designer | gpt-5.6-sol (SDD Gate, xhigh), 대체 없음 | Design Brief의 제약, 대안, 변경 경계, 수용 기준, 검증, 최소 커밋 단위 분석 | 사용자 승인 / Spec |
| Implementer | active main agent | Primary | task packet 기준 코드 또는 문서 수정 | Code Reviewer |
| Architecture Watcher | architecture_watcher | gpt-5.3-codex-spark (Lightweight), 불가 시 gpt-5.6-luna (high) -> Primary | layer, target, dependency, SDK placement, Widget/StorePattern 경계 감시 | Implementer / Final Integration |
| Code Reviewer | code_reviewer | gpt-5.6-sol (SDD Gate, xhigh), 대체 없음 | 승인된 Spec과 최종 diff의 수용 기준, 버그, 회귀, scope drift 검토 | Verification Runner |
| Verification Runner | verification_runner | gpt-5.3-codex-spark (Lightweight), 불가 시 gpt-5.6-luna (high) | SwiftLint, test, build-only, docs check 결과 기록 | Final Integration |
| GitHub/CI Analyst | github_ci_analyst | gpt-5.3-codex-spark (Lightweight), 불가 시 gpt-5.6-luna (high) | issue, PR thread, review comment, workflow run, CI log 분석 | Planner |
| Documentation Writer | documentation_writer | gpt-5.3-codex-spark (Lightweight), 불가 시 gpt-5.6-luna (high) | PR 본문, release note, README, issue/comment 문안 작성 | Final Integration |
| Back | FazBrowse Home | New Git URL |