1
00:00:05,840 --> 00:00:06,700
Hey what's up everyone.

2
00:00:06,710 --> 00:00:14,010
Mark Price you're at death's slopes dot com and let's see if we can't finish up this video or this app.

3
00:00:14,040 --> 00:00:19,540
And in this video and what we have left to do is I want to implement some controls where you can where

4
00:00:19,640 --> 00:00:25,060
you can manipulate and move things around and move them up and down and such.

5
00:00:25,310 --> 00:00:26,250
And then some other cleanup.

6
00:00:26,260 --> 00:00:33,260
So first clean up I want to do is in the ramp picker when we select a ramp here I want to go ahead and

7
00:00:33,260 --> 00:00:37,780
dismiss the View Controller so dismiss animated.

8
00:00:37,790 --> 00:00:38,520
Yes.

9
00:00:38,750 --> 00:00:40,140
We don't care when it's done.

10
00:00:40,220 --> 00:00:45,710
So that'll go away once we've selected something and then the other thing we want to do is get back

11
00:00:45,710 --> 00:00:51,350
in place or we're going to need to store a reference to our ramp now because we need to be able to move

12
00:00:51,350 --> 00:00:53,340
it around and delete it.

13
00:00:53,360 --> 00:00:58,450
And so what I want to do here is selected ramp.

14
00:00:58,570 --> 00:01:04,930
That's funny we should probably call this select the ramp name.

15
00:01:04,930 --> 00:01:06,170
That's what we should do.

16
00:01:06,460 --> 00:01:10,040
And then make the selected ramp the actual Selecta ramp.

17
00:01:10,060 --> 00:01:11,920
So wherever I found.

18
00:01:11,920 --> 00:01:16,300
Come on name select that ramp name.

19
00:01:16,300 --> 00:01:16,690
There it is.

20
00:01:16,700 --> 00:01:19,820
This one selected ramp name.

21
00:01:20,650 --> 00:01:23,290
And this one is selected ramp name.

22
00:01:23,820 --> 00:01:24,410
OK.

23
00:01:24,670 --> 00:01:25,770
Perfect.

24
00:01:25,810 --> 00:01:26,580
Very good.

25
00:01:28,040 --> 00:01:30,610
And let's go ahead and criticize the ramp.

26
00:01:30,610 --> 00:01:39,400
Now our selected ramp of type C and node j like so perfect.

27
00:01:39,650 --> 00:01:41,430
And then when we actually slide the ramp.

28
00:01:41,520 --> 00:01:46,870
So Or is it down here.

29
00:01:47,040 --> 00:01:50,890
We're going to say selected ramp equals ramp.

30
00:01:50,940 --> 00:01:55,530
We're just going to store reference to it right here like so now let's go ahead and do the user interface

31
00:01:55,590 --> 00:01:57,710
for our cool little controls.

32
00:01:58,110 --> 00:01:59,350
So we've got our button over here.

33
00:01:59,350 --> 00:02:04,050
What I want to do is put four buttons here and then probably put them in a stack view that makes the

34
00:02:04,050 --> 00:02:05,020
most sense.

35
00:02:05,040 --> 00:02:06,800
So we're going to save button.

36
00:02:07,530 --> 00:02:13,410
And what I'm going to do is take off the word button and we're going to set an image here and let's

37
00:02:13,410 --> 00:02:16,660
call this the close by.

38
00:02:16,680 --> 00:02:25,800
And now not the close button the remove but an removed but that's what we want and I'm going to go ahead

39
00:02:25,860 --> 00:02:32,090
and let's make this little bit bigger like so so it's actually tabel a little bigger.

40
00:02:32,120 --> 00:02:35,510
The buttons the same size but I'm making the bounding box bigger.

41
00:02:35,510 --> 00:02:37,780
And let's go ahead and set a constraint on this.

42
00:02:37,820 --> 00:02:42,560
We're going to say Fix width and height and we'll just say 41 by 41.

43
00:02:42,720 --> 00:02:43,820
That's fine.

44
00:02:43,820 --> 00:02:46,140
Now what I'm going to do is duplicate this three times.

45
00:02:46,310 --> 00:02:59,790
One two three and then this one will be the rotate by an like so this one will be the move up by an

46
00:03:00,930 --> 00:03:07,340
up arrow and this one will be the down arrow we can find the down arrow.

47
00:03:07,340 --> 00:03:08,230
Perfect.

48
00:03:08,240 --> 00:03:14,960
Now what I'm going to do is just simply shift select all of these and put them in a stack by clicking

49
00:03:14,960 --> 00:03:17,070
this button here embed and stack.

50
00:03:17,360 --> 00:03:20,210
And now what I want to do is distribute feel equally.

51
00:03:20,630 --> 00:03:22,030
Let's go ahead and add some spacing.

52
00:03:22,030 --> 00:03:24,410
Make it larger there.

53
00:03:24,440 --> 00:03:31,640
And what I want to do is just move it to the same bottom portion of the view as is match with this button

54
00:03:31,760 --> 00:03:33,540
and let's set constraints on the stack.

55
00:03:33,820 --> 00:03:41,710
And I want to say 10 from the left and 10 from the bottom and there are buttons which is pretty cool.

56
00:03:41,720 --> 00:03:44,580
No big deal you've done this before.

57
00:03:44,600 --> 00:03:46,330
A thousand times.

58
00:03:46,520 --> 00:03:47,330
OK.

59
00:03:47,960 --> 00:03:48,750
So what do we want to do.

60
00:03:48,750 --> 00:03:50,700
Now what we've got is four buttons right.

61
00:03:50,790 --> 00:03:54,750
And you maybe you're thinking well let's just IAB actions for all four what we can't.

62
00:03:54,920 --> 00:03:57,860
We just had an IB action for the delete button because it's just a tap.

63
00:03:57,920 --> 00:04:02,390
But what we want to do is when we're rotating or when we're pressing the rotate but we want the ramp

64
00:04:02,390 --> 00:04:04,660
to rotate so long as we're pressing it.

65
00:04:04,670 --> 00:04:09,030
It's a little more difficult and you can't really do that with reactions easily.

66
00:04:09,140 --> 00:04:13,360
And then the same thing for the up and down but when you're pressing it we want to move the ramps.

67
00:04:13,400 --> 00:04:18,680
And so what we're going to need to do instead is use gesture recognizers but we will need to make Iby

68
00:04:18,680 --> 00:04:19,610
outlets for these.

69
00:04:19,610 --> 00:04:21,290
And one Iby action for the red button.

70
00:04:21,290 --> 00:04:24,910
So let's open up the assistant editor by clicking the two circles there.

71
00:04:25,280 --> 00:04:31,070
And what we're going to do is I'm going to create an action down here for the close button

72
00:04:34,320 --> 00:04:43,240
so grab this close button or the Remove button and we're going to create an action say on remove and

73
00:04:43,250 --> 00:04:45,080
remove preste.

74
00:04:45,520 --> 00:04:45,890
OK.

75
00:04:46,170 --> 00:04:47,560
So that one's done.

76
00:04:47,580 --> 00:04:50,250
So I think we're OK now in Interface Builder.

77
00:04:50,250 --> 00:04:57,160
Let's go over to the well you know what let's keep a reference to the stack as well too.

78
00:04:57,250 --> 00:05:01,270
Because what I want to do is if you haven't selected a Rampa I want to hide this.

79
00:05:01,390 --> 00:05:03,350
I don't want a stack of you to be visible.

80
00:05:03,390 --> 00:05:04,860
So first make a hit.

81
00:05:05,170 --> 00:05:08,300
And then what we'll do is we'll make an outlet for it over here.

82
00:05:09,600 --> 00:05:15,560
All right so this is going to be our controls.

83
00:05:15,830 --> 00:05:22,780
There we go controls ibl outlet close the assistant editor and let's go back to a ramp place Ribisi.

84
00:05:23,380 --> 00:05:24,430
Ok cool.

85
00:05:24,430 --> 00:05:28,000
So let's just do the easy one first which is the removal right.

86
00:05:28,000 --> 00:05:31,280
So let's go over here on roof press.

87
00:05:31,480 --> 00:05:35,580
So what we'll do is we'll say if the left ramp equals.

88
00:05:35,650 --> 00:05:37,360
And we're going to say selected ramp.

89
00:05:37,360 --> 00:05:43,960
So if there's a selected ramp OK well we want to do is just remove Right so ramp up remove from parent

90
00:05:43,990 --> 00:05:53,080
node and we'll say ramp or a selected ramp equals Neil.

91
00:05:53,580 --> 00:05:58,090
OK we'll make it the one that we're referencing up at the top of the pile here.

92
00:05:58,150 --> 00:06:00,870
We'll make it kneel after we remove it.

93
00:06:00,940 --> 00:06:01,850
No big deal.

94
00:06:01,910 --> 00:06:07,540
And if left is good because it could be nil and we don't want our app to crash so that's good and move

95
00:06:07,540 --> 00:06:07,810
press.

96
00:06:07,810 --> 00:06:09,300
Now how do we do the hard part.

97
00:06:09,490 --> 00:06:11,200
The actual button presses.

98
00:06:11,230 --> 00:06:16,090
So what we're going to do is we're going to go up here to our view did load.

99
00:06:16,120 --> 00:06:16,620
All right.

100
00:06:16,930 --> 00:06:19,180
And we're going to need to create some gestures now.

101
00:06:19,540 --> 00:06:24,170
Unfortunately we can't just use one gesture for all the buttons.

102
00:06:24,190 --> 00:06:25,600
We're gonna have to create three different gestures.

103
00:06:25,600 --> 00:06:30,130
And the reason is normally you could you could create one gesture and add it to multiple views.

104
00:06:30,190 --> 00:06:34,190
And so long as you're just using the view to detect when a tap happens that's fine.

105
00:06:34,450 --> 00:06:38,700
But what if you need to reference the view that actually caused the tap to happen.

106
00:06:38,860 --> 00:06:43,840
Well if you use one gesture recognizer every time you add it to a new view it replaces that view.

107
00:06:43,870 --> 00:06:48,770
And so what we need to do is create a new gesture recognizer for each gesture.

108
00:06:48,790 --> 00:06:53,650
Trust me you have to do it this way if you don't believe me just use one just to recognize or try it

109
00:06:53,650 --> 00:06:55,690
out and see what happens.

110
00:06:55,780 --> 00:07:05,110
So a gesture one equals UI a long press gesture recognizer and the target is going to be self and the

111
00:07:05,110 --> 00:07:07,720
action is going to be what.

112
00:07:07,750 --> 00:07:10,370
Well we didn't create one yes let's do that now.

113
00:07:10,660 --> 00:07:18,870
We're going to say what we want to call this let's say at BJC because it's just an object to see runtime

114
00:07:18,880 --> 00:07:21,240
function.

115
00:07:21,910 --> 00:07:25,240
We're going to say phunk on long press.

116
00:07:25,630 --> 00:07:33,490
And the gesture is going to be of type long press gesture trochaic Nizer and that's what we use.

117
00:07:33,520 --> 00:07:43,030
Let's go back up here to the top and the selector is going to be worth my auto complete Where's my complete.

118
00:07:43,530 --> 00:07:45,130
It's not working for us that's fine.

119
00:07:45,130 --> 00:07:51,460
So like there's going to be on long press you go now.

120
00:07:51,520 --> 00:07:53,080
Now it came to our aid.

121
00:07:53,110 --> 00:07:53,380
All right.

122
00:07:53,380 --> 00:07:53,840
Great.

123
00:07:54,010 --> 00:07:56,530
And so what we're going to do is just copy and paste it two more times.

124
00:07:56,530 --> 00:08:01,960
I know it sounds like it's the wrong thing to do but it's not because each gesture needs to hold a reference

125
00:08:01,960 --> 00:08:08,320
to its own view a gesture one gesture to gesture three and then we're also going to use a gesture one

126
00:08:08,490 --> 00:08:16,360
at minimum the minimum restoration equals 0.1 we're going to make it really small like a small long

127
00:08:16,360 --> 00:08:19,220
press because we wanted to start working right away.

128
00:08:19,330 --> 00:08:21,900
Copy this two more times.

129
00:08:22,090 --> 00:08:23,500
I know it doesn't seem very dry.

130
00:08:23,500 --> 00:08:25,430
Don't repeat yourself.

131
00:08:25,580 --> 00:08:27,050
This is the way we got to do it.

132
00:08:27,460 --> 00:08:35,710
And then let's go ahead and say rotate and add gesture recognizer and he did the image.

133
00:08:35,710 --> 00:08:36,800
That's funny.

134
00:08:36,800 --> 00:08:39,350
Rotate all right.

135
00:08:39,360 --> 00:08:42,820
Now do we not make her Iby outlet's Oh we didn't.

136
00:08:42,840 --> 00:08:47,280
Guys what the heck why don't you tell me we didn't make her ideologies.

137
00:08:47,280 --> 00:08:48,480
I said we were going to do it.

138
00:08:48,750 --> 00:08:50,650
But then we didn't.

139
00:08:50,670 --> 00:08:53,010
Silly me yes proben waiting this whole time.

140
00:08:53,010 --> 00:08:54,670
When are you going to do it.

141
00:08:54,690 --> 00:09:04,590
All right so control drag and this is going to be called rotate DTN so names exco drives me crazy.

142
00:09:04,620 --> 00:09:07,300
Just give me random errors is all OK.

143
00:09:07,770 --> 00:09:08,780
Control drag.

144
00:09:09,150 --> 00:09:12,530
And we're going to call this rotate button.

145
00:09:12,650 --> 00:09:13,650
All right.

146
00:09:13,650 --> 00:09:17,550
Sometimes when they're all close together like that and you direct control drag it throws an error.

147
00:09:17,550 --> 00:09:26,300
So this one we're going to call them we'll call this up button.

148
00:09:28,560 --> 00:09:29,370
Yeah.

149
00:09:29,580 --> 00:09:32,810
And then what we'll do is we'll make a new one called Down button

150
00:09:35,780 --> 00:09:37,520
down between.

151
00:09:37,850 --> 00:09:38,820
OK now we're good.

152
00:09:38,840 --> 00:09:43,220
Let's close the assistant editor and go back into our rant placer.

153
00:09:43,430 --> 00:09:43,910
Wonderful.

154
00:09:43,910 --> 00:09:53,450
Now we can say rotate DTN add gesture recognizer gesture one and then we're going to say up between

155
00:09:53,590 --> 00:10:07,850
dot and gesture recognizer gesture to and then down and add gesture recognizer gesture three.

156
00:10:08,150 --> 00:10:11,190
I know it's a lot but we're getting close.

157
00:10:11,330 --> 00:10:14,240
So we're just adding gesture recognizers for each of these views.

158
00:10:14,750 --> 00:10:17,610
And this looks good to me.

159
00:10:17,780 --> 00:10:19,970
Now go down here to our on long press.

160
00:10:19,970 --> 00:10:20,840
What do we want to do.

161
00:10:20,900 --> 00:10:23,910
Well what we want to do is if.

162
00:10:24,020 --> 00:10:27,910
So basically whenever a long press is happening we want to detect when it started.

163
00:10:27,970 --> 00:10:31,370
So we also want to detect when it ended if it if it began.

164
00:10:31,490 --> 00:10:36,090
We want to go ahead and what we want to do is run an action forever it's going to move it down forever.

165
00:10:36,290 --> 00:10:42,350
So what's funny is when our fingers down the fact that the fingers down doesn't really matter it's not

166
00:10:42,660 --> 00:10:48,200
we're kind of secretly doing something under the hood we're actually doing an action forever.

167
00:10:48,200 --> 00:10:51,620
But we also detect when your finger comes up and then we stop the action.

168
00:10:51,650 --> 00:10:51,940
Right.

169
00:10:51,950 --> 00:10:54,680
So we don't have to do any complex math anything crazy.

170
00:10:54,830 --> 00:10:59,750
We just got to use our brains to do something smart and we're going to some smart.

171
00:10:59,870 --> 00:11:01,520
So no big deal.

172
00:11:01,940 --> 00:11:06,990
So on long press if left ramp equals ramp is selected ramp.

173
00:11:07,820 --> 00:11:08,560
OK.

174
00:11:09,260 --> 00:11:13,570
So let's make sure that we actually have a ramp to actually manipulate with the controls.

175
00:11:13,880 --> 00:11:22,200
And then what we're going to do is we're going to say if a gesture does state equals that ended OK if

176
00:11:22,200 --> 00:11:24,330
it equals that ended what are we going to do.

177
00:11:24,660 --> 00:11:28,780
Or to say ramp up remove all actions.

178
00:11:29,500 --> 00:11:31,680
And what equals is what I meant to do.

179
00:11:31,700 --> 00:11:34,040
This is not javascript.

180
00:11:34,150 --> 00:11:34,860
OK.

181
00:11:35,450 --> 00:11:41,590
Else if just your state equals began.

182
00:11:41,810 --> 00:11:42,810
What do we want to do.

183
00:11:43,010 --> 00:11:46,980
Well first off we need to see which button was pressed.

184
00:11:47,110 --> 00:11:47,580
OK.

185
00:11:47,720 --> 00:11:49,400
So that's easy.

186
00:11:49,400 --> 00:11:52,910
We just need to run some up some some reference checking.

187
00:11:52,910 --> 00:12:00,110
So what we're going to do is we're going to say if gesture that view equals the same do use the triple

188
00:12:00,110 --> 00:12:00,890
equal sign.

189
00:12:01,010 --> 00:12:03,390
Ok rotate button.

190
00:12:04,150 --> 00:12:04,360
OK.

191
00:12:04,370 --> 00:12:09,650
So if you are kind of new to swift and you're diving into this more complex topic of augment or of your

192
00:12:09,650 --> 00:12:13,090
augmented reality what's the difference between a double equal and triple.

193
00:12:13,090 --> 00:12:16,360
Equals well a double equal is just checking type and value.

194
00:12:16,470 --> 00:12:18,950
OK a triple equals is actually checking the reference.

195
00:12:18,950 --> 00:12:23,750
So what we're doing is we're saying we're actually grabbing a memory location and checking it against

196
00:12:23,750 --> 00:12:24,680
this memory location.

197
00:12:24,680 --> 00:12:31,250
You know you know x x 0 x whatever this memory slot we're seeing if it's in the same slot in memory.

198
00:12:31,310 --> 00:12:35,470
So is the view that the gesture is on the exact same view as the rotate by.

199
00:12:35,480 --> 00:12:37,680
And we know that rotate was pressed.

200
00:12:37,710 --> 00:12:42,500
OK remember we couldn't do Iby actions for those buttons where we we we we just know it was pressed

201
00:12:42,500 --> 00:12:46,070
because what we wanted to do was detect when it's a long press down.

202
00:12:46,070 --> 00:12:48,800
And when the finger comes up we had to use gesture recognizers.

203
00:12:48,950 --> 00:12:54,380
And so we're checking the reference in memory of the view that matches the gesture and making sure it's

204
00:12:54,380 --> 00:12:54,850
attached.

205
00:12:54,950 --> 00:13:00,470
So if the view that was just pressed is the rotate button that's all we're saying here as if it's the

206
00:13:00,470 --> 00:13:01,840
same one in memory.

207
00:13:01,860 --> 00:13:04,080
Ok then let's just go ahead and rotate.

208
00:13:04,100 --> 00:13:12,670
So let rotate equals CNA action that repeat forever like so.

209
00:13:12,890 --> 00:13:16,380
See an action rotate by.

210
00:13:16,610 --> 00:13:19,750
And we're going to say zero.

211
00:13:19,880 --> 00:13:25,200
And on the why we're going to say full light and where to say zero point is 0 8.

212
00:13:25,230 --> 00:13:32,510
So a number that I tested out times double dot pi k and Z we're not going to rotate at all.

213
00:13:32,520 --> 00:13:33,740
And the duration is 0.1.

214
00:13:33,740 --> 00:13:38,000
So it's very similar to the code we wrote to rotate before except this one is faster.

215
00:13:38,000 --> 00:13:42,020
We want it to rotate faster when we sit there holding it down forever.

216
00:13:42,050 --> 00:13:48,240
So rotate and there were a ramp that run action or cirrhotic.

217
00:13:48,320 --> 00:13:52,480
So when the finger comes down on the road Taban start action that goes forever.

218
00:13:52,490 --> 00:13:53,440
It rotates forever.

219
00:13:53,630 --> 00:13:56,080
And then of course when your finger comes up we just remove the action.

220
00:13:56,090 --> 00:14:01,810
So it simulates like your finger being down is actually actually moving something when it's really not.

221
00:14:01,820 --> 00:14:05,290
It's this action here that we started once and once.

222
00:14:05,290 --> 00:14:14,120
So if you gesture that view equals the up button.

223
00:14:14,360 --> 00:14:14,670
OK.

224
00:14:14,690 --> 00:14:16,520
What do we want to do we want to move it up.

225
00:14:16,580 --> 00:14:20,180
So let move it was as an action.

226
00:14:20,360 --> 00:14:22,170
Repeat forever.

227
00:14:22,820 --> 00:14:26,920
And action that move by.

228
00:14:27,860 --> 00:14:31,600
And we're going to say zero Hoopes.

229
00:14:31,900 --> 00:14:32,790
We're going to say

230
00:14:36,230 --> 00:14:39,370
an action that moved by.

231
00:14:39,590 --> 00:14:40,340
I did it wrong.

232
00:14:40,400 --> 00:14:42,860
My bad move by.

233
00:14:42,850 --> 00:14:44,270
That's the one we want.

234
00:14:44,270 --> 00:14:50,990
And then we went to zero and then negative zero point zero eight for the speed and the Z is going to

235
00:14:50,990 --> 00:14:52,990
be zero and the duration is 0.1.

236
00:14:53,000 --> 00:14:53,930
OK.

237
00:14:54,320 --> 00:14:55,350
So that's the.

238
00:14:55,500 --> 00:14:56,980
Well not negative.

239
00:14:56,980 --> 00:14:58,040
This would be down.

240
00:14:58,040 --> 00:15:00,860
So eight points or eight would be up.

241
00:15:01,070 --> 00:15:01,600
OK.

242
00:15:01,880 --> 00:15:08,160
And then we're to say ramp up run action and we're going to say move.

243
00:15:08,950 --> 00:15:09,540
OK.

244
00:15:09,860 --> 00:15:17,880
And then we're going to say LCF gesture that view equals down button.

245
00:15:17,890 --> 00:15:26,160
We're going to copy this Lexow and then we'll add the we'll add the negative.

246
00:15:26,380 --> 00:15:27,830
The mind is simple there.

247
00:15:27,850 --> 00:15:28,550
OK.

248
00:15:28,970 --> 00:15:32,850
So when we start rotating let's run.

249
00:15:32,900 --> 00:15:36,030
Repeat for every rotation action if or up or down.

250
00:15:36,140 --> 00:15:41,300
We just wrote all this code and then when we remove all the actions and that's on a long press we added

251
00:15:41,300 --> 00:15:45,750
the recognizer So technically this would all work out of the box for us here.

252
00:15:45,980 --> 00:15:48,160
Let's see if it actually does.

253
00:15:48,170 --> 00:15:52,900
So let me go ahead and run the app.

254
00:15:53,710 --> 00:15:53,960
OK.

255
00:15:53,960 --> 00:15:59,390
So the app is running and I'm recording it and here I'm going to press the button and I'm going to select

256
00:16:01,200 --> 00:16:06,890
the pyramid I'm going to tap and the pyramid is there.

257
00:16:07,350 --> 00:16:11,250
But my crew controls didn't appear and that's because we forgot to unhide them.

258
00:16:11,340 --> 00:16:16,920
So let's go back over here to our place ramp.

259
00:16:17,040 --> 00:16:26,040
Perfect and what we want to do is just say controls dot hidden equals hidden equals false.

260
00:16:26,280 --> 00:16:29,100
And let's go ahead and run this again.

261
00:16:29,100 --> 00:16:37,350
Running it going to select the ramp in a tap to place the ramp is there and the rotate button that's

262
00:16:37,350 --> 00:16:37,790
working.

263
00:16:37,800 --> 00:16:39,570
I don't press the down button.

264
00:16:40,670 --> 00:16:43,460
And that's working and the Upperton is working as well.

265
00:16:43,520 --> 00:16:46,930
Let's see if the Remove button is working which it is.

266
00:16:47,030 --> 00:16:48,290
Let's see if we can place another ramp.

267
00:16:50,600 --> 00:16:52,650
There's a quarter pipe way up there too.

268
00:16:52,700 --> 00:16:57,380
I placed that one up there which I can't delete now.

269
00:16:58,040 --> 00:17:02,430
That's a feature upgrade you can add let's move it down here.

270
00:17:02,530 --> 00:17:02,820
Yeah.

271
00:17:02,840 --> 00:17:04,880
So it's definitely working.

272
00:17:04,880 --> 00:17:06,180
Very very cool.

273
00:17:06,200 --> 00:17:08,690
And let's just make sure our half pipe is working I'm deleting that

274
00:17:12,440 --> 00:17:16,160
and that's working to look at that.

275
00:17:16,460 --> 00:17:19,390
Now of course we need to really be outside to do this.

276
00:17:19,470 --> 00:17:20,070
And

277
00:17:22,750 --> 00:17:24,820
to see what it's going to be like the scale and everything.

278
00:17:24,830 --> 00:17:32,380
And currently where I live it's dark but we've already seen what it looks like here on the privey video.

279
00:17:32,380 --> 00:17:35,210
So I did this earlier show that here.

280
00:17:35,480 --> 00:17:37,330
And cool.

281
00:17:37,730 --> 00:17:38,660
This is really cool.

282
00:17:38,840 --> 00:17:39,680
How do we do one more thing.

283
00:17:39,680 --> 00:17:42,410
We just clean up our our pop up.

284
00:17:42,410 --> 00:17:46,310
I don't like the fact that there's no border on our rent picker pop up.

285
00:17:46,310 --> 00:17:56,030
Let's just quickly have some fun with that so wrap picker ramp picker here and let's just do it in here.

286
00:17:56,030 --> 00:18:03,800
So what we're going to do is we're going to see you flared up border color equals color literal white

287
00:18:03,890 --> 00:18:11,640
is fine and then view layered up border with ECOs 3.00 just make it look nice and pretty.

288
00:18:11,670 --> 00:18:15,640
Here we'll do on the simulator this time and run it.

289
00:18:16,310 --> 00:18:19,200
OK we're not going to see anything obviously because it's not working.

290
00:18:19,240 --> 00:18:20,670
Click the invisible button.

291
00:18:22,650 --> 00:18:24,650
And there's definitely a border on here.

292
00:18:24,720 --> 00:18:28,650
So that's what we want and it looks really good with our camera in the background so that's it we're

293
00:18:28,650 --> 00:18:30,930
going to call this video done.

294
00:18:30,930 --> 00:18:36,180
So what we've done here is we've created our very first aid kit app.

295
00:18:36,210 --> 00:18:36,890
OK.

296
00:18:37,140 --> 00:18:38,910
We are working.

297
00:18:38,940 --> 00:18:43,720
We basically have a pop up that appears where you can select one of three models and then we select

298
00:18:43,720 --> 00:18:48,540
that dismiss the pop up and we can place it on the screen using the screen or the surface detection

299
00:18:48,540 --> 00:18:51,150
technology and you learn how to do that.

300
00:18:51,180 --> 00:18:54,500
And there's so much more to a market to learn.

301
00:18:54,510 --> 00:19:00,660
But we've done a lot here and you can move things around in the 3-D space and it tracks where they are

302
00:19:00,660 --> 00:19:03,500
so you can actually walk around and turn your phone and still be there.

303
00:19:03,690 --> 00:19:06,030
Which is pretty dang cool.

304
00:19:06,030 --> 00:19:09,660
Imagine all the things you could do you can make a 3D game with the Worlds and environments and walk

305
00:19:09,660 --> 00:19:12,730
around and have enemies and everything stays in place.

306
00:19:12,750 --> 00:19:16,710
Really cool stuff with the service technology of course that's really important.

307
00:19:16,710 --> 00:19:19,790
Used to have to use your coach right to detect the surface.

308
00:19:19,890 --> 00:19:24,900
Now it actually does the surface detection real time which is amazing so really good stuff here we've

309
00:19:24,900 --> 00:19:25,410
done a lot.

310
00:19:25,410 --> 00:19:31,290
It can get complex but this is a good step in the right direction for you in your adventures in air

311
00:19:31,280 --> 00:19:31,580
kits.

312
00:19:31,590 --> 00:19:32,190
That's it.

313
00:19:32,190 --> 00:19:34,350
Marc price you're a Dove soaps dot com.

314
00:19:34,380 --> 00:19:35,070
See you next time.

