Bird
Raised Fist0
React Nativemobile~5 mins

Native modules concept in React Native - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a native module in React Native?
A native module is a piece of code written in native platform languages (like Java for Android or Swift/Objective-C for iOS) that can be called from React Native JavaScript code to access platform-specific features.
Click to reveal answer
beginner
Why do we use native modules in React Native apps?
We use native modules to access device features or APIs that are not available in React Native's JavaScript environment, like sensors, camera controls, or advanced system functions.
Click to reveal answer
beginner
Which languages are used to write native modules for Android and iOS?
Android native modules are usually written in Java or Kotlin, while iOS native modules are written in Objective-C or Swift.
Click to reveal answer
intermediate
How does React Native communicate with native modules?
React Native uses a bridge to send messages between JavaScript and native code asynchronously, allowing JavaScript to call native functions and receive results.
Click to reveal answer
beginner
What is a common use case for creating a native module?
A common use case is when you need to use a device feature not supported by React Native, like accessing a custom Bluetooth API or advanced camera controls.
Click to reveal answer
What language is typically used to write native modules for iOS in React Native?
AJava
BJavaScript
CSwift
DKotlin
Why might you create a native module in a React Native app?
ATo replace React Native entirely
BTo improve JavaScript performance
CTo write UI components in native code
DTo access platform-specific features not available in React Native
How does React Native communicate with native modules?
AUsing a bridge asynchronously
BDirect synchronous calls
CThrough REST API calls
DBy embedding native code in JavaScript
Which of these is NOT a typical language for writing native modules?
APython
BKotlin
CObjective-C
DJava
What is the main benefit of using native modules?
AFaster JavaScript execution
BAccess to native device features
CSimpler app design
DNo need for native code knowledge
Explain what a native module is and why it is important in React Native development.
Think about how JavaScript talks to native code to use device features.
You got /4 concepts.
    Describe the process of creating and using a native module in a React Native app.
    Consider the steps from native code to JavaScript usage.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of native modules in React Native?
      easy
      A. To access device features not available in JavaScript
      B. To style components using CSS
      C. To manage app navigation
      D. To write UI components in JavaScript

      Solution

      1. Step 1: Understand React Native limitations

        JavaScript in React Native cannot access all device hardware or OS features directly.
      2. Step 2: Role of native modules

        Native modules are written in native code to bridge this gap and provide access to those features.
      3. Final Answer:

        To access device features not available in JavaScript -> Option A
      4. Quick Check:

        Native modules = access device features [OK]
      Hint: Native modules bridge JavaScript to device features [OK]
      Common Mistakes:
      • Thinking native modules are for styling
      • Confusing native modules with navigation libraries
      • Believing native modules are UI components
      2. Which syntax correctly imports a native module named CameraModule in React Native?
      easy
      A. import CameraModule from 'react-native';
      B. import { NativeModules } from 'react-native'; const { CameraModule } = NativeModules;
      C. const CameraModule = require('CameraModule');
      D. import CameraModule from 'NativeModules';

      Solution

      1. Step 1: Recall native module import pattern

        Native modules are accessed via the NativeModules object from 'react-native'.
      2. Step 2: Correct destructuring syntax

        We import NativeModules, then extract CameraModule from it using const { CameraModule } = NativeModules.
      3. Final Answer:

        import { NativeModules } from 'react-native'; const { CameraModule } = NativeModules; -> Option B
      4. Quick Check:

        NativeModules destructuring = correct import [OK]
      Hint: Always import NativeModules then destructure [OK]
      Common Mistakes:
      • Importing native module directly from 'react-native'
      • Using require without NativeModules
      • Wrong import source string
      3. Given this code snippet, what will be logged if the native module method getBatteryLevel returns 85 asynchronously?
      import { NativeModules } from 'react-native';
      const { BatteryModule } = NativeModules;
      
      BatteryModule.getBatteryLevel().then(level => {
        console.log('Battery level is: ' + level);
      });
      medium
      A. Error: getBatteryLevel is not a function
      B. Battery level is: undefined
      C. Battery level is: [object Promise]
      D. Battery level is: 85

      Solution

      1. Step 1: Understand asynchronous method call

        getBatteryLevel returns a Promise that resolves to 85.
      2. Step 2: Analyze the .then callback

        The callback receives the resolved value 85 and logs 'Battery level is: 85'.
      3. Final Answer:

        Battery level is: 85 -> Option D
      4. Quick Check:

        Promise resolves to 85, logged correctly [OK]
      Hint: Promises log resolved value inside .then [OK]
      Common Mistakes:
      • Logging the Promise object instead of resolved value
      • Assuming synchronous return
      • Confusing undefined with error
      4. What is wrong with this native module usage code?
      import { NativeModules } from 'react-native';
      const { LocationModule } = NativeModules;
      
      const location = LocationModule.getCurrentLocation();
      console.log(location);
      medium
      A. getCurrentLocation likely returns a Promise but is used synchronously
      B. getCurrentLocation is not imported correctly
      C. NativeModules cannot be destructured
      D. console.log cannot print location objects

      Solution

      1. Step 1: Identify asynchronous method usage

        Native module methods like getCurrentLocation usually return Promises.
      2. Step 2: Check synchronous usage

        The code assigns the Promise to location and logs it immediately, not waiting for resolution.
      3. Final Answer:

        getCurrentLocation likely returns a Promise but is used synchronously -> Option A
      4. Quick Check:

        Async method used without await or .then [OK]
      Hint: Async native methods need await or .then [OK]
      Common Mistakes:
      • Ignoring Promise nature of native methods
      • Trying to destructure NativeModules incorrectly
      • Assuming console.log can't print objects
      5. You want to create a native module to access the phone's flashlight. Which steps are necessary to correctly use this native module in your React Native app?
      hard
      A. Write native code, but no need to register module or import it in JavaScript
      B. Write JavaScript code only, import flashlight from 'react-native', call methods synchronously
      C. Write native code for flashlight, register module, import NativeModules, call methods asynchronously
      D. Use only React Native UI components, no native code needed

      Solution

      1. Step 1: Develop native code and register module

        You must write native code (Java/Swift/Obj-C) to control flashlight and register it with React Native.
      2. Step 2: Import and call from JavaScript

        Import NativeModules, extract your flashlight module, and call its methods asynchronously.
      3. Final Answer:

        Write native code for flashlight, register module, import NativeModules, call methods asynchronously -> Option C
      4. Quick Check:

        Native code + registration + async calls = correct usage [OK]
      Hint: Native module needs native code, registration, async JS calls [OK]
      Common Mistakes:
      • Skipping native code or registration
      • Calling native methods synchronously
      • Assuming React Native UI covers hardware access
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard