https://developer.apple.com/documentation/usernotifications
"Push user-facing notifications to the user’s device from a server, or generate them locally from your app."
서버로부터 사용자의 기기로 사용자가 볼 수 있는 노티피케이션을 푸시합니다. 혹은 앱 로컬에서 노티피케이션을 생성합니다.
사용자가 보는 노티피케이션은 앱이 사용자의 기기에서 실행중인지 여부와 관계없이 앱의 사용자에게 중요한 정보를 알려줍니다. 예를 들어 스포츠 앱은 사용자가 가장 좋아하는 팀이 득점을 올렸을 때 이 내용을 알 수 있도록 해줍니다. 노티피케이션은 앱에게 정보를 다운로드 해야 함을 알려줄 수 있고, 인터페이스를 업데이트 해야 함을 알려줄 수도 있습니다. 노티피케이션은 알림, 소리 재생, 앱 아이콘에 badge 추가를 표시할 수 있습니다.
앱으로부터 로컬로 노티피케이션을 생성하거나 관리하는 서버로부터 원격으로 노티피케이션을 생성할 수 있습니다. 로컬 노티피케이션의 경우 앱은 노티피케이션 컨텐트를 생성하고, 시간 혹은 위치와 같은 노티피케이션 전달 트리거 조건을 구체화할 수 있습니다. 원격 노티피케이션의 경우 서버가 푸시 노티피케이션을 생성하고, 애플 푸시 노티피케이션 서비스(APNs)가 사용자의 기기로 전송되는 노티피케이션 전달을 처리합니다.
아래와 같은 작업 수행을 위해 이 프레임워크를 사용하시기 바랍니다.
시스템은 적시에 로컬 및 원격 노티피케이션 전송을 시도합니다. 하지만 전달이 보장되지는 않습니다. PushKit
프레임워크는 VoIP, watchOS complication 사용과 같은 특정 타입의 노티피케이션을 적시에 전달할 수 있는 젇날 메커니즘을 제공합니다. 더 많은 정보는 PushKit
을 보시기 바랍니다.
PushKit
https://developer.apple.com/documentation/pushkit
https://velog.io/@panther222128/PushKit
Note
시리는 검색에서 뉴스, 사파리, 노티피케이션 API를 통해 앱이 관여하는 정보를 사용하는 앱에 대한 제안을 제공할 수 있습니다. 사용자는 시리와 검색 설정을 통해 언제든지 이 기능을 허용할 수 있습니다.
디자인 가이드에 대한 내용은 Human Interface Guidelines에서 Notifications를 보시기 바랍니다.
Notifications
https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/notifications/
노티피케이션의 응답으로 알림, 소리 재생, 앱의 아이콘에 badge를 다는 것에 대한 요청 허용입니다.
https://developer.apple.com/documentation/usernotifications/asking_permission_to_use_notifications
https://velog.io/@panther222128/Asking-Permission-to-Use-Notifications
앱 혹은 앱 확장의 노티피케이션 관련 활동을 관리하기 위한 중심 객체입니다.
https://developer.apple.com/documentation/usernotifications/unusernotificationcenter
https://velog.io/@panther222128/UNUserNotificationCenter
노티피케이션 관련 설정 및 앱의 권한 상태를 관리하기 위한 객체입니다.
https://developer.apple.com/documentation/usernotifications/unnotificationsettings
https://velog.io/@panther222128/UNNotificationSettings
서버로부터 노티피케이션을 생성하고, APNs를 사용해서 이러한 노티피케이션을 전달합니다.
노티피케이션을 생성하고 사용자 기기로 푸시합니다.
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server
https://velog.io/@panther222128/Setting-Up-a-Remote-Notification-Server
애플 푸시 노티피케이션 서비스(APNs)와 커뮤니케이션하고, 앱을 식별하는 고유한 기기 토큰을 받습니다.
https://developer.apple.com/documentation/usernotifications/registering_your_app_with_apns
https://velog.io/@panther222128/Registering-Your-App-with-APNs
애플 푸시 노티피케이션 서비스(APNs)에 푸시 노티피케이션을 전송하기 위해 기본적인 macOS 커맨드 라인 툴을 사용합니다.
https://developer.apple.com/documentation/usernotifications/sending_push_notifications_using_command-line_tools
https://velog.io/@panther222128/Sending-Push-Notifications-Using-Command-Line-Tools
로컬 노티피케이션을 위한 전달 요청을 생성하고, 전달된 로컬 및 원격 노티피케이션의 컨텐트에 접근합니다.
사용자의 주의를 원하는 시점에 앱으로부터 노티피케이션을 생성하거나 스케줄링합니다.
https://developer.apple.com/documentation/usernotifications/scheduling_a_notification_locally_from_your_app
https://velog.io/@panther222128/Scheduling-a-Notification-Locally-from-Your-App
노티피케이션의 컨텐트를 포함하고, 전달 조건을 트리거하는 로컬 노티피케이션 스키줄링을 위한 요청입니다.
https://developer.apple.com/documentation/usernotifications/unnotificationrequest
https://velog.io/@panther222128/UNNotificationRequest
시스템이 앱에 전달하는 로컬 혹은 원격 노티피케이션에 대한 데이터입니다.
https://developer.apple.com/documentation/usernotifications/unnotification
https://velog.io/@panther222128/UNNotification
노티피케이션의 페이로드를 수정하고 검사합니다.
액션과 관련이 있는 아이콘입니다.
https://developer.apple.com/documentation/usernotifications/unnotificationactionicon
https://velog.io/@panther222128/UNNotificationActionIcon
노티피케이션에 대한 편집 가능한 컨텐트입니다.
https://developer.apple.com/documentation/usernotifications/unmutablenotificationcontent
https://velog.io/@panther222128/UNMutableNotificationContent
노티피케이션의 편집 불가능한 컨텐트입니다.
https://developer.apple.com/documentation/usernotifications/unnotificationcontent
https://velog.io/@panther222128/UNNotificationContent
노티피케이션과 관련이 있는 미디어 파일입니다.
https://developer.apple.com/documentation/usernotifications/unnotificationattachment
https://velog.io/@panther222128/UNNotificationAttachment
노티피케이션의 전달에서 재생되는 소리입니다.
https://developer.apple.com/documentation/usernotifications/unnotificationsound
https://velog.io/@panther222128/UNNotificationSound
노티피케이션 전달에 대한 트리거 조건을 정의합니다. APN로부터 원격 노티피케이션이 전달되는 시점을 감지합니다.
시스템이 특정 날짜 및 시간에 전달하는 노티피케이션을 유발하는 트리거 조건입니다.
https://developer.apple.com/documentation/usernotifications/uncalendarnotificationtrigger
https://velog.io/@panther222128/UNCalendarNotificationTrigger
시스템이 구체화한 시간이 지난 후 노티피케이션을 전달하도록 하는 트리거 조건입니다.
https://developer.apple.com/documentation/usernotifications/untimeintervalnotificationtrigger
https://velog.io/@panther222128/UNTimeIntervalNotificationTrigger
사용자의 기기가 구체화한 지리적 지역에 진입하거나 빠져나올 때 노티피케이션을 전달하기 위해 시스템을 움직이는 트리거 조건입니다.
https://developer.apple.com/documentation/usernotifications/unlocationnotificationtrigger
https://velog.io/@panther222128/UNLocationNotificationTrigger
노티피케이션을 보낸 애플 푸시 노티피케이션 서비스(APNs)를 나타내는 트리거 조건입니다.
https://developer.apple.com/documentation/usernotifications/unpushnotificationtrigger
https://velog.io/@panther222128/UNPushNotificationTrigger
로컬 혹은 원격 노티피케이션의 전달을 트리거하는 서브클래스에 대한 일반적인 동작입니다.
https://developer.apple.com/documentation/usernotifications/unnotificationtrigger
https://velog.io/@panther222128/UNNotificationTrigger
앱이 지원하는 노티피케이션 타입을 정의하고, 사용자가 어떻게 ㅇ으답할 것인지를 정의합니다.
노티피케이션을 차별화하고 노티피케이션 인터페이스에 액션 버튼을 추가합니다.
https://developer.apple.com/documentation/usernotifications/declaring_your_actionable_notification_types
https://velog.io/@panther222128/Declaring-Your-Actionable-Notification-Types
앱이 지원할 수 있는 노티피케이션의 타입과 시스템이 표시할 수 있는 커스텀 액션입니다.
https://developer.apple.com/documentation/usernotifications/unnotificationcategory
https://velog.io/@panther222128/UNNotificationCategory
앱이 시스템이 전달하는 노티피케이션에 대한 응답을 수행하는 작업입니다.
https://developer.apple.com/documentation/usernotifications/unnotificationaction
https://velog.io/@panther222128/UNNotificationAction
사용자가 입력한 텍스트를 수용하는 액션입니다.
https://developer.apple.com/documentation/usernotifications/untextinputnotificationaction
https://velog.io/@panther222128/UNTextInputNotificationAction
시스템의 노티피케이션 인터페이스로 사용자 상호작용에 응답합니다. 앱의 커스텀 액션도 포함합니다.
https://developer.apple.com/documentation/usernotifications/handling_notifications_and_notification-related_actions
https://velog.io/@panther222128/Handling-Notifications-and-Notification-Related-Actions
액션 가능한 노티피케이션에 대한 사용자의 응답입니다.
https://developer.apple.com/documentation/usernotifications/unnotificationresponse
https://velog.io/@panther222128/UNNotificationResponse
사용자가 타입하거나 받아쓰기 한 모든 커스텀 텍스트를 포함해, 액션 가능한 노티피케이션에 대한 사용자의 응답입니다.
https://developer.apple.com/documentation/usernotifications/untextinputnotificationresponse
https://velog.io/@panther222128/UNTextInputNotificationResponse
앱에 전달되기 전에 노티피케이션의 컨텐트를 수정하기 위해서 노티피케이션 서비스 앱 호가장을 사용합니다.
사용자의 iOS 기기에서 원격 노티피케이션이 표시되기 전에 원격 노티피케이션의 페이로드를 수정합니다.
https://developer.apple.com/documentation/usernotifications/modifying_content_in_newly_delivered_notifications
https://velog.io/@panther222128/Modifying-Content-in-Newly-Delivered-Notifications
사용자에게 컨텐트가 전달되기 전에 원격 노티피케이션의 컨텐트를 수정하는 객체입니다.
https://developer.apple.com/documentation/usernotifications/unnotificationserviceextension
https://velog.io/@panther222128/UNNotificationServiceExtension