Check out a free preview of the full React Native, v3 course
The "React Native Frameworks Overview" Lesson is part of the full, React Native, v3 course featured in this preview video. Here's what you'd learn in this lesson:
Kadi discusses the need for additional functionality in mobile apps and how community libraries and frameworks like Expo provide solutions for these requirements. She clarifies that Expo Go is used for learning and prototyping purposes, but development builds are recommended for production apps.
Transcript from the "React Native Frameworks Overview" Lesson
[00:00:00]
>> Kadi Kraman: Hi, before we get into coding, I wanted to quickly talk about React Native Frameworks. So you might be wondering why in this introduction to React Native course, we just created an Expo app and we installed Expo Go. So in short, Expo is a React Native framework. So this is the same as how Nextjs or Remix or Redwoodjs are reacting Frameworks as of React Con in 2024, Meta actually recommends using React Native framework, so specifically expo for creating new react native apps.
[00:00:32]
So you are wondering why is Vanilla React native? So React native without a framework, not enough, and basically what React native gives us out of the box is the ability to run react code. So some java script code with react on native iOS and android platforms so using the underlying native components.
[00:00:51]
So a huge amount of work goes into making this happen, we have metro for bundling and Hermes java script runtime and jsi and all kinds of stuff. So this is not an easy feat. And on top of this, we also get some core building blocks, like your text and view and scroll up the lists.
[00:01:08]
But a huge amount of things that almost every mobile app needs aren't built into react native so for example, we don't get navigation out of the box. We can't send push notifications, we can't store data across app launches, we can't use the phone camera, etc. And there's plenty of things that is possible to do, it's just really hard.
[00:01:29]
So for example, changing the app icon or adding custom native code or just building the app bundles for store release, they're possible but they're tedious. And this isn't a failing by meta. This is by design because adding all of these functionality out of the box would make reactivity completely unmaintainable for the really small reacting matter.
[00:01:55]
So, we need to add these ourselves. And from the very beginning, and React Native is literally almost 10 years old now, which is wild. And from the very beginning, React Native developers have had to rely on community libraries for these functionality. And there is also this page here, React Native Directory, which is a great resource for finding various community libraries for React Native.
[00:02:21]
>> Kadi Kraman: The problem is if you're only just getting started, it's very difficult to know which libraries are fit for purpose, which work well together. What's even possible, especially if it's at the start of your project. So this is where the React Native framework comes in. So the role of a React framework is defined in...
[00:02:38]
In the RFC, which you can also look up here. And it's a cohesive framework that's built on top of React Native. And it consists of tools and libraries that are not provided by default in React Native. There's also a bunch of requirements for something to become a framework.
[00:02:58]
But the main thing that's important here is that a framework needs to be open source, popular and free. So companies may provide additional pay features on top of the framework, but the core of it needs to be free. The pay parts should not be requirements to use the framework and there should be no vendor lock-in.
[00:03:21]
So there's three restrictions for something to become a React Native framework. So Expo is the open source React Native framework that we're going to be using throughout this course. In particular, we're using Expo Go. Now this is really important, Expo Go is not Expo. Expo Go is one small part of the Expo framework.
[00:03:44]
It's a sandbox environment that's meant for learning, prototyping, and getting started quickly. It is not recommended to build your production apps with Expo Go. We're using Expo Go today because we're learning about React Native, and this is literally the use case for it. In the intermediate course, we're going to move on to development builds, which is what you graduate to after you outgrow Expo Go.
Learn Straight from the Experts Who Shape the Modern Web
- In-depth Courses
- Industry Leading Experts
- Learning Paths
- Live Interactive Workshops