2018년 버킷리스트 #9

개인앱 하나 만들기

“당신은 누군가와의 첫 만남을 기억하나요?”
“최근에 가장 자주 연락은 사람은 누굴까요?”

3년 전쯤, 이전 회사를 그만두고 개인적으로 만들고 싶은 앱이 있었다. 단순히 말하면 새로운 ‘연락처' 앱이라고 말할 수 있겠다. 개인적으로 SNS에도 많은 관심이 있고, 기존의 연락처에 저장된 수많은 사람을 처음에 어떻게 만났었는지 기억하지 못하는 경우가 많았다.

그러다가 아이폰의 기본 연락처 앱은 물론 앱스토어에서 연락처로 검색된 대부분의 앱을 살펴봤다. 많은 연락처 앱이 이름과 전화번호의 데이터베이스 역할만 하고 백업과 복원, 그리고 동기화 기능에 집중되어 있었다. 연락처 앱은 정말로 전화번호를 저장하고 검색하기 위한 기능만으로 충분할까? 왜 모든 연락처 앱은 ㄱㄴㄷ순으로 정렬되어 있어서 자주 연락하지 않는 사람들이 먼저 보여야 할까?

물론 이전에 있던 앱 중에서 영감을 얻을 수 있는 것들도 몇 개 있었다. 대표적인 앱이 (지금은 서비스 종료가 된) 에버노트 헬로라는 앱이었다. 하지만 이 앱은 조금 비즈니스 측면에 맞춰서 만들어져 있었고, 명함을 기반으로 하거나 만남에 초점을 두고 있었다. 또 하나는 윈도우즈 폰에 있는 피플 허브라는 기본 연락처 앱이었다. 윈도우즈 폰 특유의 라이브 타일 UI를 가지고 연락처에 있는 사람을 타일 형태로 표시하고 자주 연락하는 사람을 보여주거나 특정 사람의 최근 SNS 소식을 타임라인 형태로 볼 수 있었다.

내가 생각하는 ‘새로운' 연락처 앱은 기존의 연락처 앱에서 그 사람과의 관계 속에서 만들어지는 컨텍스트를 기록할 수 있고 그걸 필요할 때 알려주거나 확인할 수 있는 앱이었다. 또한 기존의 이름순 정렬이 아닌 자주 연락하는 순서나 최근 연락 순서처럼 내 연락 패턴에 맞게 정렬을 바꿀 수 있는 기능도 중요하게 생각했다. 아주 멀리 바라보면 적절한 때, 생일이나 연락이 필요한 때에 알림을 줘서 내 인간관계를 잘 만들 수 있도록 도와주는 앱을 만들고 싶었다.


리프레시 휴가

2주의 자유시간이 생겼고, 그동안 미뤘던 ‘연락처' 앱을 만들기에 딱 알맞은 시간과 타이밍이라고 생각했다. 제주도에 내려가서 새로운 환경에서 마음을 리프레시 하면서 딱 2주 안에 핵심 기능만 동작하는 프로토타입을 만들고 출시까지 하고 싶었다.

CallKit

내가 생각하는 ‘새로운' 연락처 앱을 만들기 적절한 시기라고 생각한 게 사실은 iOS 10부터 추가된 CallKit 이라는 프레임워크 때문이었다. 통화와 관련된 부분은 애플이 열어주지 않고 있었는데 CallKit을 통해서 서드파티 앱에서 통화 관련 부분을 시스템과 연결할 수 있게 되었고, 기본 연락처에 등록되지 않은 번호에 대해서도 전화가 왔을 때 정보를 표시할 수 있게 되었다.

한계

하지만 첫 2–3일 동안 앱을 만드는 데 필요하다고 생각했던 CloudKit, CallKit 등에 대해서 알아보면서 내가 생각하는 걸 그대로 구현할 수 없다는 걸 깨달았다. 무엇보다도 CallKit이 내가 생각하는 것과는 매우 다른 구조였다. 통화와 관련된 API를 모두 열어준 것은 아니었고 (물론 애플이 그럴 리가 없다고 어느 정도 생각은 했었다) 정확하게는 VoIP 앱을 위한 익스텐션의 느낌이었다. VoIP를 통해 주고받는 통화를 시스템 통화와 연결할 수 있게 만들어주는 게 전부였다.


결국 남은 기간에 나는 다시 처음부터 시작했다. 연락처를 추가하거나 기존의 연락처 앱에서 가져올 수 있고, 연락처에 컨텍스트를 기록할 수 있는 기능에 초점을 맞춰서 그것만 개발하기로 했다. 조금 더 욕심을 내서 TDD를 연습할 수 있는 프로젝트로 생각하고 테스트부터 작성하면서 최대한 TDD를 통해서 Model, (View,) Controller를 작성했다. 그래서 마음먹으면 반나절 또는 하루면 만들 앱을 일주일 동안 만들었고 프로토타입은 어느 정도 완성했다. (버전은 0.314)

마지막에 QA를 진행하면서 한 가지 문제가 발견돼서 원래 계획대로 바로 출시까지 하지는 못했지만, 곧 베타 테스트를 통해 원하는 사람들이 써볼 수 있게 공개할 예정이다. 정식 출시는 버전 1.0이 갖춰지면 앱스토어에 등록할 계획이다.

애나가 디자인 해준 앱 아이콘 (깔끔, 이쁨)
그럼 버전 1.0까지 조금만 더 달리기로,