Skip to main content

Nitro Modules

A Nitro Module is a library built with Nitro. It may contain one or more Hybrid Objects.

Structure​

A Nitro Module is just like a regular native module, a nitro.json configuration file, and required autolinking hooks.

Creating a Nitro Module​

1. Initialize the template​

To create a new Nitro Module, simply run nitrogen init <moduleName>:

npx nitrogen@alpha init react-native-math

2. Implement your Hybrid Objects​

Once you set up the library, you can start implementing your Hybrid Objects!

With Nitrogen you can ✨ automagically ✨ generate all native interfaces from your TypeScript definitions. The generated iOS initialization code registers the classes with HybridClassRegistry when the library loads. Include it through the SwiftPM setup.

See Hybrid Objects (Implementation) for more information.

3. Set up an example app​

After creating a Nitro Module, it's time to set up an example app to test your library!

npx create-expo-app@latest
tip

The Hybrid Objects from your Nitro Module will be registered in the HybridClassRegistry. This registration process needs to be called from somewhere:

  • In React Native, this happens in the *Package.kt file which calls .initializeNative().
  • If you are not using React Native, you need to manually call .initializeNative() in your library's entry point.