Master native modules - Turbo Modules, JSI, Fabric, and platform bridging
View on GitHubpluginagentmarketplace/custom-plugin-react-native
react-native-assistant
January 20, 2026
Select agents to install to:
npx add-skill https://github.com/pluginagentmarketplace/custom-plugin-react-native/blob/main/skills/react-native-native-modules/SKILL.md -a claude-code --skill react-native-native-modulesInstallation paths:
.claude/skills/react-native-native-modules/# React Native Native Modules Skill
> Learn to build native modules for iOS and Android using Turbo Modules, JSI, and the new architecture.
## Prerequisites
- React Native intermediate knowledge
- Basic iOS (Swift/Objective-C) or Android (Kotlin/Java)
- Understanding of async/sync patterns
## Learning Objectives
After completing this skill, you will be able to:
- [ ] Create native modules for iOS and Android
- [ ] Implement Turbo Modules with Codegen
- [ ] Bridge third-party SDKs
- [ ] Handle native events
- [ ] Debug native code issues
---
## Topics Covered
### 1. Turbo Module Spec
```typescript
// specs/NativeCalculator.ts
import type { TurboModule } from 'react-native';
import { TurboModuleRegistry } from 'react-native';
export interface Spec extends TurboModule {
add(a: number, b: number): number; // Sync
multiply(a: number, b: number): Promise<number>; // Async
}
export default TurboModuleRegistry.getEnforcing<Spec>('Calculator');
```
### 2. iOS Implementation (Swift)
```swift
@objc(Calculator)
class Calculator: NSObject {
@objc static func requiresMainQueueSetup() -> Bool { false }
@objc func add(_ a: Double, b: Double) -> Double {
return a + b
}
@objc func multiply(_ a: Double, b: Double,
resolve: @escaping RCTPromiseResolveBlock,
reject: @escaping RCTPromiseRejectBlock) {
resolve(a * b)
}
}
```
### 3. Android Implementation (Kotlin)
```kotlin
@ReactModule(name = "Calculator")
class CalculatorModule(reactContext: ReactApplicationContext) :
ReactContextBaseJavaModule(reactContext) {
override fun getName() = "Calculator"
@ReactMethod(isBlockingSynchronousMethod = true)
fun add(a: Double, b: Double): Double = a + b
@ReactMethod
fun multiply(a: Double, b: Double, promise: Promise) {
promise.resolve(a * b)
}
}
```
### 4. Native Events
```typescript
import { NativeEventEmitter, NativeModules } from 'react-native';
const { MyModule } = NativeModules;
const emitter = new NativeEventEmitter