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.