윈도우로만 개발해서 첫 앱 출시했습니다 (깃허브 잔디 위젯)
학교 다니면서 혼자 만든 첫 앱이 앱스토어에 올라갔습니다. 깃허브 잔디(contribution graph)를 홈 화면 위젯으로 보여주는 앱입니다.
맥이 없어서 iOS 빌드는 전부 Codemagic(CI)으로 돌렸습니다. 로컬에서 시뮬레이터 한 번 못 띄우고 빌드 로그만 보면서 위젯 익스텐션을 붙였습니다. 되긴 되더라고요. 다만 한 번 돌릴 때마다 기다려야 해서 “일단 짜고 돌려보자”가 안 됩니다. 코드를 훨씬 조심해서 쓰게 됐습니다.
심사는 세 번째에 붙었습니다. 반려 사유는 대부분 위젯 관련이었습니다. 위젯을 설정하지 않은 상태에서 빈 화면이 나오면 리젝됩니다. placeholder를 반드시 넣어야 합니다. 인앱결제가 있으면 “구매 복원” 버튼도 필수입니다. 위젯 갱신 주기는 Android가 Workmanager 6시간, iOS는 WidgetKit 타임라인에 맡기는데 더 자주 하면 OS가 알아서 죽입니다.
기능은 단순합니다. GitHub username만 넣으면 로그인도 토큰도 없이 잔디가 뜹니다. 공개 contributions 페이지를 파싱하는 방식이라 OAuth를 안 붙였는데, 이게 심사에서 제일 잘한 선택이었습니다. 계정 삭제 기능도, 데모 계정도, 개인정보 처리 항목도 준비할 게 없었습니다. 대신 GitHub이 마크업을 바꾸면 조용히 깨지므로 파서 테스트가 사실상 유일한 방어선입니다.
위젯 테마는 8종을 Flutter CustomPainter로 직접 그렸습니다. 기본 잔디 그리드, 회로기판, 키캡, 입체 정원, 네온 시티, 터미널(git log), 능선, 에디터 미니맵. 660×312 캔버스에 그려서 PNG로 네이티브에 넘기는 구조라 iOS WidgetKit과 Android RemoteViews에 같은 렌더를 씁니다. 테마를 두 번 구현하지 않아도 되는 게 컸습니다.
기본 테마는 무료이고 나머지는 1회 구매입니다. 안드로이드 버전은 준비 중입니다. 혹시 위젯 앱이나 맥 없이 CI로 iOS 빌드하는 거 궁금하신 분 있으면 댓글 주세요. 아는 만큼 답하겠습니다.
App Store: apps.apple.com/app/id6792509021