mattermost-push-plugin/agent-ops/roadmap/phase/platform-expansion/milestones/apple-runtime-parity.md

79 lines
2.7 KiB
Markdown

# Milestone: Apple 런타임 parity 기준
## 위치
- Roadmap: `agent-ops/roadmap/ROADMAP.md`
- Phase: `agent-ops/roadmap/phase/platform-expansion/PHASE.md`
## 목표
Apple platform 구현을 시작하기로 결정된 경우 필요한 capability와 테스트 기준을 정의한다. Android와 동일해야 하는 계약과 Apple platform 특성 때문에 다르게 가야 하는 계약을 구분한다.
## 상태
[계획]
## 구현 잠금
- 상태: 잠금
- 결정 필요: 아래 체크리스트
- [ ] Apple 플랫폼 지원 결정 Milestone에서 limited 또는 parity 지원이 승인되어야 한다
- [ ] APNs 기반 push와 Mattermost payload 처리 범위를 결정해야 한다
## 범위
- iOS/macOS native runtime capability mapping
- Dart API platform behavior 기준
- APNs, notification tap, ACK, token registration 테스트 기준
- Apple platform에서 불가능하거나 다르게 처리해야 하는 기능 식별
## 필수 기능
### Epic: [capability] Capability Mapping
Android runtime 기능을 Apple platform 기준으로 재분류한다.
- [ ] [push] APNs 수신과 payload 처리 가능 범위를 정의한다
- [ ] [token] device token format과 registration 기준을 정의한다
- [ ] [notification] notification display와 tap handling 기준을 정의한다
- [ ] [ack] ACK delivery 가능 범위를 정의한다
- [ ] [reply] inline reply 가능 여부와 대체 정책을 정의한다
### Epic: [tests] 테스트 기준
Apple platform 구현을 검증할 방법을 정한다.
- [ ] [unit] Swift unit test 범위를 정한다
- [ ] [integration] Flutter integration test 범위를 정한다
- [ ] [manual] 실제 APNs가 필요한 manual smoke 범위를 정한다
## 완료 기준
- [ ] Apple platform 기능별 parity 여부가 표로 정리되어 있다
- [ ] Dart API가 platform별로 어떤 동작을 보장하는지 문서화되어 있다
- [ ] Apple runtime 구현 전 필요한 테스트 기준이 명확하다
- [ ] 지원하지 않을 기능은 unsupported behavior로 명확히 표현되어 있다
## 완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 없음
- 리뷰 필요:
- [ ] 사용자가 완료 결과를 확인했다
- [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음
## 범위 제외
- 실제 Apple runtime 구현
- APNs 인증 인프라 구축
- Android API breaking change
## 작업 컨텍스트
- 관련 경로: `ios/**`, `macos/**`, `lib/**`, `example/ios/**`, `example/macos/**`
- 표준선(선택): Android의 public Dart API contract를 기준으로 삼되 Apple platform 특성상 다른 동작은 명시적으로 문서화한다
- 선행 작업: Apple 플랫폼 지원 결정
- 후속 작업: 없음
- 확인 필요: Apple platform 지원 승인, APNs 처리 범위