Native Modules

What a Native Module Is and When You Need One

A native module is Kotlin (or Java) on Android and Swift (or Objective-C) on iOS that JavaScript can call. Every storage library above is one. A native component is the visual cousin, a native view rendered from JSX, such as the map in Maps and Location.

Write your own only after three checks. First, search the React Native 36,878 Directory (https://reactnative.directory 748,531 ) and Expo 6,418 's own packages: they cover cameras, sensors, files, notifications and most platform APIs. Second, ask whether the feature is worth maintaining in two languages and two build systems. Third, check that JavaScript really cannot do it. What remains are genuine gaps: a vendor's Android-only SDK, a platform API nobody has wrapped (such as pinned home-screen shortcuts, BookNest Native Module), or heavy work (image processing, cryptography) that belongs in native code. React Native gives you two ways to write one: its own Turbo Native Modules (Turbo Module Architecture-Calling Native Modules) and Expo's Expo Modules API (The Expo Modules API-Expo Modules in Kotlin).