0 1 00:00:00,610 --> 00:00:00,910 All right. 1 2 00:00:00,940 --> 00:00:03,780 So welcome to the ARKit Module. 2 3 00:00:03,820 --> 00:00:09,070 So alongside the CoreML framework, ARKit is the other thing that really, really excited us at the 3 4 00:00:09,070 --> 00:00:09,700 App Brewery 4 5 00:00:09,700 --> 00:00:15,430 during this year's WWDC. And I'm going to talk a little bit about what it is and what you can do with it. 5 6 00:00:15,460 --> 00:00:19,480 And then we're going to get started implementing it in a couple of apps and I'll show you how you can 6 7 00:00:19,480 --> 00:00:21,770 use it in your own project. 7 8 00:00:22,090 --> 00:00:27,970 So what exactly is AR or augmented reality? And I think the best example that people always tend to 8 9 00:00:27,970 --> 00:00:30,310 use is Magic Leaps video 9 10 00:00:37,380 --> 00:00:42,580 where this whale basically jumps out of the gym floor and wows all of the kids. 10 11 00:00:42,630 --> 00:00:48,420 I'm not sure that kids are that easily impressed, but it's a great demo and it shows very basically what 11 12 00:00:48,450 --> 00:00:49,080 AR is. 12 13 00:00:49,080 --> 00:00:54,480 It's a way of putting virtual objects inside the real world and making it appear as if the real and 13 14 00:00:54,480 --> 00:01:02,400 the virtual worlds are merged together, so magically is a huge endeavor and the company has raised about 14 15 00:01:02,400 --> 00:01:08,250 $1.4 billion in investment so far, and yet we still haven't even seen a product yet. 15 16 00:01:08,490 --> 00:01:11,940 So people are investing big in AR and there's good reasons for it. 16 17 00:01:11,970 --> 00:01:15,210 Now, Magic Leap's tag is built to be really revolutionary. 17 18 00:01:15,210 --> 00:01:19,020 It's going to change the world and it's going to be absolutely amazing, 18 19 00:01:19,020 --> 00:01:23,700 but, you know, we're yet to see what exactly it is. We'll decide once we actually put on a headset and 19 20 00:01:23,700 --> 00:01:24,640 see it for ourselves. 20 21 00:01:24,780 --> 00:01:31,310 But augmented reality exists and it's really very, very prevalent in a lot of the apps that you use. 21 22 00:01:31,350 --> 00:01:38,460 So a good example are the 3D stickers that you see in Instagram Stories, also Pokémon GO, of course, 22 23 00:01:38,460 --> 00:01:39,820 one of my favorite games. 23 24 00:01:39,870 --> 00:01:41,910 And finally, of course, Snapchat masks. 24 25 00:01:41,970 --> 00:01:46,920 So there's actually a lot of AR being used already in the apps that we're using and Apple is definitely 25 26 00:01:46,920 --> 00:01:48,800 jumping on this in a big way. 26 27 00:01:48,840 --> 00:01:55,740 And I'm really glad that they are because they are a company that really has the resources and the manpower 27 28 00:01:55,770 --> 00:01:59,010 to be able to make this really, really mainstream, 28 29 00:01:59,160 --> 00:02:04,470 and it really could change the way that we interact with digital technology in the future. 29 30 00:02:04,470 --> 00:02:10,080 So if you have a look at developer.apple.com/arkit, then you see Apple's brand-new page 30 31 00:02:10,170 --> 00:02:15,830 for AR and it explains a little bit about what ARKit is, and it's a great place to get started. 31 32 00:02:15,860 --> 00:02:21,990 So have a read of how ARKit works here and you can look in detail at the documentation over here. 32 33 00:02:22,020 --> 00:02:27,330 And I definitely recommend if you are going to start building your own apps in a ARKit, then this is 33 34 00:02:27,330 --> 00:02:28,540 the first place to start 34 35 00:02:28,590 --> 00:02:30,390 after creating the tutorial apps. 35 36 00:02:30,420 --> 00:02:32,310 So what exactly is ARKit? 36 37 00:02:32,310 --> 00:02:38,870 Well, it's basically just a way of implementing augmented reality in iOS in a simplified way. 37 38 00:02:38,910 --> 00:02:44,580 And since the iOS 11 developer preview, a lot of the developers have already started making really, really 38 39 00:02:44,580 --> 00:02:47,650 cool stuff with iOS 11 and ARKit. 39 40 00:02:47,670 --> 00:02:49,950 So here are some really great examples. 40 41 00:02:49,950 --> 00:02:57,660 So, for example, Tic-Tac-Toe on any sort of ground or surface that you've got or a way of measuring 41 42 00:02:57,660 --> 00:03:06,850 real-world distances by simply using the camera or--this is the coolest one that I've seen so far. 42 43 00:03:06,850 --> 00:03:13,600 There's basically a portal where you can look into another world and even step into another world. 43 44 00:03:13,750 --> 00:03:15,430 And it's absolutely incredible. 44 45 00:03:15,490 --> 00:03:20,620 And I think there's going to be loads more really, really awesome applications, especially once iOS 11 45 46 00:03:20,620 --> 00:03:26,560 comes out of beta and everybody starts making a crazy amount of cool things for ARKit, 46 47 00:03:26,620 --> 00:03:29,630 and maybe some of those really cool things that will be the things that you make. 47 48 00:03:29,650 --> 00:03:33,880 So if you do, please do let me know about it and I would love to give it a spin and also shout about 48 49 00:03:33,880 --> 00:03:34,510 it to the world. 49 50 00:03:34,750 --> 00:03:36,760 So how exactly does ARKit work? 50 51 00:03:36,760 --> 00:03:42,040 Well, it's basically a way of implementing augmented reality. And it's pretty similar to the other frameworks 51 52 00:03:42,070 --> 00:03:43,750 that implement augmented reality. 52 53 00:03:43,750 --> 00:03:48,730 So in one of the modules in this course, we actually teach you about euphoria which is currently one 53 54 00:03:48,730 --> 00:03:53,470 of the most popular frameworks for implementing augmented reality, especially when you're working with 54 55 00:03:53,470 --> 00:03:54,070 Unity. 55 56 00:03:54,080 --> 00:04:00,280 So Apple's ARKit works in a similar way, in the sense that allows you to create and track the correspondence 56 57 00:04:00,280 --> 00:04:06,730 between the real-world space, 3D space, and the virtual space that you create where you can model visual 57 58 00:04:06,730 --> 00:04:12,970 content. And when your app displays that virtual content together with a live camera image, then the user 58 59 00:04:12,970 --> 00:04:16,380 basically experiences what's called augmented reality, right, 59 60 00:04:16,450 --> 00:04:21,390 which is simply just an illusion that your virtual content is a part of the real world. 60 61 00:04:21,430 --> 00:04:28,340 And this brings us to a really, really important point. For your ARKit apps to work with this world tracking, 61 62 00:04:28,450 --> 00:04:34,630 you need to have certain hardware, and more specifically, that hardware is the A9 chip or above, 62 63 00:04:34,630 --> 00:04:36,360 so A9 or A10 chips. 63 64 00:04:36,370 --> 00:04:43,210 So in terms of devices, that basically means anything that was released after the iPhone 6, including 64 65 00:04:43,210 --> 00:04:49,180 the iPhone SE, 6s, 6s Plus, et cetera, and you can read down the list. It doesn't mean that if you have 65 66 00:04:49,180 --> 00:04:55,690 an iPhone 6 that the app won't run. It usually means that it won't have world tracking enabled. 66 67 00:04:55,720 --> 00:04:56,440 What does that mean? 67 68 00:04:56,470 --> 00:04:56,760 So, 68 69 00:04:56,770 --> 00:05:02,410 well, tracking is where your virtual object is placed in 3D space. 69 70 00:05:02,410 --> 00:05:06,350 So if you move towards it with your iPad, it will get bigger. 70 71 00:05:06,370 --> 00:05:10,520 And if you move away, it will get smaller and you can also look all around it. 71 72 00:05:10,690 --> 00:05:15,460 If you didn't have world tracking, then it would still be floating in mid-air, but it just won't correspond 72 73 00:05:15,460 --> 00:05:16,660 to a real 3D space. 73 74 00:05:16,660 --> 00:05:21,100 So if you move around, it will move with you. And I'll demo some of that once we start creating our app. 74 75 00:05:21,270 --> 00:05:27,910 But, basically, to fully take advantage of ARKit and to actually have fun with it, Apple is, obviously, 75 76 00:05:27,910 --> 00:05:30,050 pushing for their latest models. 76 77 00:05:30,130 --> 00:05:34,960 And even when you do have the A9 and A10, you should be aware that running an app where the arcade 77 78 00:05:35,110 --> 00:05:41,440 is pretty battery intensive, especially as I'm creating a lot of these tutorials in iOS11 beta, it 78 79 00:05:41,440 --> 00:05:45,750 sucks up the battery like there's no tomorrow. But I'm sure, in future betas of iOS 11 79 80 00:05:45,760 --> 00:05:49,120 and also wheniOS 11 is officially released, 80 81 00:05:49,120 --> 00:05:54,880 then you won't have as many problems. But I expect that any app running ARKit is going to use up quite 81 82 00:05:54,880 --> 00:05:55,630 a bit of battery. 82 83 00:05:55,630 --> 00:06:00,370 Those are just some things to be aware of. If you don't have one of these devices, then I would recommend 83 84 00:06:00,370 --> 00:06:04,690 just to watch the videos and see if this is something that you're interested in developing. 84 85 00:06:04,690 --> 00:06:08,660 You can still code along and learn the programming and the theory behind it. 85 86 00:06:08,710 --> 00:06:15,090 So at the App Brewery, we're investing pretty heavily in creating teaching resources for ARKit. 86 87 00:06:15,130 --> 00:06:17,820 And the reason is because we think it's going to be huge. 87 88 00:06:17,830 --> 00:06:24,360 A good analogy for this is when the Oculus Rift came out for virtual reality, everybody was really excited, 88 89 00:06:24,370 --> 00:06:28,600 it was really, really impressive the first time that you put on a virtual reality headset, 89 90 00:06:28,600 --> 00:06:30,160 but the hardware was pretty expensive. 90 91 00:06:30,160 --> 00:06:33,640 I really thought that this was going to be a piece of tech that was going to be really, really out of 91 92 00:06:33,640 --> 00:06:34,280 reach. 92 93 00:06:34,360 --> 00:06:37,050 And then, Google came along with their Google Cardboard, 93 94 00:06:37,090 --> 00:06:38,830 I mean, they could have made it with plastic. 94 95 00:06:38,830 --> 00:06:43,870 They could have made it with something relatively cheap, but they decide to go for cardboard, basically, 95 96 00:06:43,870 --> 00:06:49,000 just to stress the fact that, you know, virtual reality isn't anything fancy, and you can use a piece of 96 97 00:06:49,000 --> 00:06:54,040 cardboard and leverage the existing tech in the smartphone that's in your pocket to create a virtual 97 98 00:06:54,040 --> 00:06:55,840 reality experience. 98 99 00:06:55,840 --> 00:07:00,560 And I think for augmented reality, Apple's ARKit is going to do something really similar. 99 100 00:07:00,610 --> 00:07:04,030 So Magic Leap's tech is completely hush-hush. 100 101 00:07:04,030 --> 00:07:05,230 Nobody knows what it'll look like, 101 102 00:07:05,280 --> 00:07:11,110 in fact, it might look something out of a sci-fi movie like helmet or something, or might look more refined. 102 103 00:07:11,110 --> 00:07:15,490 This is actually one of their patent drawings. But who the hell knows? 103 104 00:07:15,550 --> 00:07:17,230 We'll just have to wait and see. 104 105 00:07:17,380 --> 00:07:20,490 But a better comparison is probably with the Microsoft HoloLens. 105 106 00:07:20,500 --> 00:07:24,620 So this is Microsoft's hardware offering for augmented reality. 106 107 00:07:24,620 --> 00:07:29,950 And I mean, it's not horrendously expensive, but it's still extra tech that you're buying at which parts 107 108 00:07:29,950 --> 00:07:32,680 of already exist in your smartphone. 108 109 00:07:32,740 --> 00:07:37,480 So why stuff your house with loads of hardware when you can reuse some of the technology that you already 109 110 00:07:37,480 --> 00:07:37,810 own. 110 111 00:07:38,290 --> 00:07:44,290 So compared with going out there and buying a whole suite of tech in order to experience augmented reality 111 112 00:07:44,590 --> 00:07:49,990 by having it on your phone inside 2- or 3-dollar apps on the App Store is going to make augmented 112 113 00:07:49,990 --> 00:07:53,360 reality, so much more approachable for the masses. 113 114 00:07:53,440 --> 00:07:58,120 And I think will lead to much greater adoption and interest from the public. 114 115 00:07:58,120 --> 00:08:00,610 So I think ARKit is going to be huge. 115 116 00:08:00,610 --> 00:08:05,820 So without further ado, let's start making our own augmented reality apps using ARKit.