Bird
Raised Fist0
React Nativemobile~5 mins

Device info and haptics in React Native - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the react-native-device-info library?
It provides easy access to device information like model, system version, unique ID, and more, helping apps adapt to different devices.
Click to reveal answer
beginner
How do you trigger a simple vibration in React Native?
Use the Vibration.vibrate() method from the react-native module to make the device vibrate.
Click to reveal answer
beginner
What is haptic feedback and why is it useful in mobile apps?
Haptic feedback is a tactile response (like vibration) that confirms user actions, improving user experience by making interactions feel more natural.
Click to reveal answer
intermediate
Name one way to get the device's unique ID in React Native.
Using DeviceInfo.getUniqueId() from the react-native-device-info library returns a unique identifier for the device.
Click to reveal answer
intermediate
What should you consider when using vibration on different devices?
Different devices support different vibration patterns and durations; also, some users may disable vibration, so always provide alternative feedback.
Click to reveal answer
Which React Native module is used to access device vibration?
AHaptics
BDeviceInfo
CSensors
DVibration
What does DeviceInfo.getSystemVersion() return?
AUnique device ID
BDevice model name
COperating system version
DBattery level
Why is haptic feedback important in mobile apps?
ATo provide tactile confirmation of user actions
BTo improve app speed
CTo save battery life
DTo change screen brightness
Which of these is NOT a typical device info property?
AUser's password
BSystem version
CDevice model
DUnique device ID
How can you make a device vibrate for 1 second in React Native?
AVibration.vibrate()
BVibration.vibrate(1000)
CVibration.vibrate(true)
DVibration.vibrate('1s')
Explain how you would use React Native to get device information and provide haptic feedback in an app.
Think about libraries and modules that give device details and how vibration can improve user experience.
You got /3 concepts.
    Describe some challenges you might face when using vibration and device info across different mobile devices.
    Consider how Android and iOS might behave differently and user preferences.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which React Native module provides information about the device's operating system?
      easy
      A. Platform
      B. Dimensions
      C. Vibration
      D. StatusBar

      Solution

      1. Step 1: Identify the module for OS info

        The Platform module in React Native gives details about the device OS like 'ios' or 'android'.
      2. Step 2: Compare with other modules

        Dimensions gives screen size, Vibration controls haptic feedback, and StatusBar manages the status bar UI, not OS info.
      3. Final Answer:

        Platform -> Option A
      4. Quick Check:

        OS info = Platform [OK]
      Hint: Platform module always gives OS info in React Native [OK]
      Common Mistakes:
      • Confusing Dimensions with OS info
      • Thinking Vibration provides device info
      • Assuming StatusBar relates to OS details
      2. Which of the following is the correct syntax to get the screen width using React Native's Dimensions module?
      easy
      A. Dimensions.screen.width()
      B. Dimensions.width()
      C. Dimensions.get('screen').width
      D. Dimensions.getWidth('screen')

      Solution

      1. Step 1: Recall Dimensions API usage

        The correct method to get screen size is Dimensions.get('screen'), which returns an object with width and height.
      2. Step 2: Access width property correctly

        Access the width by .width property, so Dimensions.get('screen').width is correct syntax.
      3. Final Answer:

        Dimensions.get('screen').width -> Option C
      4. Quick Check:

        Screen width = Dimensions.get('screen').width [OK]
      Hint: Use Dimensions.get('screen').width to get screen width [OK]
      Common Mistakes:
      • Calling width as a function instead of property
      • Using wrong method names like getWidth
      • Accessing screen as a property instead of argument
      3. What will be the result of this React Native code snippet?
      import { Vibration } from 'react-native';
      
      Vibration.vibrate(1000);
      Choose the correct behavior.
      medium
      A. The device vibrates for 1 second
      B. The device vibrates indefinitely until stopped
      C. The device vibrates for 100 milliseconds
      D. No vibration occurs because vibrate needs a pattern array

      Solution

      1. Step 1: Understand Vibration.vibrate parameter

        Passing a number like 1000 to Vibration.vibrate() makes the device vibrate for that many milliseconds (1000 ms = 1 second).
      2. Step 2: Check other options

        Indefinite vibration requires a pattern with repeat, 100 ms is too short, and vibrate accepts a number directly, so no pattern array is needed.
      3. Final Answer:

        The device vibrates for 1 second -> Option A
      4. Quick Check:

        Vibration.vibrate(1000) = 1 second vibration [OK]
      Hint: Number argument in vibrate() is vibration duration in ms [OK]
      Common Mistakes:
      • Thinking vibrate needs a pattern array always
      • Confusing milliseconds with seconds
      • Assuming vibrate runs indefinitely by default
      4. Identify the error in this React Native code snippet that tries to vibrate the device:
      import { Vibration } from 'react-native';
      
      Vibration.vibrate([500, 1000]);
      medium
      A. The vibrate method requires a second argument for repeat
      B. The array pattern is correct but missing a repeat flag
      C. The array should be passed as a second argument, not the first
      D. The vibrate method does not accept an array as argument

      Solution

      1. Step 1: Check Vibration.vibrate pattern usage

        Vibration.vibrate accepts an array pattern as first argument to define vibration and pause durations.
      2. Step 2: Understand repeat flag necessity

        To repeat the pattern, a second boolean argument true is needed. Without it, the pattern runs once, so no error but possibly unintended behavior.
      3. Final Answer:

        The array pattern is correct but missing a repeat flag -> Option B
      4. Quick Check:

        Pattern array needs repeat flag to loop [OK]
      Hint: Add second argument true to repeat vibration pattern [OK]
      Common Mistakes:
      • Thinking array is invalid argument
      • Forgetting second argument for repeat
      • Passing array as second argument instead of first
      5. You want to create a React Native function that vibrates the device for 500ms, then pauses for 300ms, and repeats this pattern twice. Which code snippet correctly implements this behavior?
      hard
      A. Vibration.vibrate(500); Vibration.vibrate(300); Vibration.vibrate(500);
      B. Vibration.vibrate([500, 300, 500, 300], true); setTimeout(() => Vibration.cancel(), 2600);
      C. Vibration.vibrate([500, 300], true); setTimeout(() => Vibration.cancel(), 2600);
      D. Vibration.vibrate([500, 300, 500, 300], false);

      Solution

      1. Step 1: Understand the required pattern

        The pattern is vibrate 500ms, pause 300ms, repeated twice: [500, 300, 500, 300].
      2. Step 2: Use repeat false to play exactly twice

        Vibration.vibrate([500, 300, 500, 300], false) executes the sequence once without looping further.
      3. Step 3: Eliminate other options

        Using true causes indefinite looping (cancel timing imprecise); shorter pattern loops incorrectly; separate calls lack pauses.
      4. Final Answer:

        Vibration.vibrate([500, 300, 500, 300], false); -> Option D
      5. Quick Check:

        Two pattern repeats = [500, 300, 500, 300], false [OK]
      Hint: Unroll pattern twice with repeat false for exact repeats [OK]
      Common Mistakes:
      • Using repeat true without precise cancel
      • Using false for repeat flag
      • Calling vibrate multiple times instead of pattern
      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