Conversation
…c' into codex/ios-ui-quality-figma-parity
…figma-parity-continue
jjoonleo
changed the base branch from
feature/figma-offline-screen-sync
to
main
September 24, 2026 03:25
Contributor
Author
|
Superseded by #632, which merged the compatible Figma/UI work into the current audited restore, recurrence, scheduling, and notification architecture. The older backup picker and outdated test paths in this PR were intentionally excluded because they conflict with the verified native stream-port implementation now on |
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.
문제와 결과
최신
main의 화면 변경을 반영하고, 정본 OnTime Design System의 앱 대응 화면·상태를 다시 비교했습니다. Home/Calendar, 온보딩, 일정 생성·반복 설정, 준비 실행, 내 데이터·복구 화면의 배치와 에셋을 정리하고 실제 사용자 동작을 회귀 테스트로 검증합니다. iOS 기기 파일 선택기로 백업을 저장할 수 없던 문제도 수정하여 시뮬레이터에서 저장→변경→복원→초기화→재실행까지 확인했습니다.화면과 제품 동작
iOS 백업 수정과 실행 증거
기존
file_selector_ios에는 save-location 구현이 없어 iOS export가 실패했습니다.BackupFilePicker가 iOS의 암호화된 바이트만on_time_front/backup_files채널로 보내고, Swift가 임시 파일과 시스템 Files export picker를 관리합니다. 사용자 저장 완료 뒤에만 백업 최신 상태를 기록하며 취소·오류에는 기록하지 않습니다. 동시 export를 거부하고 임시 파일을 정리합니다. 비밀번호는 네이티브에 전달하지 않으며 비 iOS 저장 방식은 유지합니다. import에는 iOS UTI를 지정하고 인증된 컨테이너 검증을 적용합니다.독립 iPhone 17 / iOS 26.5 시뮬레이터에서 신규 설정과 알림·AlarmKit 실제 권한 거절/나중에 경로를 확인했습니다. 백업 811바이트를 Files에 저장하고 여유 시간을 30→35분으로 바꾼 뒤 같은 파일을 선택해 미리보기·복원을 거쳐 30분으로 돌아온 영속 값을 확인했습니다. 초기화 후 프로세스를 완전히 다시 실행하면 Welcome으로 진입하며 외부 백업 파일은 같은 SHA-256으로 남아 있습니다. 네이티브 증거와 화면에 재현 과정과 한계를 기록했습니다.
검증
dart run build_runner build --delete-conflicting-outputs: 통과flutter analyze --no-pub: 오류 없음flutter test --no-pub --coverage --concurrency=1 --reporter expanded: 693개 통과, 실패·건너뜀 0개 (골든 갱신 없이 비교 실행)dart run tool/check_coverage.dart --min=80: 앱 코드 87.45% (11,969/13,686줄), 80% 기준 통과--strict,git diff --check: 통과flutter build ios --simulator --debug --no-pub: 성공; 설치·실행 후 Welcome/Start 접근성 상태 확인origin/main재조회: 미반영 커밋 0개e6414752의 Flutter CI #657: 693개 통과, 앱 코드 87.44% (11,967/13,686줄). 생성기·정적 분석·Figma 엄격 검사·전체 테스트·커버리지 게이트 모두 성공했습니다.생성기 출력은 무시되는 로컬 산출물로 유지하며, 추적 중인 ARB/localization 소스 변경만 포함합니다. CI에 Figma 매핑
--strict검사를 적용했습니다. 검토한 골든을 생성한 macOS와 Linux 사이의 픽셀 비교 실패 61건을 확인해 전체 CI를macos-26/Flutter 3.44.4로 고정했습니다. 테스트 제외·허용 오차 증가·CI 골든 자동 갱신은 없으며, 실패 PNG를 아티팩트로 남깁니다. Android internal/closed 배포도 같은 macOS 전체 검증의 성공을needs로 요구하도록 연결했습니다. 기존 Ubuntu 빌드·서명·업로드는 유지하며, 배포 워크플로를 실행하지 않았습니다. UI 검증은 저장된 Flutter 이미지의 회귀 검사, Figma 원본 수동 대조, 동작·DB 테스트, 실제 네이티브 조작을 각각 구분합니다.검토 범위와 남은 기기 승인
매핑의 경로 21개 중 16개, 상태 변형 58개 중 57개, 총 73개 앱 매핑 항목을 검토했습니다. 진행 중·미검토 매핑은 0개이며 앱 전용 경로 5개와 OS 권한창 1개는 이유를 기록해 제외했습니다. Figma에만 존재하고 앱 경로가 없는 상세 디자인 11개는 별도
unmapped목록이며 구현 완료에 포함하지 않습니다.원본의 잘못된 날짜 격자·고정 합계·데이터와 실제 앱 계산, 시스템 picker/권한 UI, 폰트 렌더링 차이는 문서에 명시한 예외입니다. 픽셀 완전 일치나 Figma 파일의 모든 디자인 구현 완료를 의미하지 않습니다. 실제 iPhone은 연결 불가 상태여서 백그라운드·잠금·종료 상태 알림 전달, VoiceOver 직접 조작, 실기기 렌더링·성능은 기기 승인 항목으로 남아 있습니다. 이에 따라 PR은 Draft로 유지합니다.
최종 검토 보고서에서 영역별 원본·골든·예외 보고서와 후속 기기 확인을 볼 수 있습니다.