diff --git a/.changeset/afraid-wings-admire.md b/.changeset/afraid-wings-admire.md new file mode 100644 index 0000000..6d0a1c9 --- /dev/null +++ b/.changeset/afraid-wings-admire.md @@ -0,0 +1,5 @@ +--- +"@kingstinct/react-native-activity-kit": patch +--- + +update readme diff --git a/README.md b/README.md index 5c15e19..5fa0c50 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,168 @@ -# react-native-activity-kit +# @kingstinct/react-native-activity-kit -To install dependencies: +A powerful React Native library for iOS Live Activities using ActivityKit, built with Nitro Modules for optimal performance. + +## 📱 Features + +- **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 + +## 🚀 Installation + +```bash +# npm +npm install @kingstinct/react-native-activity-kit + +# yarn +yarn add @kingstinct/react-native-activity-kit + +# bun +bun install @kingstinct/react-native-activity-kit +``` + +## ⚙️ Configuration + +### Expo Setup + +Add the plugin to your `app.json` or `app.config.js`: + +```json +{ + "expo": { + "plugins": [ + "@kingstinct/react-native-activity-kit" + ] + } +} +``` + +The plugin automatically enables Live Activities support in your iOS Info.plist. + +### Manual Setup + +For non-Expo projects, add this to your iOS `Info.plist`: + +```xml +NSSupportsLiveActivities + +``` + +## 📖 Usage + +```typescript +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" + }); +} +``` + +### Listening to Updates + +```typescript +// 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); +}); +``` + +## 🏗️ Development + +This is a monorepo containing: + +- `packages/react-native-activity-kit/`: The main library +- `apps/activity-kit-example/`: Example Expo app demonstrating usage + +### Setup ```bash bun install ``` -To run: +### Development Commands ```bash -bun run index.ts +# 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 ``` -This project was created using `bun init` in bun v1.2.19. [Bun](https://bun.com) is a fast all-in-one JavaScript runtime. +## 🛠️ Architecture + +Built on [Nitro Modules](https://github.com/mrousavy/nitro) for: +- **High Performance**: Direct Swift/Kotlin bindings +- **Type Safety**: Full TypeScript support +- **Modern Architecture**: Uses the latest React Native architecture + +## 📱 Platform Support + +- ✅ iOS 16.1+ (Live Activities requirement) +- ❌ Android (Live Activities are iOS-only) + +## 🤝 Contributing + +1. Fork the repository +2. Create your feature branch (`git checkout -b feature/amazing-feature`) +3. Make your changes +4. Run tests and linting (`bun run lint && bun run typecheck`) +5. Commit your changes (`git commit -m 'Add amazing feature'`) +6. Push to the branch (`git push origin feature/amazing-feature`) +7. Open a Pull Request + +## 📄 License + +MIT License - see [LICENSE](LICENSE) for details. + +## 🔗 Links + +- [GitHub Repository](https://github.com/kingstinct/react-native-activity-kit) +- [npm Package](https://www.npmjs.com/package/@kingstinct/react-native-activity-kit) +- [iOS ActivityKit Documentation](https://developer.apple.com/documentation/activitykit) diff --git a/packages/react-native-activity-kit/NitroActivityKit.podspec b/packages/react-native-activity-kit/NitroActivityKit.podspec index a3307a2..5657998 100644 --- a/packages/react-native-activity-kit/NitroActivityKit.podspec +++ b/packages/react-native-activity-kit/NitroActivityKit.podspec @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.authors = package["author"] s.platforms = { :ios => min_ios_version_supported } - s.source = { :git => "https://github.com/mrousavy/nitro.git", :tag => "#{s.version}" } + s.source = { :git => "https://github.com/kingstinct/react-native-activity-kit.git", :tag => "#{s.version}" } s.source_files = [ # Implementation (Swift) diff --git a/packages/react-native-activity-kit/NitroActivityKitCore.podspec b/packages/react-native-activity-kit/NitroActivityKitCore.podspec index f1646ca..0c8cc37 100644 --- a/packages/react-native-activity-kit/NitroActivityKitCore.podspec +++ b/packages/react-native-activity-kit/NitroActivityKitCore.podspec @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.authors = package["author"] s.platforms = { :ios => min_ios_version_supported } - s.source = { :git => "https://github.com/mrousavy/nitro.git", :tag => "#{s.version}" } + s.source = { :git => "https://github.com/kingstinct/react-native-activity-kit.git", :tag => "#{s.version}" } # Only include the essential files for App Extensions s.source_files = [ diff --git a/packages/react-native-activity-kit/package.json b/packages/react-native-activity-kit/package.json index 17f4773..bf5b25b 100644 --- a/packages/react-native-activity-kit/package.json +++ b/packages/react-native-activity-kit/package.json @@ -40,14 +40,14 @@ ], "repository": { "type": "git", - "url": "git+https://github.com/mrousavy/nitro.git" + "url": "git+https://github.com/kingstinct/react-native-activity-kit.git" }, "author": "Marc Rousavy (https://github.com/mrousavy)", "license": "MIT", "bugs": { - "url": "https://github.com/mrousavy/nitro/issues" + "url": "https://github.com/kingstinct/react-native-activity-kit/issues" }, - "homepage": "https://github.com/mrousavy/nitro#readme", + "homepage": "https://github.com/kingstinct/react-native-activity-kit#readme", "publishConfig": { "registry": "https://registry.npmjs.org/" },