자꾸 까먹어서 결국 앱까지 만들었다, '바꿀때 됐어' 제작기

휴지, 세제 같은 생활용품부터 냉장고 식품 기한까지 매번 기억하는 게 귀찮아서 결국 직접 앱을 만들었다. 실제 폰에서 알림이 몇 시간 늦게 오는 문제까지 겪으며 '바꿀때 됐어'를 만들고 고친 과정을 적어봤다.

#바꿀때 됐어#앱 개발#안드로이드 앱#개인 개발#생활 관리#앱 제작기

자꾸 까먹어서 결국 앱까지 만들었다, '바꿀때 됐어' 제작기

앱 이름부터 별거 없다.

바꿀때 됐어.

말 그대로 뭔가 바꿀 때가 됐을 때 알려주는 앱이다.

처음부터 거창한 생산성 앱을 만들 생각은 아니었다. 집에서 쓰는 휴지나 세제, 수세미 같은 물건도 그렇고 냉장고에 넣어둔 식품도 그렇고, 항상 문제가 생기는 시점은 비슷했다.

'이거 언제 샀더라?'

'이거 슬슬 바꿔야 되는 거 아닌가?'

'냉장고에 이거 아직 있었네.'

하나하나는 사소한데 계속 반복된다.

메모장에 적어둘 수도 있고 캘린더에 하나씩 등록할 수도 있다. 그런데 그것도 몇 번 해보면 귀찮다. 그래서 아예 오늘 뭘 확인하면 되는지만 한 화면에 보여주고, 처리했으면 한 번 눌러서 다음 날짜로 넘기는 앱을 만들기로 했다.

만들 때 생각했던 건 의외로 단순했다

내가 원했던 건 복잡한 재고관리 프로그램이 아니었다.

생활용품은 언제 교체했는지 기록하고, 냉장고에 있는 건 소비기한을 놓치지 않고, 오늘 해야 할 게 있으면 바로 보이는 정도면 됐다.

그래서 기능을 늘리는 것보다 매일 실제로 열어볼 수 있는지가 더 중요했다.

앱을 만들다 보면 자꾸 욕심이 생긴다. 이것도 넣고 싶고 저것도 넣고 싶다. 그런데 기능이 많아질수록 정작 처음 앱을 만든 이유가 흐려졌다.

결국 계속 돌아온 질문은 하나였다.

'내가 이걸 실제로 매일 쓸까?'

개발보다 실제 폰에서 테스트할 때 문제가 더 잘 보였다

PC 화면에서 볼 때는 멀쩡해 보이던 것도 실제 휴대폰에 설치하면 이상한 부분이 튀어나왔다.

나는 Fold8에 직접 설치해서 확인했는데, 접힌 상태와 펼친 상태에서 화면 크기가 달라지니까 버튼이나 카드 배치도 따로 봐야 했다.

글자 크기를 1.3배로 키워 놓고도 버튼 영역이 겹치지 않는지 확인했다.

앱 이름 표시도 중간에 어색한 곳이 있어서 결국 전부 **'바꿀때 됐어'**로 통일했다.

이런 건 코드만 보고 있으면 잘 안 보인다.

직접 폰을 들고 눌러봐야 '아, 이건 좀 거슬리는데?' 싶은 게 나온다.

제일 황당했던 건 알림이었다

이 앱에서 알림은 꽤 중요한 기능이다.

교체할 때가 됐다고 알려주는 앱인데 알림이 제때 안 오면 존재 이유가 반쯤 사라진다.

그런데 실제 테스트에서 한번은 새벽 1시 30분으로 예약한 알림이 4시 15분쯤 도착했다.

몇 분 늦은 것도 아니고 거의 2시간 45분 뒤였다.

처음에는 내가 시간을 잘못 넣었나 싶었다.

확인해보니 Android 쪽에서 정확한 시간이 아닌 방식으로 예약되어 있었고, 화면을 꺼둔 상태에서 시스템 절전 동작까지 겹치면서 알림이 밀린 흔적이 있었다.

솔직히 이런 걸 만나면 좀 허무하다.

코드에서는 '예약 완료'가 찍혀 있는데 사용자가 받아야 할 시간에는 아무 일도 안 일어난다.

결국 알림 쪽을 다시 손보고 포그라운드, 홈 화면으로 나간 상태, 화면을 꺼둔 상태까지 다시 확인했다.

수정 후에는 실제로 알림이 뜨는 것까지 확인했다.

업데이트하면서 제일 신경 쓴 건 기존 데이터였다

앱을 나 혼자 테스트할 때도 이미 항목을 이것저것 넣어둔 상태였다.

출시 후보 버전을 다시 설치하면서 확인한 데이터가 38개 정도였다.

기능 하나 고쳤다고 업데이트했는데 기존에 입력해둔 항목이 싹 날아가면 그건 더 큰 문제다.

그래서 새 버전을 설치할 때는 UI가 잘 보이는지만 확인한 게 아니라 기존 데이터가 그대로 남아 있는지도 같이 봤다.

별것 아닌 것 같아도 실제로 계속 쓰는 앱에서는 이 부분이 꽤 중요하다는 걸 느꼈다.

Play 스토어에 올리고 끝인 줄 알았는데 아니었다

앱을 완성하면 APK나 AAB를 올리고 끝나는 줄 알기 쉽다.

실제로 해보니까 그 뒤에도 확인할 게 계속 생겼다.

Android의 대상 API 버전도 맞춰야 했고, 실제 기기에서 release 버전을 다시 설치해서 알림과 언어 표시를 확인했다. 한국어뿐 아니라 영어, 일본어, 중국어, 스페인어도 추가했다.

그리고 Google Play 프로덕션 심사를 기다리는 시간도 있었다.

코딩할 때는 내가 고치면 바로 결과가 나오는데 심사는 그렇지 않다.

할 수 있는 건 다 해놓고 기다려야 한다.

그게 은근 사람을 초조하게 만든다.

그래도 결국 프로덕션 배포까지 통과했다.

직접 만들어보니 기능보다 중요한 게 있었다

처음에는 앱의 핵심 기능만 제대로 만들면 된다고 생각했다.

그런데 실제로 써보니 작은 부분들이 더 오래 걸렸다.

알림이 화면을 꺼놔도 제대로 오는지, 글자를 크게 했을 때 버튼이 겹치지 않는지, 업데이트해도 기존 데이터가 살아 있는지 같은 것들이다.

사용자 입장에서는 당연히 되어야 하는 것들인데 만드는 입장에서는 그 '당연한 것'을 하나씩 확인해야 했다.

그래도 직접 쓰려고 만든 앱이라 그런지 문제가 보이면 그냥 넘기기가 어려웠다.

내가 쓰다가 짜증 날 만한 부분이면 다른 사람도 똑같이 짜증 날 테니까.

지금도 완성됐다고 생각하진 않는다

Play 스토어에 올라갔다고 해서 앱이 완성됐다고 생각하지는 않는다.

직접 계속 사용하다 보면 또 불편한 부분이 나올 거고, Android가 바뀌면 다시 손봐야 하는 것도 생길 것이다.

그래도 처음에 생각했던 목적은 꽤 단순하게 유지하고 있다.

생활하면서 계속 까먹는 것들을 내가 전부 기억하지 않아도 되게 만드는 것.

그게 이 앱을 만든 이유다.

남들이 보기에는 작은 앱일 수도 있지만, 기획하고 만들고 실제 폰에 설치하고 오류를 잡아서 스토어까지 올려본 경험은 생각보다 재미있었다.

그리고 앱을 만들면서 한 가지는 확실히 알게 됐다.

내가 불편해서 만든 물건은 테스트할 때 핑계를 대기가 어렵다.

결국 내가 계속 써야 하니까.

관련 글