사진만 저장하는 건 아쉬워서 만든 Voyage Journal, 직접 써보니 고칠 게 계속 나왔다

사진을 저널 형태로 남기는 앱 Voyage Journal을 만들고 Fold8에 직접 설치해 테스트했다. '오늘' 두 글자가 잘리는 문제부터 저장과 공유, 상태바와 백업 안내까지 실제 폰에서 발견한 문제들을 고친 이야기다.

#Voyage Journal#앱 개발#개인 개발#안드로이드#여행 기록#개발 후기

사진만 저장하는 건 아쉬워서 만든 Voyage Journal, 직접 써보니 고칠 게 계속 나왔다

Voyage Journal은 사진을 그냥 갤러리에 쌓아두는 데서 끝내지 않고 사진을 가지고 하나의 기록을 만들어보자는 방향으로 시작한 앱이다.

이름 그대로 여행 기록에 가깝다.

사진을 가져오고, 그걸 바탕으로 저널을 만들고, 나중에 다시 보거나 저장하고 공유할 수 있게 만드는 게 기본 방향이었다.

처음에는 기능 흐름만 잘 이어지면 금방 될 것 같았다.

사진 선택하고, 저널 만들고, 저장하고.

말로 하면 몇 줄 안 된다.

그런데 앱은 역시 실제 폰에 올리는 순간부터 이야기가 달라졌다.

'오늘'이라는 글자 두 개가 잘렸다

기억에 남는 문제 중 하나가 정말 사소한 것이었다.

앱 화면에 **'오늘'**이라고 표시되는 부분이 있었는데 실제 기기에서 글자가 제대로 보이지 않았다.

두 글자다.

그런데 그 두 글자가 예쁘게 안 나온다.

처음에는 공간이 부족한가 싶었는데 한글 폰트의 fallback이나 line-height, padding 같은 것들을 같이 봐야 했다.

결국 CJK 폰트 처리와 줄 높이, 여백을 조정하면서 고쳤다.

이런 문제를 잡고 있으면 가끔 웃기다.

앱에서는 사진을 분석하고 저널을 만드는 기능이 돌아가는데, 정작 개발자는 화면 한쪽의 '오늘' 두 글자 때문에 시간을 쓰고 있다.

그런데 사용자 눈에는 그런 게 먼저 보인다.

기능이 아무리 좋아도 첫 화면에서 글자가 잘려 있으면 그냥 덜 만든 앱처럼 보인다.

Fold8에 직접 설치해서 계속 확인했다

나는 Voyage Journal도 실제 Fold8에 설치해서 확인했다.

에뮬레이터에서 화면을 보는 것과 내가 평소 사용하는 폰에서 앱을 여는 건 느낌이 꽤 다르다.

상태바가 화면과 이상하게 겹치는 문제도 있었고, 카드 안에 들어가는 액션들이 좁은 공간에서 줄바꿈되는 것도 손봐야 했다.

권한이 없을 때 보여주는 문구나 오류 메시지도 다시 봤다.

개발할 때는 오류가 난 이유를 아니까 대충 이해할 수 있다.

그런데 사용자는 그런 사정을 모른다.

그냥 버튼을 눌렀는데 안 되면 '안 되는 앱'이다.

그래서 오류가 났을 때 무슨 일이 생겼는지 최소한 알아볼 수 있도록 문구도 계속 정리했다.

저장과 공유도 '버튼이 있다'로 끝나지 않았다

사진으로 기록을 만들었으면 당연히 저장하고 싶을 수 있고, 다른 곳으로 공유하고 싶을 수도 있다.

그래서 저장과 공유 기능도 넣었다.

그런데 여기서도 정상적으로 저장되는 경우만 보면 안 됐다.

공유 화면을 열었다가 취소하면 어떻게 되는지, 저장을 취소했을 때 이상한 오류가 뜨지는 않는지 같은 것도 확인해야 했다.

개발할 때 가장 자주 느낀 건 이거였다.

내가 예상한 순서대로만 사용자가 움직이지 않는다.

버튼을 눌렀다가 그냥 뒤로 갈 수도 있고, 권한을 거부할 수도 있고, 작업 중간에 취소할 수도 있다.

정상 루트 하나만 만들어 놓고 끝내면 그런 순간마다 앱이 이상해진다.

Voyage Journal도 이런 부분을 실제 기기에서 하나씩 확인하면서 수정했다.

백업과 복원 안내도 뒤늦게 신경 쓰게 됐다

기록을 만드는 앱이라면 데이터가 쌓인다.

처음에는 기록을 만드는 기능에 더 신경을 썼는데, 앱을 계속 사용한다고 생각하면 백업과 복원도 무시할 수 없었다.

특히 앱을 다시 설치하거나 기기를 바꾸게 됐을 때 사용자가 기존 기록을 어떻게 해야 하는지 애매하면 곤란하다.

그래서 백업과 복원 쪽 안내도 다시 정리했다.

앱을 만들 때는 항상 새로운 기능이 재미있다.

반면 백업이나 오류 처리 같은 건 상대적으로 재미가 없다.

그런데 실제 사용할 때 더 중요한 건 오히려 후자인 경우가 많았다.

다국어도 직접 화면을 보면서 확인했다

Voyage Journal은 한국어만 넣고 끝내지 않고 다른 언어도 지원하도록 만들었다.

실제 release 버전에서 한국어와 스페인어 화면도 확인했다.

번역 문자열이 있다는 것과 실제 화면에서 자연스럽게 들어가는 건 또 다른 문제였다.

한국어에서는 짧던 문장이 다른 언어에서는 길어질 수 있고, 버튼 공간이 부족해질 수도 있다.

그래서 다국어 지원은 번역 파일 하나 추가했다고 끝나는 일이 아니었다.

개발하다 보면 큰 문제보다 작은 문제가 더 오래 기억난다

Voyage Journal을 만들면서 빌드가 깨지는 일도 있었고 공유나 저장 쪽을 다시 보기도 했다.

그런데 이상하게 오래 기억나는 건 '오늘' 글자가 잘린 것 같은 작은 문제다.

아마 직접 화면을 보면서 '이건 너무 티 나는데'라고 느꼈기 때문인 것 같다.

개인 개발을 하다 보면 기능 하나를 완성했을 때는 굉장히 많이 만든 것 같은 기분이 든다.

그런데 실제 기기에 설치하면 바로 겸손해진다.

여기 조금 어색하고, 저기 글자가 튀어나오고, 취소 버튼을 눌러보니 예상하지 못한 동작을 한다.

그걸 하나씩 고치다 보면 어느 순간 처음보다 훨씬 앱다운 모양이 된다.

그래도 직접 만든 앱이 내 폰에서 돌아가는 건 묘하게 좋다

코드로만 있을 때와 Play 스토어에 올리고 실제 폰에서 실행할 때는 느낌이 다르다.

내가 만든 화면에서 사진을 고르고 기록이 만들어지고, 그걸 다시 저장하는 흐름이 실제 기기에서 돌아가면 별것 아닌데도 한번 더 눌러보게 된다.

물론 그 다음에는 또 버그가 보인다.

그리고 다시 고친다.

Voyage Journal을 만들면서 앱 개발이라는 게 완성 버튼을 한 번 누르는 일이 아니라는 걸 많이 느꼈다.

만들고, 직접 써보고, 거슬리는 걸 발견하고, 다시 고치는 일을 계속 반복하는 쪽에 더 가까웠다.

지금 돌아보면 기능을 몇 개 만들었는지보다 그런 과정을 직접 겪어본 게 더 많이 남았다.

관련 글