A powerful React Native library for iOS Live Activities using ActivityKit, built with Nitro Modules for optimal performance.
- iOS Live Activities: Create and manage live activities that appear on the lock screen and Dynamic Island
- Real-time Updates: Update activity content in real-time with push notifications or local updates
- TypeScript Support: Fully typed API for enhanced developer experience
- Nitro Modules: Built on Nitro for high-performance native interactions
- Expo Compatible: Easy integration with Expo projects via plugin
# npm
npm install @kingstinct/react-native-activity-kit
# yarn
yarn add @kingstinct/react-native-activity-kit
# bun
bun install @kingstinct/react-native-activity-kit
Add the plugin to your app.json
or app.config.js
:
{
"expo": {
"plugins": [
"@kingstinct/react-native-activity-kit"
]
}
}
The plugin automatically enables Live Activities support in your iOS Info.plist.
For non-Expo projects, add this to your iOS Info.plist
:
<key>NSSupportsLiveActivities</key>
<true/>
import { ActivityKit } from '@kingstinct/react-native-activity-kit';
// Check if Live Activities are available
if (ActivityKit.isAvailable) {
// Start a new activity
const activity = ActivityKit.startActivity(
// Attributes (static data)
{
title: "Pizza Order",
orderId: "12345"
},
// State (dynamic data)
{
status: "preparing",
estimatedTime: 15
},
// Options
{
staleDate: new Date(Date.now() + 30 * 60 * 1000), // 30 minutes
relevanceScore: 0.8
}
);
// Update the activity
activity.update({
status: "ready",
estimatedTime: 0
});
// End the activity
activity.end({
status: "completed"
});
}
// Subscribe to activity updates
ActivityKit.subscribeToActivityUpdates((activity) => {
console.log('Activity updated:', activity.id, activity.activityState);
});
// Subscribe to enablement changes
ActivityKit.subscribeToActivityEnablementUpdates((enabled) => {
console.log('Live Activities enabled:', enabled);
});
This is a monorepo containing:
packages/react-native-activity-kit/
: The main libraryapps/activity-kit-example/
: Example Expo app demonstrating usage
bun install
# Build the library
bun run codegen
# Lint code
bun run lint
# Type checking
bun run typecheck
# Clean build artifacts
bun run clean:node_modules
# Create a changeset for versioning
bun run create-changeset
Built on Nitro Modules for:
- High Performance: Direct Swift/Kotlin bindings
- Type Safety: Full TypeScript support
- Modern Architecture: Uses the latest React Native architecture
- ✅ iOS 16.1+ (Live Activities requirement)
- ❌ Android (Live Activities are iOS-only)
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Make your changes
- Run tests and linting (
bun run lint && bun run typecheck
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
MIT License - see LICENSE for details.