# 15. Android Client And Parallel Release Strategy ## 문서 목적 이 문서는 Android 채널을 왜, 어떤 순서로, 어떤 톤으로 도입하는지 정리한다. 목표는 단순히 APK 하나를 더 만드는 것이 아니라, 같은 제품이 Windows와 Android에서 같은 버전 기준으로 배포되고 설명되도록 만드는 것이다. ## 왜 Android를 병렬 채널로 두는가 이 프로젝트의 중심은 여전히 `한국어 Windows 메신저 경험`이다. 다만 실제 커뮤니케이션 제품은 사용자가 책상 앞과 이동 중을 오갈 때 끊기지 않아야 한다. Android 채널은 이 연속성을 위해 필요하다. 이때 중요한 것은 `새 모바일 제품을 별도로 만든다`가 아니라, `같은 버전과 같은 서버 계약을 공유하는 두 번째 클라이언트 채널을 연다`는 관점이다. 즉: - Windows는 깊이 있는 데스크톱 생산성 채널 - Android는 빠른 확인과 즉답을 위한 병렬 채널 - 두 채널은 같은 계정, 같은 대화, 같은 릴리즈 노트를 공유 ## 도입 원칙 - Android는 Windows를 대체하는 채널이 아니다. - 같은 버전 번호 아래에 함께 게시한다. - 같은 `REST + WebSocket` 계약을 공유한다. - 모바일 전용 과장 기능보다 `로그인`, `대화 확인`, `즉답`의 기본 루프를 먼저 만든다. - 원격 저장소와 다운로드 호스트 모두에서 같은 버전 자산을 찾을 수 있어야 한다. ## 기술 전략 초기 단계에서는 `새 네이티브 스택을 완전히 벌리기보다`, `Avalonia + net8.0-android` 기반 병렬 채널을 여는 쪽이 현실적이다. 이유: - 현재 저장소의 계약/세션/API 흐름을 재사용하기 쉽다. - 릴리즈 버전과 문서, QA 기준을 한 묶음으로 유지하기 쉽다. - Kotlin/Compose를 즉시 도입하면 제품보다 파이프라인 분리가 먼저 커진다. 장기적으로 Android 사용량과 요구가 커지면, 그때 별도 네이티브 투자 여부를 다시 판단한다. ## 초기 Android 범위 ### 포함 - 서버 주소 입력 - 이름 + 초대코드 가입 - 대화 목록 조회 - 대화방 진입 - 텍스트 메시지 송신 - 기본 수동 새로고침 또는 단순 실시간 반영 - signed APK 생성 ### 제외 - 고도화된 파일 공유 UX - 카메라/갤러리 심화 연동 - Play 스토어 배포 - 복잡한 백그라운드 동기화 - 모바일 전용 디자인 실험 ## 릴리즈 원칙 하나의 태그는 하나의 릴리즈를 뜻한다. 예: - `v0.2.0-alpha.1` - Windows zip - Android apk - 공통 릴리즈 노트 - 공통 `version.json` 이 구조의 장점: - 사용자는 어떤 OS를 쓰더라도 같은 버전 기준으로 설명을 읽는다. - 운영자는 원격 Releases와 다운로드 미러를 같은 기준으로 검증할 수 있다. - QA는 Windows와 Android를 같은 마일스톤 아래에서 비교할 수 있다. ## 다운로드 채널 구조 최신 진입 경로: - `https://download-vstalk.phy.kr/windows/latest` - `https://download-vstalk.phy.kr/android/latest` - `https://download-vstalk.phy.kr/latest/version.json` 버전별 이력: - `https://download-vstalk.phy.kr/releases//windows/x64/...` - `https://download-vstalk.phy.kr/releases//android/universal/...` - 현재 공개 릴리즈 페이지 ## 메시지 톤 원칙 원격 저장소와 릴리즈 안내 문구는 `지금 바로 다운받으세요` 같은 속보형 톤보다 아래 방향을 따른다. - 왜 이 채널이 필요한지 먼저 설명 - 어떤 수준까지 준비됐는지 정직하게 밝힘 - 무엇이 아직 남아 있는지 숨기지 않음 - 다운로드 링크는 설명 뒤에 자연스럽게 배치 추천 문구: - `Windows 채널은 Alpha 실행 가능 상태이며, Android 채널은 같은 버전 체계 아래 병렬 도입 중입니다.` - `Android는 이동 중 빠른 확인과 즉답을 위한 채널로 시작하며, 기능보다 안정적인 기본 루프를 먼저 다듬습니다.` - `같은 버전 번호 아래의 Windows와 Android 산출물은 원격 Releases와 다운로드 미러에서 함께 확인할 수 있어야 합니다.` ## 운영 체크리스트 - 같은 버전 번호의 Windows/Android 자산이 모두 있는가 - 원격 Releases에 버전별 원본 자산이 게시됐는가 - 다운로드 미러 latest 라우트가 같은 버전을 가리키는가 - README의 최신 스크린샷이 현재 릴리즈와 크게 어긋나지 않는가 - 릴리즈 노트가 두 플랫폼의 현재 상태를 함께 설명하는가