Expo is a set of tools and services built around React Native that helps you build, deploy, and quickly test mobile apps without configuring native code.
Click to reveal answer
beginner
What does 'bare React Native' mean?
Bare React Native means using React Native without Expo, where you manage native code yourself and have full control over native modules and configurations.
Click to reveal answer
beginner
Which workflow is easier for beginners: Expo or bare React Native?
Expo is easier for beginners because it handles native setup and provides ready-to-use features, so you can focus on writing JavaScript code.
Click to reveal answer
intermediate
What is a limitation of using Expo?
Expo limits access to some native modules and custom native code, so if you need advanced native features, you might need to eject to bare React Native.
Click to reveal answer
intermediate
When should you choose bare React Native over Expo?
Choose bare React Native when you need full control over native code, want to use custom native modules, or require features not supported by Expo.
Click to reveal answer
What is a main advantage of using Expo for React Native development?
AFull control over native modules
BNo need to configure native code
CSupports all native features by default
DRequires manual native setup
✗ Incorrect
Expo lets you build apps without configuring native code, making it easier for beginners.
Which workflow allows you to write custom native code in React Native?
ABare React Native
BExpo bare workflow
CExpo managed workflow
DNone of the above
✗ Incorrect
Bare React Native lets you write and manage custom native code freely.
If you start with Expo but need native modules not supported by Expo, what can you do?
AEject to bare React Native
BSwitch to Flutter
CUse Expo only
DRewrite app in Swift
✗ Incorrect
You can eject your Expo app to bare React Native to add custom native modules.
Which of these is a downside of bare React Native compared to Expo?
ALess control over native code
BNo access to JavaScript
CCannot use native modules
DMore complex setup and configuration
✗ Incorrect
Bare React Native requires more setup and managing native code yourself.
Which workflow is best for quick prototyping and testing in React Native?
ANative Android development
BBare React Native
CExpo managed workflow
DNative iOS development
✗ Incorrect
Expo managed workflow is great for fast prototyping without native setup.
Explain the main differences between Expo and bare React Native workflows.
Think about setup complexity and native code control.
You got /4 concepts.
When would you choose to eject an Expo app to bare React Native?
Consider what Expo cannot do that bare React Native can.
You got /4 concepts.
Practice
(1/5)
1. Which statement best describes Expo in React Native development?
easy
A. Expo provides an easy setup with many built-in tools and services.
B. Expo requires manual linking of native modules for every feature.
C. Expo does not support running apps on physical devices.
D. Expo is only for web development, not mobile apps.
Solution
Step 1: Understand Expo's purpose
Expo is designed to simplify React Native development by providing many built-in tools and services out of the box.
Step 2: Compare with other options
Unlike bare React Native, Expo does not require manual linking of native modules and supports running apps on physical devices easily.
Final Answer:
Expo provides an easy setup with many built-in tools and services. -> Option A
Quick Check:
Expo = Easy setup and built-in tools [OK]
Hint: Expo means easy start with many tools included [OK]
Common Mistakes:
Thinking Expo requires manual native code linking
Believing Expo can't run on real devices
Confusing Expo with web-only frameworks
2. Which of the following is the correct way to start a new Expo project?
easy
A. npx react-native init MyApp
B. react-native run-ios
C. npm create-react-app MyApp
D. expo init MyApp
Solution
Step 1: Identify Expo project creation command
The command expo init MyApp is used to create a new Expo project with templates and setup.
Step 2: Differentiate from bare React Native commands
npx react-native init is for bare React Native, not Expo. Other options are unrelated or for web.
Final Answer:
expo init MyApp -> Option D
Quick Check:
Expo project start = expo init [OK]
Hint: Expo projects start with 'expo init' command [OK]
Common Mistakes:
Using 'npx react-native init' for Expo projects
Confusing React web commands with React Native
Trying to run iOS build command before project creation
3. What will happen if you try to use a native module not supported by Expo in an Expo managed project?
medium
A. The app will build and run without errors.
B. You will get a build error or runtime crash.
C. Expo automatically adds support for all native modules.
D. The app will silently ignore the native module.
Solution
Step 1: Understand Expo's native module support
Expo supports many native modules but not all. Unsupported modules cause build or runtime errors.
Step 2: Predict behavior when using unsupported modules
Since Expo does not allow custom native code in managed workflow, using unsupported native modules leads to errors.
Final Answer:
You will get a build error or runtime crash. -> Option B
Quick Check:
Unsupported native module in Expo = error [OK]
Hint: Unsupported native modules cause errors in Expo [OK]
Common Mistakes:
Assuming Expo adds all native modules automatically
Thinking unsupported modules are ignored silently
Believing Expo supports all bare React Native features
4. You have a React Native app created with Expo but need to add custom native code. What is the best way to fix this?
medium
A. Eject the Expo project to bare React Native workflow.
B. Keep using Expo and add native code directly.
C. Rewrite the app using React web instead.
D. Use Expo's managed workflow without changes.
Solution
Step 1: Identify the limitation of Expo managed workflow
Expo managed workflow does not allow adding custom native code directly.
Step 2: Choose the correct approach to add native code
Ejecting the Expo project converts it to bare React Native, allowing full native code access.
Final Answer:
Eject the Expo project to bare React Native workflow. -> Option A
Quick Check:
Need native code? Eject Expo [OK]
Hint: Eject Expo to add custom native code [OK]
Common Mistakes:
Trying to add native code in Expo managed workflow
Ignoring the need to eject before native code
Switching to React web instead of native
5. You want to build a complex app with custom native modules and full control over build tools. Which approach is best?
hard
A. Build a web app instead of a mobile app.
B. Use Expo managed workflow for faster development.
C. Start with bare React Native to access native code freely.
D. Use Expo and avoid any native code.
Solution
Step 1: Analyze app requirements
The app needs custom native modules and full control over build tools, which Expo managed workflow limits.
Step 2: Choose the suitable React Native approach
Bare React Native allows direct native code access and full control over build configurations, fitting the requirements.
Final Answer:
Start with bare React Native to access native code freely. -> Option C
Quick Check:
Custom native + control = bare React Native [OK]
Hint: Complex native needs? Choose bare React Native [OK]
Common Mistakes:
Choosing Expo for apps needing custom native code
Confusing web apps with native mobile apps
Avoiding bare React Native despite native needs
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.