1 00:00:02,350 --> 00:00:08,960 Now here's a big picture of the steps you typically go through when you deploy your app. 2 00:00:09,010 --> 00:00:14,770 The first step is one you might already have finished, that is that you should of course thoroughly test 3 00:00:14,770 --> 00:00:22,450 and polish your app and your code. Make sure that it works, test it on different devices, on real devices 4 00:00:22,450 --> 00:00:28,470 if possible, test it on different device sizes, different operating system versions, 5 00:00:28,630 --> 00:00:29,730 so all of that, 6 00:00:29,770 --> 00:00:34,630 that's something you should go through and make sure your app really works on all these devices and 7 00:00:34,630 --> 00:00:37,410 feels and looks the way it should look and feel, 8 00:00:37,450 --> 00:00:39,540 so that's really important. 9 00:00:39,550 --> 00:00:43,960 Now I assume that we did all of that for this module here, 10 00:00:43,960 --> 00:00:47,240 so the next step is that we configure the app and the deployment. 11 00:00:47,260 --> 00:00:53,290 That means that we set a name for the app, an identifier which identifies it in the app stores, 12 00:00:53,350 --> 00:00:55,820 every app needs a unique identifier 13 00:00:56,080 --> 00:01:02,140 and so on. In the expo managed workflow, this also means that we can configure some additional nice features 14 00:01:02,140 --> 00:01:03,820 which I'll dive into. 15 00:01:03,940 --> 00:01:08,740 Now you obviously also want to add your own icons and a nice splash screen, 16 00:01:08,740 --> 00:01:12,490 so a loading screen before the app opens up to your app. 17 00:01:12,760 --> 00:01:16,690 Last but not least, it's time to then build and deploy the app. 18 00:01:16,690 --> 00:01:22,030 Now these are actually two steps because building the app means that you now bundle up your app into 19 00:01:22,030 --> 00:01:30,280 a deployable app bundle and deploying then really means that you set up the store page in the Apple 20 00:01:30,280 --> 00:01:35,390 App Store or Google Play Store and that you then get your file into that store. 21 00:01:35,410 --> 00:01:36,900 That's the last step 22 00:01:36,940 --> 00:01:41,410 and then of course it's all about tweaking that store page and uploading some nice images there, setting 23 00:01:41,410 --> 00:01:43,720 description texts and so on. 24 00:01:43,750 --> 00:01:49,630 So these are the steps you typically go through and in this module, we'll have a look at the deployment related 25 00:01:49,630 --> 00:01:55,420 steps and the configuration steps and I will show you how you can get your app onto the devices of 26 00:01:55,480 --> 00:01:57,560 other users. 27 00:01:57,630 --> 00:02:02,580 Of course there also is kind of a difference if we talk about expo apps and non-expo apps if you want 28 00:02:02,580 --> 00:02:09,540 to call it like this. With expo apps, I mean apps that use managed workflow which we used throughout this course 29 00:02:09,810 --> 00:02:16,140 and non-expo means bare app, so using the bare workflow offered by expo or not using expo 30 00:02:16,170 --> 00:02:22,530 at all created with the React Native CLI. In the managed approach, you have the app.json file which 31 00:02:22,530 --> 00:02:29,340 you can use to configure your application, assets like icons and splash screen are automatically created 32 00:02:29,340 --> 00:02:36,900 for you, you just provide some input assets there and then all the creation and optimization is handled 33 00:02:36,900 --> 00:02:42,900 for you. You have a command which you can run to publish your app and then commands to build for the different 34 00:02:43,470 --> 00:02:50,010 platform, for the different operating systems and that build will happen on cloud servers provided by 35 00:02:50,010 --> 00:02:55,860 the expo team, so you can even build for iOS if you're running on Windows or Linux machine, something 36 00:02:55,860 --> 00:03:01,830 you can not do if you have to build manually on your own, then you can only build iOS apps on a Mac 37 00:03:02,520 --> 00:03:07,920 and you even get a nice feature, a nice extra feature which is called over the air updates which allows 38 00:03:07,920 --> 00:03:15,330 you to push basic updates, code changes and so on to apps which are running on other devices over the 39 00:03:15,330 --> 00:03:23,040 air, so over the Internet, over expo's servers without the need for those users to update your app physically. 40 00:03:23,040 --> 00:03:28,350 So they don't have to install a new version from the App Store, instead you can push such code changes 41 00:03:28,710 --> 00:03:35,010 behind the scenes, you can live update these apps whilst they're running on other machines or on other devices 42 00:03:35,010 --> 00:03:36,690 which is pretty sweet. 43 00:03:36,690 --> 00:03:42,640 Now in non-expo apps, you have to configure everything manually. You have to set up the name, identifier 44 00:03:42,640 --> 00:03:47,770 and so on manually in different files. You have to provide all the icons manually, create them manually, 45 00:03:48,120 --> 00:03:54,330 so a lot of manual stuff involved there and you also have to orchestrate the entire build manually. So 46 00:03:54,330 --> 00:04:00,780 you have to build the app via Android Studio and Xcode and the that's of course a lot of simply 47 00:04:00,780 --> 00:04:07,350 manual work you have to do and you have no built-in over the air updates. There are other third party 48 00:04:07,350 --> 00:04:14,070 services you can use and therefore you can get that feature to work in this approach too but it's just 49 00:04:14,070 --> 00:04:19,520 not as easy as with the expo managed workflow, that's just something to be aware of. 50 00:04:19,530 --> 00:04:24,270 So with that, I want to start with the managed workflow and show you how you can publish and build your 51 00:04:24,270 --> 00:04:29,520 app there and thereafter, I'll also briefly show you how that would work if you're not using expo.