pluginagentmarketplace/custom-plugin-react-native

react-native-native-modules

Master native modules - Turbo Modules, JSI, Fabric, and platform bridging

First seen Jan 21, 2026

Installation

$ npx skills add pluginagentmarketplace/custom-plugin-react-native --skill react-native-native-modules

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from pluginagentmarketplace/custom-plugin-react-native.

npx skills add pluginagentmarketplace/custom-plugin-react-native

Browse all from pluginagentmarketplace/custom-plugin-react-native

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 10
License LICENSE
Default branch main
Open issues 1
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Version2.0.0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,575 B
  • docs SUMMARY.md 108 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 33 installs

SKILL.md

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

// 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)

@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)

@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

import { NativeEventEmitter, NativeModules } from 'react-native';

const { MyModule } = NativeModules;
const emitter = new NativeEventEmitter(MyModule);

// Subscribe
const subscription = emitter.addListener('onProgress', (data) => {
  console.log('Progress:', data.percent);
});

// Cleanup
subscription.remove();

5. When to Use Native Modules

Scenario Solution
Access native APIs Native module
Performance-critical JSI/Turbo Module
Third-party SDK Bridge wrapper
UI component Fabric component

Quick Start Example

// JavaScript usage
import NativeCalculator from './specs/NativeCalculator';

// Sync call (blocks JS thread briefly)
const sum = NativeCalculator.add(5, 3);
console.log('Sum:', sum); // 8

// Async call (non-blocking)
const product = await NativeCalculator.multiply(5, 3);
console.log('Product:', product); // 15

Common Errors & Solutions

Error Cause Solution
"Module not found" Not linked Run pod install
Crash on sync Main thread Use async or background
Type mismatch Codegen issue Regenerate specs

Validation Checklist

  • Module loads on both platforms
  • Sync methods don't block UI
  • Async methods resolve correctly
  • Events fire and cleanup properly

Usage

Skill("react-native-native-modules")

Bonded Agent: 04-react-native-native