Hey everyone, and welcome back.
In this video, we are going to discuss two different ways
of setting up your React Native project.
The way you choose to set up your project will define how your whole application
code is going to be set up forever.
So this is a very important step.
One way of creating your project is called Expo, and another one
is called React Native CLI.
And my main goal with this video is to compare these two and let you
understand what are the advantages and disadvantages of using each one.
So let's dive right in.
Expo is a user-friendly framework built specifically for React Native.
It simplifies the development process of cross-platform mobile applications.
And the biggest advantage it has is that it is super easy to set up
and test your applications with it.
You also get a set of preconfigured components and libraries that help you
quickly build your applications without having to deal with the native code
and some complexities that come with it.
On the other hand, we have React Native CLI, and CLI here
stands for command line interface.
It takes more time to get set up with React Native CLI
and start creating your project.
And it has been a traditional way of developing React Native
projects until lately.
I think the main reason why React Native documentation encourages the users to
use Expo over React Native CLI is exactly the point that beginner developers
have an easier time setting it up.
However, the easy way does not always offer quality in the long run.
And the main advantage of React Native CLI over Expo is that you have full control
over your projects, including the ability to modify native code and access
device-specific features directly, which is not the case for Expo.
Rave Native CLI provides complete control over your project configuration.
This is a huge deal because it means that you can tailor your application
according to yours or your company's specific requirements.
The flexibility offered by React Native CLI allows for deeper customization
and seamless integration with native code, ensuring you have access
to all the device capabilities.
This also means that you can optimize the performance your application,
integrate native libraries, and leverage advanced device features.
This level of control is particularly valuable for complex
or resource-intensive applications.
Expo is somewhat limited, even though many developers have created libraries
that are compatible with it.
On the other hand, using React Native CLI
gives you access to much broader range
of libraries and prebuilt code developed by others ready for you to use.
This allows you to avoid reinventing the wheel, as most of the tools and features
you might need are readily available when working with React Native CLI.
It empowers you to improve the performance of your application.
As your project scales, becomes bigger and attracts a larger user base,
performance will become very important.
You wouldn't want thousands of your users to have an application
that's slow or lagging.
With React Native CLI, you have the granular control needed to optimize your
app's performance that ensures a smooth user experience even under heavy loads.
This is why I also want to talk about why big companies tend to avoid Expo
and opt for React Native CLI instead.
Companies often have unique requirements and strict security policies,
and React Native CLI allows customizing their project extensively and
implementing specific security measures.
This level of control ensures the highest standards of security
and compliance, which is super important.
Also, enterprise applications often handle larger data sets and perform
more demanding tasks, and Fine-grained control over performance
becomes crucial in such scenarios.
React Native CLI allows optimization at a deeper level, ensuring scalability
and top-notch performance for enterprise-grade applications.
Now, you might be wondering why as an instructor, I chose
React Native CLI for this course despite the advantages Expo offers.
I could have made this whole course around Expo, and we would be able
to go through to set up much quicker and easier, and I would have
way less videos to upload and maintain.
However, this decision was made with your long-term growth and career in mind.
Unfortunately, when I was learning React Native CLI, I had to do it
all by myself since the resources for CLI setup has been very scarce.
And this course is literally the only course on Udemy that teaches you
how to use React Native CLI.
And I made sure to record this because of the experience I went
through as a developer when initially getting started with this technology.
While Expo may attract a bigger audience and offer a faster development process,
I specifically chose React Native CLI to ensure that you are ready to join any
company and utilize the best possibilities that React Native CLI offers.
You will go through interview process smoothly with the knowledge
that you're going to gain here.
Moreover, if you're planning on creating your own application for your business,
this should be even more important to you as when your application is going
to scale to a larger audience and people start heavily using it,
you would want to be ready to optimize the performance and implement
complex functionalities.
After completing this course, if you still want to learn Expo, I assure you
it will be like a piece of cake because the basics that you're going
to gain in this course will be more than enough to tackle Expo project.
However, I really doubt that once you have experienced the power
and flexibility of React Native CLI and you already know how to set it up,
you would ever want to go back to Expo.
So I'm very excited to have the opportunity
to share this knowledge with you.
Thank you so much for choosing this course.
I can't wait to get started with you in the next set of videos.