SKILL

expo-module

Guide for creating and writing Expo native modules and views using the Expo Modules API (Swift, Kotlin, TypeScript). Covers module definition DSL, native views, shared objects, config plugins, lifecycle hooks, autolinking, and type system. Use when building or modifying native modules for Expo. Not for migrating an existing Swift module from the definition DSL to the Expo Modules API 2.0 macros; use expo-migrate-module (from the expo-experiments plugin) for that.

Target: Mobile development. Automatically collected · unverified.

Excerpt from the author’s documentation

Extracted from a fixed version of SKILL.md in its original language. This is the author’s documentation; installation, compatibility and runtime results have not been verified by this site.

Read the original English text

Topics in the source

  • Writing Expo Modules
  • When to Use
  • References
  • Quick Start
  • Recommended Workflow
  • Practical Scaffolding Rules
  • Core File Shapes
  • Module Structure Reference

Complete reference for building native modules and views using the Expo Modules API. Covers Swift (iOS), Kotlin (Android), and TypeScript. Creating a new Expo native module or native view Adding native functionality (camera, sensors, system APIs) to an Expo app Wrapping platform SDKs for React Native consumption Building config plugins that modify native project files Adding Android, Apple, or web support to an existing Expo module Editing expo-module.config.json, config plugins, or lifecycle hooks To migrate an existing Swift module from the definition DSL to the Expo Modules API 2.0 macros (@ExpoModule, @JS, @Event), use the expo-migrate-module skill (from the expo-experiments plugin) instead. Consult these resources as needed: Prefer create-expo-module over manually creating native module files and directories. In practice, the best path is usually to create the scaffold first and then build on top of it. The scaffold sets up the expected layout, expo-module.config.json, podspec or Gradle files, TypeScript bindings, and the standalone example app flow. If an existing Expo module only needs another platform, use create-expo-module add-platform-support instead of manually copying

This is an excerpt. Refer to the complete source and its current requirements.

Source repository
expo/skills
Source file
plugins/expo/skills/expo-module/SKILL.md
Fixed revision
a9e5bd3fa00b4e61f632e43f85da73aee1942582
Read the complete original documentation ↗

Sources and evidence

This record was collected automatically. Its documentation, suitability and runtime behavior have not been manually verified.

Author: Expo Skills · original repository metadata. Documentation review: Not reviewed. Last source check: 2026-11-09T14:01:42.069Z.

Categories are inferred from names, descriptions and paths. They do not establish compatibility.

License and attribution

MIT. Third-party content and copyright remain with their authors. Refer to the original license and terms.

Original license ↗

Synchronization, copying and user-reported success do not mark a resource as runtime-tested.

Limitations and notes

  • Collecting metadata does not mean this site has installed, adapted, runtime-tested or security-reviewed the resource.