안녕하세요, 부스트캠프 6기 iOS 과정의 S008 김민지입니다.
저희 앱에서는 친구 신청 알림, 이모지 수신 알림, 초대장 알림 등을 보내기 위해 Firebase Cloud Messaging을 도입하였습니다.
이에 대해서 이 포스트를 통해 그 과정을 이야기해보려 합니다.
저희 조가 기획한 앱은 혼자 달리기 뿐만 아니라 친구와 같이 달리기가 가능한 앱이었습니다.
친구와 어떻게 같이 달리기를 시작할 수 있을 지 고민하던 도중, 친구를 초대하면 친구에게 푸시 알림이 전송되고, 그 푸시 알림을 터치하면 초대장이 뜨도록 하자는 의견이 나왔고, 이런 방식으로 구현하자는 방향으로 의견이 모아졌습니다.
푸시 알림 전송이나 그를 터치했을 때 일어나야 하는 일을 어떻게 구현해야 할 지 아무것도 모르는 상태였으나 이 기능은 저희 앱의 아이덴티티를 확실하게 하는 부분이었기에, 한 번 도전해보고 싶다는 생각이 들어 제가 담당하기로 했습니다.
저희 조는 iOS 개발자 네 명으로 이루어져 서버 개발자가 없었기 때문에, 사용하기로 했던 Firebase가 제공해주는 기능인 Firebase Cloud Messaging(이하 FCM)을 도입하기로 했습니다.
예전에 부스트캠프에서 토이 프로젝트를 진행하며 로컬 푸시 알림을 보내 본 적이 있어 리모트 푸시 알림도 이와 비슷하게 간단할 것이라고 생각했으나 예상보다는 설정해주어야 할 것들이 꽤 있었습니다.
초반에는 위에 언급했듯이 리모트 푸시 알림이나, 그 푸시 알림을 터치했을 때 특정 뷰 컨트롤러가 표시되게 하는 방법에 대해 아는 것이 없었습니다. 그래서 대체 무엇부터 해야 할 지 머릿속이 복잡했습니다. 당시에는 그야말로 무엇을 모르는지 잘 모르는 상태였습니다.
머릿속으로만 생각하기에는 정리가 잘 되지 않았기에, 수신자의 앱, 발신자의 앱 및 Firebase realtime database에서 각각 어떤 일이 어떤 순서로 일어나야 하는지 직접 손으로 써보며 큰 문제를 작은 부분 문제들로 나눠보는 과정을 거쳤습니다. 아래 사진은 아이패드에 손으로 각각의 과정을 작성한 것인데 글씨가 꽤나 더럽네요...ㅎㅎ