검색에서 안 보이고, 첫 장에서 '함께'가 안 보였다
지난 사흘은 1.2.0 에 들어간 기능을 적었고, 오늘은 나머지 절반입니다. 코드는 거의 그대로이고, 바뀐 것은 스토어에 보이는 글자와 그림입니다.
11월 2일에 쓴 1.2.0 출시 intent 의 Problem 은 세 줄이었습니다. 첫째, "여행 일정", "여행 계획", "여행 가계부"로 검색하면 Joiny 가 50위 밖이었습니다. iOS 키워드 칸은 100자 중 75자만 썼고, 이름에 이미 있는 "여행"과 "일정"을 다시 넣고 있었습니다. iOS 키워드는 새 버전을 제출해야만 바뀝니다. 둘째, 스크린샷 첫 장이 여행 중 '오늘' 화면이라서, 이 앱이 일행과 함께 쓰는 앱이라는 점은 두 번째 장에서야 보였습니다. 그날 공개한 가져오기와 유료 AI 초안을 보여 주는 장도 없었습니다. 셋째, 가져오기와 빈 화면 다듬기는 OTA 로 1.1.0 에 먼저 나갔지만, 새로 설치하는 사람은 첫 실행에서 OTA 를 받기 전까지 옛 화면을 봅니다.
세 번째는 버전을 올려 지금의 main 을 그대로 빌드하면 풀립니다(새 네이티브 모듈 없음). 그 김에 앞의 두 가지를 같이 고쳤습니다.
키워드는 이름·부제에 없는 단어로만
키워드 칸의 전후입니다(앞이 9월 30일 출시 때).
-조이니,여행,일정,여행계획,플래너,동행,친구여행,가족여행,가계부,정산,더치페이,영수증,체크리스트,준비물,예약,항공권,숙소,지도,일본여행
+조이니,플래너,계획,친구,가족,동행,커플,그룹,공유,단톡방,정산,더치페이,엔빵,영수증,환율,체크리스트,준비물,항공권,숙소,지도,동선,코스,AI,일본,도쿄,오사카,후쿠오카,제주
store.md 에 적어 둔 규칙은 두 개입니다. 이름("Joiny - 함께 짜는 여행 일정")과 부제에 있는 단어는 키워드에서 뺀다. 다른 회사 상표는 넣지 않는다(App Store 심사 지침 2.3.7).
첫 규칙을 따르니 "여행"과 "일정"이 빠졌고, "여행계획", "친구여행", "가족여행", "일본여행"은 "여행"을 덜어 "계획", "친구", "가족", "일본"이 됐습니다. 부제("일정·예약·가계부를 일행과 함께")에 있는 "가계부"와 "예약"도 빠졌습니다. 그렇게 생긴 자리에 커플·그룹·공유·단톡방, 엔빵·환율, 동선·코스, AI, 그리고 도쿄·오사카·후쿠오카·제주 같은 도시 이름을 넣어 97자가 됐습니다. "단톡방"은 설명 첫 줄("여행 일정, 이제 단톡방 말고 조이니에서 함께 짜요")과 새 첫 장 스크린샷의 제목에 쓴 말과 같습니다.
이름과 부제는 그대로입니다. 제품 문서에 "iOS 이름·부제는 유지하고 키워드만 1.2.0에서 바꾼다"로 정했지만, 이름까지 바꾸는 길을 버린 이유는 기록에 없습니다. 프로모션 텍스트와 Play 설명은 버전 제출 없이 바로 고치고, 가져오기 공개일에 다시 고친다고 같은 표에 따로 적혀 있습니다.
상표 규칙은 가져오기 기능과 이어집니다. 서비스를 끝내는 다른 여행 앱의 일정 이미지를 받는 기능이지만, 그 앱 이름은 이름·부제·키워드·아이콘에 쓰지 않는다고 가져오기 intent 에 적었습니다(지침 2.3.7, 4.1(c)). 앱 화면에서만 예시로 쓰고 "관계가 없다"는 고지를 답니다.
스크린샷 순서를 '함께'부터
스크린샷은 6장에서 8장이 됐습니다.
- 단톡방 말고, 함께 짜는 일정 / 초대 링크 하나로 모두 같이 편집
- 다른 앱에서 짠 일정도 그대로 / 저장한 일정 이미지로 한 번에 옮겨요
- 함께 쓴 돈, 송금 몇 번이면 끝 / 누가 누구에게 얼마를
- 여행 중엔 '오늘'부터 / 지금 일정과 다음까지 남은 시간
- Day별 일정 초안은 AI로 / 마음에 드는 것만 골라 넣어요
- 예약, 7. 영수증, 8. 체크리스트는 1.0 세트 그대로
첫 장이던 '오늘'은 4번으로 내려갔습니다. 첫 장에서 "함께"가 보여야 한다는 것이 그릴링(제품 결정을 묻고 답하는 인터뷰)의 결정입니다.
첫 장은 가상의 도쿄 3박 4일 여행을 iPhone 17 Pro Max 시뮬레이터로 다시 찍었습니다. store.md 의 기록으로는 다른 세 가상 멤버가 실제로 여행 채널에 붙어서 "보는 중", "편집 중", "방금 추가"를 보낸 화면입니다.
1.2.0 App Store 스크린샷 1번 '단톡방 말고, 함께 짜는 일정'. 1.0 에서 둘째 장이던 일정 화면이 첫 장으로 올라오면서, 누가 보고 누가 고치는지가 같이 보이게 다시 찍었습니다.
2번 가져오기 확인 화면은 가상의 오사카 결과를 로컬 DB 에 넣고 연 것이라 모델을 부르지 않았고, 다른 앱 이름도 나오지 않습니다. 5번 AI 초안은 가상의 후쿠오카 일정에서 한 항목의 체크를 뺀 상태로 찍었습니다. 부제 "마음에 드는 것만 골라 넣어요"가 말하는 그 상태입니다. intent 의 제약에는 스크린샷에 가상 여행·가상 멤버만 쓰고, 실제 일정 이미지는 쓰지 않는다고 적혀 있습니다.
1.2.0 App Store 스크린샷 5번 'Day별 일정 초안은 AI로'. 고른 것만 일정에 들어간다는 규칙을 체크 하나를 비운 상태로 보여 줍니다.
합성은 1.0 때처럼 HTML 을 Chrome headless 로 찍었습니다. 제목 글꼴(주아)에 둥근 따옴표가 없어 '오늘'의 따옴표만 Pretendard 로 그렸습니다.
버전을 올린 대가, 그리고 결과
앱 코드에서 바뀐 줄은 이것 하나입니다.
// 1.1.0: Joiny AI 구독(StoreKit 모듈 joiny-store)과 Places UI Kit 장소 카드(joiny-places-ui), ai-planner plan 3·4단계.
- version: '1.1.0',
+ version: '1.2.0',
Joiny 는 runtimeVersion 을 앱 버전으로 잡고 있어서, 이 한 줄로 OTA 의 runtime 도 1.2.0 이 됩니다. intent 에 적어 둔 대가는 1.2.0 설치본이 1.1.0 용 OTA 를 받지 않는다는 것입니다. 출시 뒤의 OTA 는 두 runtime 에 따로 내야 하고, 출시 기록 커밋에도 초대 이어받기 OTA 가 1.2.0 용과 1.1.0 용 두 개로 적혀 있습니다.
앱 안 리뷰 요청과 일정 이미지로 공유하기는 1.2.0 후보였지만 네이티브 모듈이 필요해 다음 버전으로 넘겼습니다.
intent 의 성공 판정은 1.2.0 이 두 스토어에서 "심사 중"이 되는 것이었고, 출시 기록은 그보다 앞서 있습니다. Android 1.2.0(빌드 9)은 11월 2일 Google Play 에 출시됐고, iOS 1.2.0(빌드 10)은 11월 3일 App Store 에서 승인됐습니다. intent 에 적은 검증 명령(lint·typecheck·test)의 실행 결과와, 리뷰 노트에 데모 계정·구독 안내를 넣었다는 기록은 따로 남아 있지 않습니다.
남은 질문은 하나입니다. 키워드를 바꾼 뒤 세 검색어의 순위가 움직였는지는 아직 기록이 없습니다. 바꾼 이유가 "50위 밖"이었으니, 다음에 이 칸을 고칠 때는 그 숫자부터 다시 재야 합니다.
Joiny 는 함께 갈 사람을 초대해 같이 여행 일정을 짜고, 지도로 동선을 보고, 비용을 정산하는 여행 플래너입니다. iOS·Android 에서 무료로 쓸 수 있습니다.