부제: 무엇을 모르는 지 모르는 상태일 때, 문제 해결하기

다운로드.png

안녕하세요, 부스트캠프 6기 iOS 과정의 S008 김민지입니다.

저희 앱에서는 친구 신청 알림, 이모지 수신 알림, 초대장 알림 등을 보내기 위해 Firebase Cloud Messaging을 도입하였습니다.

이에 대해서 이 포스트를 통해 그 과정을 이야기해보려 합니다.

Firebase Cloud Messaging을 도입하게 된 계기

저희 조가 기획한 앱은 혼자 달리기 뿐만 아니라 친구와 같이 달리기가 가능한 앱이었습니다.

친구와 어떻게 같이 달리기를 시작할 수 있을 지 고민하던 도중, 친구를 초대하면 친구에게 푸시 알림이 전송되고, 그 푸시 알림을 터치하면 초대장이 뜨도록 하자는 의견이 나왔고, 이런 방식으로 구현하자는 방향으로 의견이 모아졌습니다.

푸시 알림 전송이나 그를 터치했을 때 일어나야 하는 일을 어떻게 구현해야 할 지 아무것도 모르는 상태였으나 이 기능은 저희 앱의 아이덴티티를 확실하게 하는 부분이었기에, 한 번 도전해보고 싶다는 생각이 들어 제가 담당하기로 했습니다.

저희 조는 iOS 개발자 네 명으로 이루어져 서버 개발자가 없었기 때문에, 사용하기로 했던 Firebase가 제공해주는 기능인 Firebase Cloud Messaging(이하 FCM)을 도입하기로 했습니다.

예전에 부스트캠프에서 토이 프로젝트를 진행하며 로컬 푸시 알림을 보내 본 적이 있어 리모트 푸시 알림도 이와 비슷하게 간단할 것이라고 생각했으나 예상보다는 설정해주어야 할 것들이 꽤 있었습니다.

계획 세우기 & 할 일 순서 정하기

초반에는 위에 언급했듯이 리모트 푸시 알림이나, 그 푸시 알림을 터치했을 때 특정 뷰 컨트롤러가 표시되게 하는 방법에 대해 아는 것이 없었습니다. 그래서 대체 무엇부터 해야 할 지 머릿속이 복잡했습니다. 당시에는 그야말로 무엇을 모르는지 잘 모르는 상태였습니다.

머릿속으로만 생각하기에는 정리가 잘 되지 않았기에, 수신자의 앱, 발신자의 앱 및 Firebase realtime database에서 각각 어떤 일이 어떤 순서로 일어나야 하는지 직접 손으로 써보며 큰 문제를 작은 부분 문제들로 나눠보는 과정을 거쳤습니다. 아래 사진은 아이패드에 손으로 각각의 과정을 작성한 것인데 글씨가 꽤나 더럽네요...ㅎㅎ

IMG_0037 2.jpg