3weeks 개발기 10편 — 마침내 두 플랫폼, iOS와 Android 동시 출시

처음부터 두 플랫폼을 목표로 했다
이번 재개발의 가장 큰 동기 중 하나가 Android 출시였습니다.
3weeks의 핵심 아이디어인 "21일 습관 형성"은 iOS 사용자만을 위한 게 아닙니다. Android 사용자도 똑같이 습관을 만들고 싶어합니다.
2019년에는 iOS 개발자였기 때문에 iOS만 출시했습니다. 이제 Flutter를 쓰니까, 같은 코드로 두 플랫폼을 동시에 낼 수 있습니다.
Flutter의 크로스플랫폼은 완벽하지 않다
Flutter가 하나의 코드로 두 플랫폼을 지원한다고 하지만, 실제로 해보면 플랫폼별로 신경 써야 할 부분이 있습니다.
알림 설정: iOS는 UNUserNotificationCenter, Android는 알림 채널 설정이 각각 다릅니다. 특히 Android는 OS 버전에 따라 배터리 최적화 예외 처리를 안 하면 앱이 백그라운드에서 알림을 제대로 보내지 못하는 경우가 있습니다.
권한 요청: 마이크 권한, 알림 권한, 저장소 권한 — iOS와 Android 모두 권한을 요청해야 하지만 방식이 다릅니다.
UI 디테일: 같은 코드인데 iOS와 Android에서 조금씩 다르게 보이는 부분들이 있습니다. 폰트 렌더링, 버튼 스타일, 네비게이션 동작 등.
이런 부분들을 하나씩 맞춰가는 작업이 예상보다 시간이 걸렸습니다.
스마트로또에서 배운 Android 출시 과정
스마트로또를 Android에 출시할 때 12명의 테스터를 구해서 14일 비공개 테스트를 해야 했던 경험이 있었습니다.
3weeks는 그 경험 덕분에 미리 준비를 할 수 있었습니다. 테스터 모집, 비공개 테스트 진행, Google Play 정책 검토까지 순서를 알고 있었습니다.
처음보다 훨씬 수월했습니다.
두 스토어, 두 심사
iOS App Store와 Google Play는 심사 방식이 다릅니다.
App Store는 사람이 직접 앱을 검토합니다. 심사 기간이 며칠 걸리고, 거절될 경우 사유를 알려줍니다. 3weeks 같은 생산성 앱은 민감한 카테고리가 아니라 비교적 수월하게 통과됩니다.
Google Play는 자동화된 검토가 많습니다. 정책 위반이 없으면 대체로 빠르게 통과됩니다.
두 스토어 모두 통과되면서, 3weeks는 처음으로 iOS와 Android 사용자 모두에게 열렸습니다.
2019년에 시작한 앱이 2026년에
2019년 7월 25일 새벽 4시 58분에 첫 배포를 했습니다.
그 앱이 7년 만에 완전히 새로운 모습으로, 두 플랫폼에서 다시 출시됐습니다.
기술 스택이 바뀌고, 기능이 늘어났지만 핵심은 그대로입니다.
21일. 매일. 연속으로.
그 단순한 규칙이 좋았고, 지금도 좋습니다.
앱 하나가 오래 살아남는다는 것
3weeks를 운영하면서 느끼는 게 있습니다. 앱이 오랫동안 서비스되면서 쌓이는 것들이 있습니다.
사용자들의 피드백, 다운로드 데이터, 어떤 기능이 실제로 쓰이는지. 처음 만들 때는 몰랐던 것들을 몇 년이 지나면서 알게 됩니다.
단기간에 만들고 버리는 것보다, 오래 유지하면서 발전시키는 앱 하나가 더 가치 있다는 생각이 듭니다.
3weeks는 계속 그렇게 만들어나갈 계획입니다.