Skip to content
Back to skills

Add Live Activity

ASecurity

Add a Live Activity for Lock Screen + Dynamic Island via expo-live-activity. Use when the user says 'Live Activity', 'Dynamic Island', 'Lock Screen widget', 'live updates'.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 4, 2026
developmentswiftbashreact

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 3 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add khadinakbarlabs/expo-mobile-app-builder --skill add-live-activity --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Add Live Activity?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Add Live Activity
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/khadinakbarlabs-add-live-activity/badge)](https://www.skillsdirectory.com/skills/khadinakbarlabs-add-live-activity)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "add-live-activity"
description: "Add a Live Activity for Lock Screen + Dynamic Island via expo-live-activity. Use when the user says 'Live Activity', 'Dynamic Island', 'Lock Screen widget', 'live updates'."
---

# Add Live Activity

Lock Screen + Dynamic Island updates via ActivityKit. Use for time-bound info: orders, rides, sports, workouts, timers.

## Install
```bash
npm install expo-live-activity
npm exec --no -- expo prebuild --clean
```

(For more control, also see Voltra: `react-native-live-activity`.)

## app.json
```json
{
  "expo": {
    "plugins": ["expo-live-activity"],
    "ios": {
      "infoPlist": {
        "NSSupportsLiveActivities": true,
        "NSSupportsLiveActivitiesFrequentUpdates": true
      }
    }
  }
}
```

## Define attributes (Swift, in generated `ios/` after prebuild)
```swift
struct DeliveryAttributes: ActivityAttributes {
    public struct ContentState: Codable, Hashable {
        var minutesAway: Int
        var status: String
    }
    var orderNumber: String
}
```

## Start / update / end from JS
```tsx
import * as LiveActivity from 'expo-live-activity';

// Start
const activityId = await LiveActivity.startActivity({
  attributes: { orderNumber: '1234' },
  contentState: { minutesAway: 30, status: 'Preparing' },
});

// Update
await LiveActivity.updateActivity(activityId, { minutesAway: 20, status: 'On the way' });

// End
await LiveActivity.endActivity(activityId, { minutesAway: 0, status: 'Delivered' });
```

## Push updates via APNs
Topic: `<bundle-id>.push-type.liveactivity`. Push the activity's pushToken (returned from startActivity) for remote updates.

## Limitation
- iOS-only (no Android)
- 4-hour max activity duration; can be extended via push update

## Reference
`references/01-expo-sdk-54.md`

Files in this skill

  • SKILL.md1.7 KB
  • agents/openai.yaml182 B
  • references/01-expo-sdk-54.md1.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…