expo-module

Create Expo native modules and views using the Expo Modules API.

Updated May 7, 2026
One-click install
npx skills add https://github.com/softwarebyze/Backgammon-Mastermind --skill expo-module-softwarebyze
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: expo-module
Source: https://github.com/softwarebyze/Backgammon-Mastermind/tree/main/.agents/skills/expo-module
Command: npx skills add https://github.com/softwarebyze/Backgammon-Mastermind --skill expo-module-softwarebyze

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

It helps you implement native capabilities in an Expo app without leaving the Expo Modules API workflow, so you can expose Swift/Kotlin code to JavaScript in a consistent, maintainable way.

Core Features & Use Cases

  • Native Modules & Views: Define native module functions, async functions, constants, properties, and event emitters, and create native UI components with prop/event lifecycles.
  • Cross-Platform Implementation: Use the shared module-definition DSL patterns for iOS (Swift) and Android (Kotlin), plus TypeScript bindings via requireNativeModule and requireNativeView.
  • Config Plugins & Lifecycle Hooks: Modify native project configuration with Expo config plugins and respond to app/module lifecycle events (OnCreate/OnDestroy, foreground/background, activity/application events).
  • Autolinking & Module Registration: Configure expo-module.config.json so Expo can discover and link your module without manual native project edits.

Quick Start

Start by scaffolding a new module with create-expo-module, choosing the platforms and the specific features you need, then replace the generated example code with your real native implementation.

Frequently Asked Questions about expo-module

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build native Expo modules that expose Swift and Kotlin code to JavaScript?

To build native Expo modules, you use the Expo Modules API to define module functions, constants, and event emitters in Swift and Kotlin, then expose them to JavaScript with TypeScript bindings via requireNativeModule.

What is the best way to create native UI components in a React Native Expo app?

Creating native views in Expo involves using the module-definition DSL to handle prop and event lifecycles for iOS and Android, then exporting them to JavaScript using requireNativeView with matching TypeScript bindings.

How does autolinking work for custom Expo modules?

Autolinking for custom Expo modules works by reading the expo-module.config.json file, which allows Expo to automatically discover and link your module without requiring manual native project edits.

Can I modify native project configuration automatically with Expo config plugins?

Yes, you can modify native project configuration by writing Expo config plugins, which also allow you to respond to app and module lifecycle events like OnCreate, OnDestroy, and foreground or background transitions.

Do I need to manually register native modules in iOS and Android when using the Expo Modules API?

No, you do not need to manually register native modules when using the Expo Modules API; configuring the expo-module.config.json ensures the module is automatically discovered and linked across platforms.

How do I export asynchronous functions from Kotlin and Swift to JavaScript in an Expo module?

You export asynchronous functions by defining async functions within the module-definition DSL in Swift and Kotlin, ensuring the corresponding TypeScript bindings match the native signatures for safe runtime usage.