Files
honeyDueKMP/iosApp/push_test_payloads/README.md
Trey t 1e2adf7660 Rebrand from Casera/MyCrib to honeyDue
Total rebrand across KMM project:
- Kotlin package: com.example.casera -> com.tt.honeyDue (dirs + declarations)
- Gradle: rootProject.name, namespace, applicationId
- Android: manifest, strings.xml (all languages), widget resources
- iOS: pbxproj bundle IDs, Info.plist, entitlements, xcconfig
- iOS directories: Casera/ -> HoneyDue/, CaseraTests/ -> HoneyDueTests/, etc.
- Swift source: all class/struct/enum renames
- Deep links: casera:// -> honeydue://, .casera -> .honeydue
- App icons replaced with honeyDue honeycomb icon
- Domains: casera.treytartt.com -> honeyDue.treytartt.com
- Bundle IDs: com.tt.casera -> com.tt.honeyDue
- Database table names preserved

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 06:33:57 -06:00

3.2 KiB

Push Notification Test Payloads

These .apns files can be dragged onto the iOS Simulator to test push notifications with action buttons.

How to Use

  1. Run the app on the iOS Simulator
  2. Drag and drop any .apns file onto the Simulator window
  3. The notification will appear with the appropriate action buttons

Before Testing

Edit the task_id in each file to match a valid task ID from your database.

Available Payloads

File Category Actions Description
task_overdue.apns TASK_ACTIONABLE edit, complete, cancel, mark_in_progress Overdue task notification
task_due_soon.apns TASK_ACTIONABLE edit, complete, cancel, mark_in_progress Task due within threshold
task_in_progress.apns TASK_IN_PROGRESS edit, complete, cancel Task being worked on
task_cancelled.apns TASK_CANCELLED uncancel, delete Cancelled task
task_completed.apns TASK_COMPLETED (none - read only) Completed one-time task
task_assigned.apns TASK_ACTIONABLE edit, complete, cancel, mark_in_progress Task assigned to user
task_generic_free_user.apns TASK_NOTIFICATION_GENERIC (none) Free user sees generic message

iOS Notification Categories

The category field in aps maps to these iOS notification categories:

  • TASK_ACTIONABLE - For overdue, due_soon, upcoming tasks (full action set)
  • TASK_IN_PROGRESS - For tasks currently being worked on
  • TASK_CANCELLED - For cancelled tasks (can uncancel or delete)
  • TASK_COMPLETED - For completed one-time tasks (read-only, no actions)
  • TASK_NOTIFICATION_GENERIC - For free users (no actions, generic message)

Payload Structure

{
    "Simulator Target Bundle": "com.tt.honeyDue.honeyDueDev",
    "aps": {
        "alert": {
            "title": "Notification Title",
            "subtitle": "Residence Name",
            "body": "Notification body text"
        },
        "sound": "default",
        "badge": 1,
        "category": "TASK_ACTIONABLE",
        "mutable-content": 1,
        "thread-id": "task-{id}"
    },
    "task_id": 123,
    "task_name": "Task Name",
    "residence_id": 1,
    "residence_name": "Residence Name",
    "notification_type": "task_overdue|task_due_soon|task_completed|task_assigned",
    "button_types": ["edit", "complete", "cancel", "mark_in_progress"],
    "is_premium": true
}

Custom Data Fields

Field Type Description
task_id int The task ID to navigate to when tapped
task_name string Display name of the task
residence_id int The residence ID
residence_name string Display name of the residence
notification_type string Type of notification (for analytics/logging)
button_types array Available actions for this task state
is_premium bool Whether user is premium (affects display)

Notes

  • The Simulator Target Bundle must match your app's bundle identifier
  • mutable-content: 1 allows the Notification Service Extension to modify content
  • thread-id groups related notifications together
  • The app must register notification categories on launch for actions to work