Skip to content

Release: 기술 영상·프레임 필터 개선 및 Unity 광고 연동 (2.2) - #92

Merged
MoonGoon72 merged 15 commits into
mainfrom
develop
Oct 4, 2026
Merged

MoonGoon72 merged 15 commits into
mainfrom
develop

Conversation

@MoonGoon72

Copy link
Copy Markdown
Owner

📌 관련 이슈

✨ 세부 내용

  • 재생 아이콘이 있는 기술을 누르면 기술 정보·영상·설명을 담은 상세 화면을 엽니다. 무음 반복 재생, 전체 화면 재생, 가장자리 스와이프 복귀와 목록 스크롤 위치 유지를 지원합니다.
  • 발동·가드 프레임 필터에 숫자 직접 입력과 정확히·이상·이하·범위 조건을 추가하고, 섹션·속성 첫 선택 시 버튼 위치가 움직이지 않도록 수정합니다.
  • 첫 실행과 업데이트의 안내 내용을 구분하고 새 기술 영상·프레임 필터를 소개합니다. 기본 시트 UI를 적용하며 중복 등장 애니메이션을 제거하고 실제 종료 후 안내 확인 상태를 저장합니다.
  • Unity Ads 배너 미디에이션 어댑터와 별도 Debug 검증 scheme을 추가합니다. 기존 UMP 광고 요청 경계를 유지하고 실기기 테스트 기기 등록·광고 검사기 절차를 문서화합니다.
  • 메모 목록 진입 시 프레임 계산으로 발생하던 크래시를 수정합니다. 영상 metadata의 불량 행만 제외해 정상 연결을 유지하고, 중복 기술 ID의 영상 연결은 모두 제외합니다.
  • 앱 버전을 2.2로 변경하고 관련 현지화·회귀 테스트·아키텍처 및 광고 운영 문서를 갱신합니다. CodeRabbit 리뷰 요청 workflow의 PR 댓글 쓰기 권한을 수정합니다.

검증

  • 최종 개발 코드의 MoveVideoRepositoryTests 15건 및 TK8Tests 전체 156건 통과(실패 0, skip 0). Simulator 앱·테스트 호스트 빌드 및 git diff --check 통과.
  • develop 병합 커밋의 GitHub Actions build-and-test는 초안 작성 시점에 실행 중입니다: https://github.com/MoonGoon72/Tekken8-Frame-Data/actions/runs/37201127431
  • 개발 과정에서 필터 숫자 입력·조건 적용·첫 선택 위치 유지와 한국어 새 기능 안내·재실행 미표시를 Simulator에서 확인했습니다.
  • Unity 도입 시 Simulator의 어댑터 초기화·Unity 테스트 배너·단일 소스 Fill을 확인했고, 서명을 제외한 기기용 Debug/Release 빌드를 검증했습니다. 최종 실기기 Unity 단일 소스 Fill·노출, iOS 17 runtime 및 이번 main 병합 이후 Xcode Cloud Archive는 미검증입니다.
  • 가상 병합 검사에서 main과 develop의 충돌이 없음을 확인했습니다. app-ads.txt는 현재 두 브랜치 내용이 같습니다.

✍️ 고민한 내용

  • 영상 metadata·재생을 기존 프레임 데이터 캐시와 분리해 기술표와 사용자 메모의 저장 흐름을 유지합니다. 일부 영상 연결이 잘못돼도 다른 정상 연결은 사용할 수 있도록 하되, 중복 ID는 임의로 영상을 선택하지 않습니다.
  • UMP와 AdMob의 테스트 기기 해시는 각각 개인용 scheme에 등록하며 공유 scheme에는 식별자를 저장하지 않습니다. 운영 배너 미디에이션 그룹 활성화는 이번 PR에 포함하지 않습니다.
  • 새 기능 안내 revision은 앱 patch 버전과 별도로 관리하고 실제 안내 종료 이후에 확인 상태를 저장합니다.

⌛ 소요 시간

  • 미측정

컬렉션 뷰를 .zero로 생성해 Auto Layout 이전 스크롤 계산의 overflow를 방지한다. 빈 목록과 항목 있는 목록의 navigation 진입 회귀 테스트를 추가한다.
데이터 편집·업로드 도구를 비공개 Tekken8-Data-Ops 저장소의 책임으로 문서화하고 로컬 도구·운영 문서·Firebase 설정 파일의 제외 규칙을 보강한다.
공식 Unity 어댑터와 SKAdNetwork 목록을 연결하고 -ObjC로 어댑터 category를 포함한다. 기존 동의 경계를 유지하며 별도 Debug 광고 단위·UMP 테스트 설정·광고 검사기로 검증한다.
app-ads.txt에 Unity 판매자 목록을 병합하고 SDK 분석·광고 처리와 실제 게시한 개인정보처리방침을 기록한다.
Supabase 활성 영상 행을 move.id에 연결하고 공개 R2 URL 및 요청 시 서명 URL 조회를 분리한다. 영상 metadata는 기술 데이터 캐시와 독립적으로 관리하며 늦은 응답을 걸러낸다.
화면 범위 재생 세션이 URL 요청·무음 반복 재생·재시도·비활성화·종료를 관리한다. 늦은 응답과 실패, player 유지 동작을 회귀 테스트로 검증한다.
목록과 상세에서 기술명·커맨드·속성·프레임·설명 렌더링을 공유한다. 확대 상태의 Dynamic Type 대응과 영상 재생 표시·접근성 문구를 추가한다.
선택 셀에서 기술 정보·영상·설명을 담은 상세 카드로 확대하고 X 및 가장자리 스와이프로 복귀한다. 목록 위치와 전체 화면 재생 상태를 유지하고 상세 배너 생명주기를 연결한다.

최종 코드 검증: TK8Tests 138건, SupabaseAPITests 1건 통과. 기기용 arm64 Release build 성공(서명 제외).
- 정확히·이상·이하·범위 검색과 숫자 직접 입력, 가드 부호 변경 추가
- 빠른 선택과 조건 요약, 입력 검증, 한영 문구 및 접근성 레이아웃 적용
- 섹션·속성 지우기 영역을 유지해 첫 선택 시 버튼 위치 이동 방지
- 필터·레이아웃 테스트 18건, Simulator 빌드 및 실제 선택·입력·지우기 검증
- 기술 영상·프레임 필터 신기능을 안내하고 첫 실행과 업데이트 안내를 구분
- 기본 시트와 스크롤·고정 확인 버튼을 적용하고 중복 등장 애니메이션 제거
- 화면 연결 후 표시하고 실제 종료 뒤 안내 버전을 저장하며 종료·화면 기록 중복 방지
- TK8Tests 전체 152건 통과, Simulator 빌드·한국어 안내·재실행 미표시 확인
feat: 기술 영상 재생·프레임 필터 개선 및 Unity 광고 연동 (#89)
@coderabbitai

coderabbitai Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: Repository: MoonGoon72/Tekken8-Frame-Data/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 954ab0db-8287-4680-a1b7-12d95b462665
📥 Commits

Reviewing files that changed from the base of the PR and between 279a35c and b5a8370.

⛔ Files ignored due to path filters (1)
  • Tekken8 Frame Data/TK8.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved is excluded by !**/Package.resolved
📒 Files selected for processing (45)
  • .github/workflows/coderabbit-ready-for-review.yml
  • .gitignore
  • Tekken8 Frame Data/SupabaseAPITests/MockSupabaseManager.swift
  • Tekken8 Frame Data/TK8.xcodeproj/project.pbxproj
  • Tekken8 Frame Data/TK8.xcodeproj/xcshareddata/xcschemes/TK8 Unity Mediation Test.xcscheme
  • Tekken8 Frame Data/TK8.xcodeproj/xcuserdata/moongoon.xcuserdatad/xcschemes/xcschememanagement.plist
  • Tekken8 Frame Data/TK8/Character/Controller/CharacterListViewController.swift
  • Tekken8 Frame Data/TK8/Info.plist
  • Tekken8 Frame Data/TK8/Localizable.xcstrings
  • Tekken8 Frame Data/TK8/Memo/View/MemoListView.swift
  • Tekken8 Frame Data/TK8/Move/Controller/MoveListViewController.swift
  • Tekken8 Frame Data/TK8/Move/Controller/MoveVideoCardTransition.swift
  • Tekken8 Frame Data/TK8/Move/Controller/MoveVideoPlaybackSession.swift
  • Tekken8 Frame Data/TK8/Move/Controller/MoveVideoPlayerViewController.swift
  • Tekken8 Frame Data/TK8/Move/Filter/FilterView.swift
  • Tekken8 Frame Data/TK8/Move/Filter/FrameFilterEditor.swift
  • Tekken8 Frame Data/TK8/Move/Filter/FrameFilterInput.swift
  • Tekken8 Frame Data/TK8/Move/View/Cell/MoveCell.swift
  • Tekken8 Frame Data/TK8/Move/ViewModel/MoveListViewModel.swift
  • Tekken8 Frame Data/TK8/OnBoarding/OnBoardingManager.swift
  • Tekken8 Frame Data/TK8/OnBoarding/OnBoardingViewController.swift
  • Tekken8 Frame Data/TK8/Repository/Data/MoveVideoRepository.swift
  • Tekken8 Frame Data/TK8/Repository/Network/Supabase/SupabaseManageable.swift
  • Tekken8 Frame Data/TK8/Repository/Network/Supabase/SupabaseManager.swift
  • Tekken8 Frame Data/TK8/Settings/Controller/SettingViewController.swift
  • Tekken8 Frame Data/TK8/Utility/Ads/BannerAdHost.swift
  • Tekken8 Frame Data/TK8/Utility/Ads/BannerAdPolicy.swift
  • Tekken8 Frame Data/TK8/Utility/Ads/BannerAdService.swift
  • Tekken8 Frame Data/TK8/Utility/DIContainer.swift
  • Tekken8 Frame Data/TK8Tests/BannerAdTests.swift
  • Tekken8 Frame Data/TK8Tests/CharacterRepositoryTests.swift
  • Tekken8 Frame Data/TK8Tests/FrameFilterLayoutTests.swift
  • Tekken8 Frame Data/TK8Tests/MemoListLayoutTests.swift
  • Tekken8 Frame Data/TK8Tests/MoveListFilteringTests.swift
  • Tekken8 Frame Data/TK8Tests/MoveVideoDetailLayoutTests.swift
  • Tekken8 Frame Data/TK8Tests/MoveVideoPlaybackTests.swift
  • Tekken8 Frame Data/TK8Tests/MoveVideoRepositoryTests.swift
  • Tekken8 Frame Data/TK8Tests/OnboardingTests.swift
  • Tekken8 Frame Data/TK8Tests/VersionManagerTests.swift
  • app-ads.txt
  • docs/ads-mediation.md
  • docs/analytics-measurement.md
  • docs/architecture.md
  • docs/move-video-detail-goal.md
  • docs/privacy-policy-update-draft.md
 ___________________________________________
< Crossing the tensor streams to find bugs. >
 -------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@MoonGoon72
MoonGoon72 marked this pull request as ready for review October 4, 2026 12:17
@MoonGoon72
MoonGoon72 merged commit 808e575 into main Oct 4, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant