expo-module

Create Expo native modules and views with Swift, Kotlin, and TypeScript bindings.

Updated Jan 8, 2026
One-click install
npx skills add https://github.com/soham2008xyz/trade-tycoon --skill expo-module-soham2008xyz
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: expo-module
Source: https://github.com/soham2008xyz/trade-tycoon/tree/main/.agents/skills/expo-module
Command: npx skills add https://github.com/soham2008xyz/trade-tycoon --skill expo-module-soham2008xyz

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you create and maintain Expo native modules and native views without guessing the correct Expo Modules API structure across iOS, Android, and the TypeScript bridge.

Core Features & Use Cases

  • Module authoring: Define native functionality with the Expo Modules API DSL, including Functions, AsyncFunctions, Constants, Properties, and Events.
  • Native view integration: Implement reusable native UI components via the View API, including props, events, and view lifecycle hooks.
  • Configuration & autolinking: Use expo-module.config.json to register platforms and modules so Expo can autolink them correctly.
  • Lifecycle hooks: Add deterministic behavior using module/app/activity lifecycle handlers for resource management and app state changes.
  • Config plugin support: Write config plugins to modify iOS/Android project files during prebuild and read configuration values in native code.
  • Cross-platform consistency: Apply a shared conceptual model for Swift (iOS) and Kotlin (Android) with TypeScript bindings for the JS side.

Quick Start

Create a new Expo module scaffold with create-expo-module, then implement your required module features (functions, events, properties, or a native view) and finalize expo-module.config.json so Expo autolinks the module on the target platforms.

Frequently Asked Questions about expo-module

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

FAQPage Schema
How do I create an Expo native module using the Expo Modules API?

To create an Expo native module, scaffold it with create-expo-module, then define native functionality using the Expo Modules API DSL in Swift and Kotlin, and finalize expo-module.config.json for autolinking.

How do I add custom native UI components to an Expo app?

Adding custom native UI components to an Expo app requires implementing the View API to handle props, events, and view lifecycle hooks, alongside matching TypeScript bindings for JavaScript integration.

What is expo-module.config.json used for during autolinking?

expo-module.config.json registers platforms and modules so Expo can autolink them correctly, ensuring deterministic integration of native code across iOS and Android environments.

How does event-driven communication work between Swift or Kotlin and Expo?

Event-driven communication in Expo native modules works by defining Events within the Expo Modules API DSL, allowing Swift and Kotlin code to emit signals that JavaScript listeners can capture.

Can I write config plugins to modify iOS and Android project files in Expo?

Yes, you can write Expo config plugins to modify iOS and Android project files during prebuild and read configuration values directly in native code.

Do I need to write matching TypeScript bindings for Expo native modules?

Yes, you must write matching TypeScript bindings for the JavaScript side to ensure cross-platform consistency when defining native functions, properties, and events in Swift and Kotlin.