{"id":19641388,"url":"https://github.com/anbalagand/remindme","last_synced_at":"2026-05-16T05:34:39.201Z","repository":{"id":93798750,"uuid":"527545149","full_name":"AnbalaganD/RemindMe","owner":"AnbalaganD","description":"The UNUserNotification Sample illustrates the practical implementation, benefits, and constraints of utilizing the framework APIs for managing user notifications.","archived":false,"fork":false,"pushed_at":"2024-07-30T09:52:51.000Z","size":427,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-09T19:13:47.555Z","etag":null,"topics":["customi","ios","local-notifications","notification-service","push-notification","swift","swiftui","uikit","unusernotifications"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AnbalaganD.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-22T12:00:40.000Z","updated_at":"2024-07-30T09:52:54.000Z","dependencies_parsed_at":"2023-03-13T17:10:19.079Z","dependency_job_id":null,"html_url":"https://github.com/AnbalaganD/RemindMe","commit_stats":null,"previous_names":["anbalagand/foodie"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnbalaganD%2FRemindMe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnbalaganD%2FRemindMe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnbalaganD%2FRemindMe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnbalaganD%2FRemindMe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AnbalaganD","download_url":"https://codeload.github.com/AnbalaganD/RemindMe/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240947671,"owners_count":19883031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["customi","ios","local-notifications","notification-service","push-notification","swift","swiftui","uikit","unusernotifications"],"created_at":"2024-11-11T14:09:06.431Z","updated_at":"2026-05-16T05:34:39.162Z","avatar_url":"https://github.com/AnbalaganD.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UNUserNotification Framework Sample Project\n\n## Overview\n\nFrom iOS 10.0 apple provide UserNotifications framework to handling local and remote notification. \n\n## Feature\n\n1. Permission\n2. Grouping\n3. Trigger\n4. Attachment and Sound\n5. Category and Action\n6. Service extension\n7. Content extension\n\n\n### Permission\n\niOS 10.0 introduce new `UserNotification` framework to handle both remote and local notification. And support badge, sound, alert type authorization as well.\n\niOS 12.0 apple introduce new authorization option `provisional`, `providesAppNotificationSettings` and `criticalAlert`\n\n`provisional`: The ability to post noninterrupting notifications provisionally to the Notification Center.\u003cbr\u003e\n`providesAppNotificationSettings`: An option indicating the system should display a button for in-app notification settings.\u003cbr\u003e\n`criticalAlert`: The ability to play sounds for critical alerts.\n\n\n### Grouping\n\nSet `threadIdentifier` in `UNMutableNotificationContent` system group the notification using this identifier.\n\n\n### Trigger\n\niOS support four type of Trigger to schedule notification\n\n1. UNCalendarNotificationTrigger\n2. UNTimeIntervalNotificationTrigger\n3. UNLocationNotificationTrigger\n4. UNPushNotificationTrigger\n\nNote: Except `UNPushNotificationTrigger` we can use all other trigger to schedule our notification.\n\n\n### Attachment and Sound\n\nFrom iOS 10.0 `UserNotification` framework support to customize notification sound and notification can show attachments.\n\n__Limitation:__ \n* Its support multiple notification but show first attachment only in notification alert.\n* Notification only support .aiff, .wav, or .caf sound file.\n\n\n### Category and Action\n\n`UserNotification` support notification category. We must register our category objects using the `setNotificationCategories(_:)` method of `UNUserNotificationCenter`. Each notification category have associated action. Based on category system will show the appropriate action\n\n\n### Service extension\n\nService extension give the opportunity to modify notification content before delivery to user. We can use this opportunity to modify notification content.\nRemote notification payload we must include `mutable-content: 1` within apns object otherwise service extension not work.\n\n\n###  Content extension\n\nWe can customize notification appearance using `UNNotificationContentExtension`. We shoud adopt this protocol in the custom UIViewController subclass that we use to present our interface\n\n\n### Conclusion\n\nThis framework definitely do lot than what we saw here. If you want to learn more should checkout official apple documentation.\n\n[UserNotification](https://developer.apple.com/documentation/usernotifications)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanbalagand%2Fremindme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanbalagand%2Fremindme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanbalagand%2Fremindme/lists"}