프로젝트 깃헙
https://github.com/DeveloperAcademy-POSTECH/2024-NC2-M44-Notification
Nano Challenge 2
목표: Local Notification과 Remote Notification으로 적절한 알림 보내기
Use case: 적절한 알림을 주어 학생은 일정한 시간에 일기를 작성하고, 선생님은 학생이 제출한 일기를 확인하게 하자.
내가 집중한 부분:
- Trigger: Local Notification의 경우 시간, 공간을 Trigger 로 사용하여 알림을 줄 수 있다. 그 중 시간이 계획과 밀접하기도 하고, 시간이더라도 타이머, 특정 날짜, 특정 시간 등에 따라 달리 알람을 설정할 수 있어서 앱의 use case의 적절한 알림을 구현하고자 했다.
- Notification Action: 알림을 받고 단순히 앱으로 접근하는 것이 아니라, 앱에 들어오지 않아도 미리 설정한 과정을 실행할 수 있게 하여 사용자의 편리성을 높이고 목적에 부합하는 알림을 보내고자 했다.
- Text Input Action: Notification action 중에 버튼을 클릭하는 것에서만 끝나는 게 아니라 바로 필요한 텍스트를 입력할 수 있는 것으로, use case에 적절한 알림을 구현하고자 했다.
구현 과정
- Use case에 적합한 View를 MVP 형태로 최소 필요한 부분만 구현했다.
- Notification에 대한 기술 조사를 공식 자료 위주로 진행했다.
- 공식 자료의 코드와 다른 예제들을 참고해서 버튼을 누르면 시간을 trigger로 활용한 알림을 보내고 확인했다.
- 3에서 테스트한 알림을 실제 앱의 알림으로 적용했다.
- text input action을 구현하고 데이터 입력을 확인했다.
- UserDefaults나 onAppear, onActive로 입력된 데이터를 저장하고 전달했다.
- 의도한 대로 알림이 전달되고, 알림을 받았을 때 action의 동작도 정상적으로 되는지 확인하고 마무리했다.
참고 자료 모음(이전 글)
Prototype(Local Notification)
기본 View
알림 설정 및 text input action(H/W 키보드로 입력)
피드백
뿌듯한 점:
- 기본 기능이고 활용도가 높으면서 좋은 효과를 낼 수 있는 Notification을 이번 기회로 목표한 만큼 공부해서 좋다.
- 공식 문서로 Notification을 이해하고, 구현에 필요한 문서를 적절히 찾아 활용했다.
- HIG를 통해 Notification의 지향점을 배웠고, 앞으로 사용자에게 필요한 알림을 주는 것을 할 수 있다.
- 짝과 각자의 목표를 존중하며 배려하며 분업했다!
아쉬운 점:
- watchOS만의 다른 인터페이스를 설정하는 것까지 해보고 싶었는데, 마지막 발표에 시간을 쓰고자 iOS대로 설정된 알림을 확인하고 수정하진 않았다.
- 짝의 Remote Notification 공부를 공유하는 시간이 적었다.
- 짝과 서로의 코드에 대해 리뷰하는 시간이 적었다.
앞으로 할 일:
- 다음 프로젝트에서 필요하다면 Notification을 자신있게 맡겠다.
- Back-end 개발을 담당하지 않더라도 구조와 방식을 배우고 알림의 내용이나, 카테고리, action 등을 함께 구현해볼 것이다.