공개: KoTalk 최신 기준선

This commit is contained in:
Ian 2026-04-16 09:24:26 +09:00
commit debf62f76e
572 changed files with 41689 additions and 0 deletions

View file

@ -0,0 +1,112 @@
# 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/<version>/windows/x64/...`
- `https://download-vstalk.phy.kr/releases/<version>/android/universal/...`
- 현재 공개 릴리즈 페이지
## 메시지 톤 원칙
원격 저장소와 릴리즈 안내 문구는 `지금 바로 다운받으세요` 같은 속보형 톤보다 아래 방향을 따른다.
- 왜 이 채널이 필요한지 먼저 설명
- 어떤 수준까지 준비됐는지 정직하게 밝힘
- 무엇이 아직 남아 있는지 숨기지 않음
- 다운로드 링크는 설명 뒤에 자연스럽게 배치
추천 문구:
- `Windows 채널은 Alpha 실행 가능 상태이며, Android 채널은 같은 버전 체계 아래 병렬 도입 중입니다.`
- `Android는 이동 중 빠른 확인과 즉답을 위한 채널로 시작하며, 기능보다 안정적인 기본 루프를 먼저 다듬습니다.`
- `같은 버전 번호 아래의 Windows와 Android 산출물은 원격 Releases와 다운로드 미러에서 함께 확인할 수 있어야 합니다.`
## 운영 체크리스트
- 같은 버전 번호의 Windows/Android 자산이 모두 있는가
- 원격 Releases에 버전별 원본 자산이 게시됐는가
- 다운로드 미러 latest 라우트가 같은 버전을 가리키는가
- README의 최신 스크린샷이 현재 릴리즈와 크게 어긋나지 않는가
- 릴리즈 노트가 두 플랫폼의 현재 상태를 함께 설명하는가