Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:02,150 --> 00:00:03,290
In the last lecture,
2
00:00:03,290 --> 00:00:05,880
we worked on a bare workflow project
3
00:00:05,880 --> 00:00:08,290
which we created with Expo in it.
4
00:00:08,290 --> 00:00:10,610
However, sometimes you might also work
5
00:00:10,610 --> 00:00:14,480
on a managed workflow project and at some point you decide
6
00:00:14,480 --> 00:00:16,820
that you wanna switch to the bare workflow
7
00:00:16,820 --> 00:00:19,360
because you need more configurability,
8
00:00:19,360 --> 00:00:23,110
you wanna add native code for such reasons.
9
00:00:23,110 --> 00:00:24,810
And the great thing about Expo
10
00:00:24,810 --> 00:00:28,320
is that you can eject from the managed workflow
11
00:00:28,320 --> 00:00:31,890
to the bare workflow anytime you want.
12
00:00:31,890 --> 00:00:34,010
And that's exactly what we'll do here.
13
00:00:34,010 --> 00:00:36,770
Here, I have this Expense app
14
00:00:36,770 --> 00:00:38,840
which we built as part of the course,
15
00:00:38,840 --> 00:00:42,020
not the finished version with the https on
16
00:00:42,020 --> 00:00:45,980
but the first version which had some basic screens
17
00:00:45,980 --> 00:00:48,990
and where we could navigate around and so on.
18
00:00:48,990 --> 00:00:50,820
Now let's say that for some reason,
19
00:00:50,820 --> 00:00:53,470
we wanna switch to the bare workflow.
20
00:00:53,470 --> 00:00:56,320
Doing so is super simple.
21
00:00:56,320 --> 00:00:59,770
All we have to do here is open our terminal
22
00:00:59,770 --> 00:01:01,330
and then in this project,
23
00:01:01,330 --> 00:01:04,300
which again is a managed workflow project,
24
00:01:04,300 --> 00:01:06,093
we can run expo eject.
25
00:01:07,150 --> 00:01:09,470
And what this will do is it will ask us
26
00:01:09,470 --> 00:01:11,370
if we really wanna continue.
27
00:01:11,370 --> 00:01:16,060
If you're using Git, you can save, commit before you do that
28
00:01:16,060 --> 00:01:17,630
so that you can go back
29
00:01:17,630 --> 00:01:20,180
because otherwise there is no going back,
30
00:01:20,180 --> 00:01:22,040
Git is your only option to go back
31
00:01:22,040 --> 00:01:24,810
to the managed workflow thereafter.
32
00:01:24,810 --> 00:01:27,420
But if you are sure, you can continue here
33
00:01:27,420 --> 00:01:31,610
and you can then choose a name for your Android package.
34
00:01:31,610 --> 00:01:35,580
This should be an identifier which has a shape like this,
35
00:01:35,580 --> 00:01:37,227
basically a reverse URL.
36
00:01:38,420 --> 00:01:40,390
And this should be a unique identifier
37
00:01:40,390 --> 00:01:41,700
which is why you typically use
38
00:01:41,700 --> 00:01:45,190
something like your company name, maybe your company domain
39
00:01:45,190 --> 00:01:47,270
and then a project name at the end.
40
00:01:47,270 --> 00:01:50,240
So here I will choose com.academind.rncourse
41
00:01:50,240 --> 00:01:52,453
because my company is named Academind.
42
00:01:53,540 --> 00:01:56,250
So this is an identifier which will later be important
43
00:01:56,250 --> 00:01:58,560
once we publish apps to the app stores,
44
00:01:58,560 --> 00:02:00,050
we will talk about this again
45
00:02:00,050 --> 00:02:02,000
in the next course section therefore,
46
00:02:02,000 --> 00:02:03,740
but here I'll confirm it.
47
00:02:03,740 --> 00:02:07,270
And then we can do the same for iOS and it already suggests
48
00:02:07,270 --> 00:02:10,030
that we take the Android identifier here,
49
00:02:10,030 --> 00:02:12,720
so I will hit Enter to confirm this
50
00:02:12,720 --> 00:02:15,860
and then it basically ejects this project
51
00:02:15,860 --> 00:02:19,300
which means that it generates the Android and iOS folders
52
00:02:19,300 --> 00:02:21,380
which we already know from before
53
00:02:21,380 --> 00:02:25,340
and that it now does a couple of other adjustments as well.
54
00:02:25,340 --> 00:02:29,460
Once it is done, we will indeed have a project
55
00:02:29,460 --> 00:02:32,890
that is exactly the same as if we would've created it
56
00:02:32,890 --> 00:02:36,030
with the bare workflow right from the start.
57
00:02:36,030 --> 00:02:38,050
And therefore now we have a project
58
00:02:38,050 --> 00:02:40,750
where we can run npm run iOS and Android
59
00:02:40,750 --> 00:02:43,940
to build those apps locally on our machine
60
00:02:43,940 --> 00:02:46,680
as we did it before in the previous lectures,
61
00:02:46,680 --> 00:02:49,310
which we can then run on the emulators
62
00:02:49,310 --> 00:02:53,110
or real devices by installing these apps on them,
63
00:02:53,110 --> 00:02:56,343
so exactly as I showed it to you in the previous lectures.
64
00:02:57,380 --> 00:02:58,990
And therefore here if I do that,
65
00:02:58,990 --> 00:03:01,650
if I run npm run android here,
66
00:03:01,650 --> 00:03:03,970
this will build this app for Android
67
00:03:03,970 --> 00:03:07,050
and the first build will always take a bit longer
68
00:03:07,050 --> 00:03:10,910
and then thereafter it will ship that built app
69
00:03:10,910 --> 00:03:14,570
to the running emulator so that we can view it there.
70
00:03:14,570 --> 00:03:16,980
And then it will still work as before
71
00:03:16,980 --> 00:03:19,750
but it's now not running in the Expo Go app
72
00:03:19,750 --> 00:03:23,140
but as a standalone app which is built on our machine
73
00:03:23,140 --> 00:03:25,740
and we are then in that bare workflow
74
00:03:25,740 --> 00:03:28,593
with all the advantages and disadvantages.
75
00:03:29,520 --> 00:03:32,363
So let's wait for this Android build to finish here.
76
00:03:33,660 --> 00:03:36,020
So here we go, the Android build finished
77
00:03:36,020 --> 00:03:38,310
and now this app is starting up
78
00:03:38,310 --> 00:03:41,990
on Android as an app installed on that device,
79
00:03:41,990 --> 00:03:45,790
and it works just as before, it's the same app as before,
80
00:03:45,790 --> 00:03:49,250
but now not running in Expo Go but as a standalone app
81
00:03:49,250 --> 00:03:51,190
that was installed on this device.
82
00:03:51,190 --> 00:03:53,280
And of course we can do the same for iOS.
83
00:03:53,280 --> 00:03:57,120
Open a new terminal window, run npm run ios in there
84
00:03:57,120 --> 00:03:59,910
and now again, this is built locally with help of Xcode
85
00:03:59,910 --> 00:04:02,410
and then installed on the iOS simulator
86
00:04:02,410 --> 00:04:04,830
so that we can then preview it there
87
00:04:04,830 --> 00:04:07,403
and continue working on the app if we want to.
88
00:04:08,740 --> 00:04:10,860
So here we go, the app is starting up
89
00:04:10,860 --> 00:04:15,570
and now here's the app running on iOS, just like this.
90
00:04:15,570 --> 00:04:19,050
So that is how we can eject from the managed workflow
91
00:04:19,050 --> 00:04:23,120
to the bare workflow, and of course, if you wanna learn more
92
00:04:23,120 --> 00:04:26,840
about that bare workflow, if you want to dive deeper,
93
00:04:26,840 --> 00:04:29,000
the official docs are your friends.
94
00:04:29,000 --> 00:04:31,610
You can learn more about the different workflows there,
95
00:04:31,610 --> 00:04:34,420
about their differences and similarities.
96
00:04:34,420 --> 00:04:37,200
You can find more help on which workflow to choose
97
00:04:37,200 --> 00:04:39,080
and you can then also dive deeper
98
00:04:39,080 --> 00:04:40,713
into the bare workflow here.
99
00:04:41,790 --> 00:04:43,860
If you wanna use a third party package
100
00:04:43,860 --> 00:04:48,000
provided by Expo, something like location which I showed you
101
00:04:48,000 --> 00:04:49,790
but also something like the camera,
102
00:04:49,790 --> 00:04:51,410
you always wanna have a look at those
103
00:04:51,410 --> 00:04:54,320
API reference pages for that package
104
00:04:54,320 --> 00:04:57,460
to learn which extra setup might be required.
105
00:04:57,460 --> 00:05:01,150
You will basically always find little instructions like this
106
00:05:01,150 --> 00:05:04,630
which lead you to extra pages with more setup instructions
107
00:05:04,630 --> 00:05:08,690
that need to be followed when using the bare workflow.
108
00:05:08,690 --> 00:05:11,000
So that's always something you have to do
109
00:05:11,000 --> 00:05:14,090
and as you see here for this camera package for example,
110
00:05:14,090 --> 00:05:16,480
sometimes you also don't just need to add
111
00:05:16,480 --> 00:05:17,860
some permission settings,
112
00:05:17,860 --> 00:05:20,980
but you also might need to tweak some native code
113
00:05:20,980 --> 00:05:23,210
which is found in one of those Android
114
00:05:23,210 --> 00:05:25,223
or iOS specific files.
115
00:05:26,060 --> 00:05:30,290
So, that is the bare workflow and what you can do with that.
116
00:05:30,290 --> 00:05:34,050
But sometimes of course, you don't wanna use Expo at all
117
00:05:34,050 --> 00:05:36,640
and therefore in the next lectures, we will explore
118
00:05:36,640 --> 00:05:39,823
how we can build react native apps without expo.
9599
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.