WEBVTT

00:01.020 --> 00:01.560
Okay.

00:02.040 --> 00:05.730
Let's talk about a build process now.

00:05.880 --> 00:12.660
Well, this process is kind of complicated outside of the scope of this tutorial because this might

00:12.660 --> 00:14.250
be a tutorial itself.

00:14.250 --> 00:20.480
So there's a lot of different things that you need to do to prepare your application for a production.

00:20.490 --> 00:24.420
So what we need to do is we need to start with two things.

00:24.420 --> 00:30.780
Basically, if you would like to publish your application on Google platform, which is Android platform,

00:30.780 --> 00:33.660
you will need to have a Google developer account.

00:34.020 --> 00:40.350
So you can go to Developer.android.com and then you will sign in with your Google account.

00:40.350 --> 00:50.220
And then you need to create a developer account and that costs you $25 or your currency in your country

00:50.220 --> 00:53.910
or equivalent of that money in your country.

00:53.910 --> 01:00.510
So basically, once you will have the Google developer account, that's an account for lifetime.

01:00.510 --> 01:02.670
So you pay $25 and that's it.

01:02.700 --> 01:08.550
Once you will have that, you will be able to access Google Play and then you can create application

01:08.550 --> 01:12.060
and you can upload your APK apk file there.

01:12.390 --> 01:14.700
So that's been said.

01:14.730 --> 01:20.220
You will need to have a Google developer account to publish your app on Google Market.

01:20.520 --> 01:27.300
Another thing is what you will need to have is you will need to have developer account for Apple and

01:27.300 --> 01:30.960
this is much more expensive and much more complicated to do.

01:30.960 --> 01:34.260
So basically well, creating an account is not that complicated.

01:34.260 --> 01:42.570
You create an account, then you pay for it and you pay $100 or whatever the amount is in your country.

01:42.600 --> 01:45.330
You're paying $100 for a year.

01:45.330 --> 01:46.500
Yes, for a year.

01:46.500 --> 01:54.660
So every single year you need to pay $100 it to maintain or euro or whatever the currency.

01:54.660 --> 01:58.080
You have to maintain your developer account.

01:58.080 --> 02:04.570
If you don't pay it, then you lose access to your applications and you won't be able to to have them

02:04.570 --> 02:05.500
on the market.

02:05.500 --> 02:07.150
So that's really unfair.

02:07.150 --> 02:10.060
I don't think it's a fair price for developers.

02:10.060 --> 02:14.500
They just want to have extra profit on it and that's it.

02:14.500 --> 02:19.510
So I strongly disagree with their politics, but nothing we can do about it.

02:19.540 --> 02:25.120
If you would like to publish applications on Apple Market on the App Store, then you need to go for

02:25.120 --> 02:25.450
it.

02:25.450 --> 02:30.010
So once you will have that, the process is kind of complicated.

02:30.010 --> 02:33.670
You need to have sign certificates and and so on.

02:33.670 --> 02:41.830
So that's and that is the reason why I don't want to go through all of that on this tutorial, but this

02:41.830 --> 02:43.600
will be the way to do so.

02:43.600 --> 02:49.600
Basically, if you would like to know more, what is the full process of building your application?

02:49.600 --> 02:58.180
You can go to Docs export IO and then you can pick the latest version and insight manage workflow.

02:58.180 --> 03:01.330
If you scroll down, you will see distribution.

03:01.330 --> 03:04.480
Your app and you will have building standalone application.

03:04.480 --> 03:10.120
So basically you have overview and then app signing, deploy to app stores and so on and so on.

03:10.120 --> 03:18.010
So that's a very useful article if you would like to publish, your application will go here first and

03:18.190 --> 03:19.540
read articles.

03:19.540 --> 03:27.280
So what I can show you instead, I'm not going to build a full application, but what I want to show

03:27.280 --> 03:28.480
you is an example.

03:28.510 --> 03:30.250
How would you do that?

03:30.250 --> 03:34.210
So normally what we have here is we have an expo.

03:34.480 --> 03:41.290
So Expo comes with some kind of built in functionality and one of the functionality is to build the

03:41.290 --> 03:42.550
app for us.

03:42.580 --> 03:50.890
Otherwise if we will use React Native Init command, we will need to handle that on ourselves.

03:50.890 --> 03:56.320
So that's a good thing that we use Expo because Expo can do it for us.

03:56.320 --> 03:58.420
So how how Expo will do it?

03:58.420 --> 04:07.030
Basically we use command Expo build and then let's say Android, we can do Android or iOS.

04:07.030 --> 04:11.410
And as I said, we are not going to be able to do iOS on, not on Mac.

04:11.410 --> 04:14.320
So I will do Expo Build Android.

04:18.470 --> 04:20.180
An expo might.

04:20.360 --> 04:22.820
Expo might actually ask you for.

04:23.120 --> 04:24.050
For an account.

04:24.050 --> 04:28.820
So right here in the terminal, it will ask you Do you have an account with Expo?

04:29.390 --> 04:30.530
You can create one.

04:30.530 --> 04:34.550
So providing just the email address, username password.

04:34.550 --> 04:37.670
You can do everything here and it will be done already.

04:37.670 --> 04:38.120
You've done it.

04:38.120 --> 04:39.380
So it's not asking me.

04:39.380 --> 04:41.230
But be prepared for that.

04:41.240 --> 04:44.210
It's free, so you don't need to worry about that.

04:44.210 --> 04:46.070
So now we have an error.

04:46.070 --> 04:52.310
So what is happening here is basically I don't have any information about the build so far.

04:52.310 --> 05:01.130
So what I need to do is I will go to the App.json here and if you scroll down here, you have iOS and

05:01.130 --> 05:03.680
then some settings for iOS.

05:03.680 --> 05:15.800
What I need to do is I will need to create a settings for Android and then I need to put a package.

05:17.690 --> 05:21.200
And then name of the package package needs to be unique.

05:21.200 --> 05:28.760
So that means on the apple on the market, they cannot be two applications with the same package name.

05:28.760 --> 05:35.030
So usually what you will do if you know, own a domain, you will do something like something like a

05:35.030 --> 05:36.080
reverse domain.

05:36.080 --> 05:41.660
So my domain is I own a website, which is true.

05:41.660 --> 05:43.240
Sign that.

05:43.650 --> 05:45.170
That's my website.

05:45.170 --> 05:49.910
So my reverse domain will be I true sign.

05:50.870 --> 05:57.290
And then I can also provide the name of the application, let's say movies like that.

05:57.290 --> 05:59.390
So that will be my package.

05:59.390 --> 06:05.690
And that package will be unique because no one else have that domain.

06:05.690 --> 06:11.690
So this is my domain and no one ever use it before and can't use it because I'm paying for it.

06:11.690 --> 06:16.400
And then name of the applications you can have under your domain multiple application.

06:16.400 --> 06:23.850
So that's the android and you can do the same package for iOS, but we are not going to build iOS here,

06:23.850 --> 06:28.440
so I will just save it and then I will repeat the expo build Android.

06:39.380 --> 06:43.610
And it's trying and it's building an application for me.

06:49.940 --> 06:56.360
And I have to say also for Android, what you will need to do is you will need to sign your application

06:56.360 --> 06:57.360
with a key.

06:57.380 --> 06:59.290
So you will need to prepare that.

06:59.300 --> 07:04.520
Otherwise this expo will produce an APK file that you can actually download.

07:04.520 --> 07:11.060
You can give it to someone, and from that file you can install your application on your phone, but

07:11.270 --> 07:13.400
you will be asked untrusted source.

07:13.400 --> 07:21.440
So basically you click it and then Android will ask you Do you want to install application from an untrusted

07:21.440 --> 07:22.070
source?

07:22.100 --> 07:24.950
Or you need to go to the settings and enable that.

07:24.950 --> 07:31.310
So basically to have a production ready application, you will need to also sign it.

07:31.310 --> 07:39.800
So what is happening here is Expo is building application for me and we can have a handy URL here that

07:39.800 --> 07:41.660
I will copy and I will go to.

07:44.360 --> 07:46.370
To the website and I will paste it here.

07:46.370 --> 07:54.320
So what is happening here is basically that my account that I have on Expo and whatever you click build,

07:54.320 --> 08:00.620
you will need to assign with your expo account and then you can have some logs here.

08:00.620 --> 08:07.880
So basically the application is, is being built now.

08:07.880 --> 08:11.030
So whatever we will it, it will do it.

08:11.030 --> 08:12.830
We can see some logs there.

08:12.830 --> 08:20.780
Once it will be done, then you can download the the file and the APK file will be ready for you.

08:20.900 --> 08:28.040
As I said, it's not going to be optimized, it's not going to be production ready because the Google

08:28.160 --> 08:34.280
platform won't accept the APK file that hasn't been signed with our key.

08:34.280 --> 08:36.650
So we'll need to do that as well.

08:37.160 --> 08:44.430
But as I said, if you would like to have that process and finish that, that will be the best place

08:44.430 --> 08:45.990
to do an expo.

08:45.990 --> 08:50.700
It is great to help you building that for you.

08:50.700 --> 08:54.120
Otherwise you'll need to handle a lot of things by yourself.

08:54.120 --> 08:58.110
So I would go definitely for Expo because it's much more simpler.
