WEBVTT

00:00:00.480 --> 00:00:02.130
Hey everyone, and welcome back.

00:00:02.200 --> 00:00:05.240
In this video, we are going
to discuss two different ways

00:00:05.306 --> 00:00:07.970
of setting up your React Native project.

00:00:08.040 --> 00:00:12.200
The way you choose to set up your project
will define how your whole application

00:00:12.266 --> 00:00:14.810
code is going to be set up forever.

00:00:14.880 --> 00:00:16.970
So this is a very important step.

00:00:17.040 --> 00:00:21.080
One way of creating your project
is called Expo, and another one

00:00:21.146 --> 00:00:23.130
is called React Native CLI.

00:00:23.200 --> 00:00:26.640
And my main goal with this video
is to compare these two and let you

00:00:26.706 --> 00:00:31.610
understand what are the advantages
and disadvantages of using each one.

00:00:31.680 --> 00:00:34.050
So let's dive right in.

00:00:34.120 --> 00:00:38.850
Expo is a user-friendly framework
built specifically for React Native.

00:00:38.920 --> 00:00:43.690
It simplifies the development process
of cross-platform mobile applications.

00:00:43.760 --> 00:00:48.120
And the biggest advantage it has is
that it is super easy to set up

00:00:48.186 --> 00:00:50.090
and test your applications with it.

00:00:50.160 --> 00:00:54.730
You also get a set of preconfigured
components and libraries that help you

00:00:54.800 --> 00:01:00.120
quickly build your applications without
having to deal with the native code

00:01:00.186 --> 00:01:03.050
and some complexities that come with it.

00:01:03.120 --> 00:01:07.680
On the other hand, we have
React Native CLI, and CLI here

00:01:07.746 --> 00:01:10.570
stands for command line interface.

00:01:10.640 --> 00:01:14.480
It takes more time to get set
up with React Native CLI

00:01:14.546 --> 00:01:16.730
and start creating your project.

00:01:16.800 --> 00:01:20.520
And it has been a traditional way
of developing React Native

00:01:20.586 --> 00:01:23.050
projects until lately.

00:01:23.120 --> 00:01:27.400
I think the main reason why React Native
documentation encourages the users to

00:01:27.466 --> 00:01:33.840
use Expo over React Native CLI is exactly
the point that beginner developers

00:01:33.906 --> 00:01:36.210
have an easier time setting it up.

00:01:36.280 --> 00:01:41.970
However, the easy way does not always
offer quality in the long run.

00:01:42.040 --> 00:01:48.560
And the main advantage of React Native CLI
over Expo is that you have full control

00:01:48.626 --> 00:01:53.770
over your projects, including the ability
to modify native code and access

00:01:53.840 --> 00:01:58.850
device-specific features directly,
which is not the case for Expo.

00:01:58.920 --> 00:02:04.490
Rave Native CLI provides complete
control over your project configuration.

00:02:04.560 --> 00:02:09.810
This is a huge deal because it means
that you can tailor your application

00:02:09.880 --> 00:02:13.930
according to yours or your company's
specific requirements.

00:02:14.000 --> 00:02:19.080
The flexibility offered by React Native
CLI allows for deeper customization

00:02:19.146 --> 00:02:24.410
and seamless integration with native
code, ensuring you have access

00:02:24.480 --> 00:02:26.890
to all the device capabilities.

00:02:26.960 --> 00:02:31.290
This also means that you can optimize
the performance your application,

00:02:31.360 --> 00:02:37.170
integrate native libraries,
and leverage advanced device features.

00:02:37.240 --> 00:02:42.360
This level of control
is particularly valuable for complex

00:02:42.426 --> 00:02:44.210
or resource-intensive applications.

00:02:44.280 --> 00:02:51.080
Expo is somewhat limited, even though
many developers have created libraries

00:02:51.146 --> 00:02:53.130
that are compatible with it.

00:02:53.200 --> 00:02:56.360
On the other hand, using React Native CLI

00:02:56.426 --> 00:03:00.360
gives you access to much broader range

00:03:00.426 --> 00:03:06.570
of libraries and prebuilt code
developed by others ready for you to use.

00:03:06.640 --> 00:03:11.880
This allows you to avoid reinventing the
wheel, as most of the tools and features

00:03:11.946 --> 00:03:17.370
you might need are readily available
when working with React Native CLI.

00:03:17.440 --> 00:03:23.850
It empowers you to improve
the performance of your application.

00:03:23.920 --> 00:03:28.840
As your project scales, becomes bigger
and attracts a larger user base,

00:03:28.906 --> 00:03:31.930
performance will become very important.

00:03:32.000 --> 00:03:35.720
You wouldn't want thousands
of your users to have an application

00:03:35.786 --> 00:03:37.810
that's slow or lagging.

00:03:37.880 --> 00:03:43.520
With React Native CLI, you have the
granular control needed to optimize your

00:03:43.586 --> 00:03:49.690
app's performance that ensures a smooth
user experience even under heavy loads.

00:03:49.760 --> 00:03:55.880
This is why I also want to talk about why
big companies tend to avoid Expo

00:03:55.946 --> 00:03:59.930
and opt for React Native CLI instead.

00:04:00.000 --> 00:04:05.090
Companies often have unique requirements
and strict security policies,

00:04:05.160 --> 00:04:11.000
and React Native CLI allows customizing
their project extensively and

00:04:11.066 --> 00:04:14.050
implementing specific security measures.

00:04:14.120 --> 00:04:18.480
This level of control ensures
the highest standards of security

00:04:18.546 --> 00:04:21.570
and compliance, which is super important.

00:04:21.640 --> 00:04:27.320
Also, enterprise applications often
handle larger data sets and perform

00:04:27.386 --> 00:04:32.050
more demanding tasks, and
Fine-grained control over performance

00:04:32.120 --> 00:04:35.050
becomes crucial in such scenarios.

00:04:35.120 --> 00:04:40.320
React Native CLI allows optimization
at a deeper level, ensuring scalability

00:04:40.386 --> 00:04:44.930
and top-notch performance for
enterprise-grade applications.

00:04:45.000 --> 00:04:49.080
Now, you might be wondering
why as an instructor, I chose

00:04:49.146 --> 00:04:54.250
React Native CLI for this course
despite the advantages Expo offers.

00:04:54.320 --> 00:04:59.320
I could have made this whole course
around Expo, and we would be able

00:04:59.386 --> 00:05:04.120
to go through to set up much quicker
and easier, and I would have

00:05:04.186 --> 00:05:07.290
way less videos to upload and maintain.

00:05:07.360 --> 00:05:13.410
However, this decision was made with
your long-term growth and career in mind.

00:05:13.480 --> 00:05:18.440
Unfortunately, when I was learning
React Native CLI, I had to do it

00:05:18.506 --> 00:05:24.210
all by myself since the resources
for CLI setup has been very scarce.

00:05:24.280 --> 00:05:28.840
And this course is literally
the only course on Udemy that teaches you

00:05:28.906 --> 00:05:31.600
how to use React Native CLI.

00:05:31.666 --> 00:05:35.960
And I made sure to record this
because of the experience I went

00:05:36.026 --> 00:05:41.250
through as a developer when initially
getting started with this technology.

00:05:41.320 --> 00:05:46.610
While Expo may attract a bigger audience
and offer a faster development process,

00:05:46.680 --> 00:05:52.360
I specifically chose React Native CLI
to ensure that you are ready to join any

00:05:52.426 --> 00:05:57.850
company and utilize the best possibilities
that React Native CLI offers.

00:05:57.920 --> 00:06:03.854
You will go through interview process
smoothly with the knowledge

00:06:03.920 --> 00:06:05.130
that you're going to gain here.

00:06:05.200 --> 00:06:10.330
Moreover, if you're planning on creating
your own application for your business,

00:06:10.400 --> 00:06:16.640
this should be even more important
to you as when your application is going

00:06:16.706 --> 00:06:21.290
to scale to a larger audience and people
start heavily using it,

00:06:21.360 --> 00:06:26.010
you would want to be ready to optimize
the performance and implement

00:06:26.080 --> 00:06:28.160
complex functionalities.

00:06:28.480 --> 00:06:32.400
After completing this course, if you still
want to learn Expo, I assure you

00:06:32.466 --> 00:06:37.600
it will be like a piece of cake
because the basics that you're going

00:06:37.666 --> 00:06:42.050
to gain in this course will be more
than enough to tackle Expo project.

00:06:42.120 --> 00:06:45.800
However, I really doubt that
once you have experienced the power

00:06:45.866 --> 00:06:50.970
and flexibility of React Native CLI
and you already know how to set it up,

00:06:51.040 --> 00:06:54.130
you would ever want to go back to Expo.

00:06:54.200 --> 00:06:57.080
So I'm very excited
to have the opportunity

00:06:57.146 --> 00:06:58.770
to share this knowledge with you.

00:06:58.840 --> 00:07:02.450
Thank you so much
for choosing this course.

00:07:02.520 --> 00:07:05.840
I can't wait to get started
with you in the next set of videos.

