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-kitAdd 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 availableif(ActivityKit.isAvailable){// Start a new activityconstactivity=ActivityKit.startActivity(// Attributes (static data){title: "Pizza Order",orderId: "12345"},// State (dynamic data){status: "preparing",estimatedTime: 15},// Options{staleDate: newDate(Date.now()+30*60*1000),// 30 minutesrelevanceScore: 0.8});// Update the activityactivity.update({status: "ready",estimatedTime: 0});// End the activityactivity.end({status: "completed"});}// Subscribe to activity updatesActivityKit.subscribeToActivityUpdates((activity)=>{console.log('Activity updated:',activity.id,activity.activityState);});// Subscribe to enablement changesActivityKit.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-changesetBuilt 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.