1
00:00:00,00 --> 00:00:09,100
Let's start right? yes

2
00:00:09,200 --> 00:00:14,000
What we are going to learn today? [Laughter]

3
00:00:14,100 --> 00:00:18,900
Did I miss it up? Now we see how he started 
a video.

4
00:00:19,000 --> 00:00:23,800
He is the one and only one person who can 
start this much beautiful !!. You may please 
start now.

5
00:00:23,900 --> 00:00:28,700
It's better to do it by myself. We are going 
to study about useEffect.

6
00:00:28,800 --> 00:00:33,600
We have already said about the component, 
state, and update.

7
00:00:33,700 --> 00:00:38,500
When the component getsupdated

8
00:00:38,600 --> 00:00:42,110
We have some life cycle methods,

9
00:00:42,110 --> 00:00:44,510
--A components life style --

10
00:00:44,610 --> 00:00:49,410
It is not life style.ok , then what is that 
?

11
00:00:49,510 --> 00:00:54,310
Wait i will say ok.

12
00:00:54,410 --> 00:00:59,210
There are life cycle methods they are called 
automatically.

13
00:00:59,300 --> 00:01:04,000
When we create a component

14
00:01:04,100 --> 00:01:08,900
There are different functions available

15
00:01:09,000 --> 00:01:13,800
when a component gets updated or rerendered

16
00:01:13,900 --> 00:01:18,700
or a component getting out from there.

17
00:01:18,800 --> 00:01:23,600
It is manditory to understand this three 
life cycle methods, for coding properly.

18
00:01:23,700 --> 00:01:28,500
First thing to understand is Mounting.

19
00:01:28,600 --> 00:01:33,400
Next thing is updating

20
00:01:33,500 --> 00:01:38,300
Mounting means adding a new component.

21
00:01:38,400 --> 00:01:43,200
Updating works when we change the value inside 
the component.

22
00:01:43,300 --> 00:01:48,100
Unmount works when the component get out 
from there.

23
00:01:48,200 --> 00:01:53,000
These are the three things you have to understand 
about useEffect.

24
00:01:53,100 --> 00:01:57,900
This is the story,now let's implement it.

25
00:01:58,000 --> 00:02:02,800
Let's start, with a counter

26
00:02:02,900 --> 00:02:07,700
You are fond of the counter?

27
00:02:07,800 --> 00:02:12,600
I am lazy to code.

28
00:02:12,700 --> 00:02:17,500
rfce -- don't forgot.

29
00:02:17,600 --> 00:02:22,400
We are typing h1 now.

30
00:02:22,500 --> 00:02:27,300
We are activating javascript.

31
00:02:27,400 --> 00:02:32,200


32
00:02:32,300 --> 00:02:37,100


33
00:02:37,200 --> 00:02:42,000
We are going to take this component in app.js.

34
00:02:42,100 --> 00:02:46,900
Let's show and disable this component using 
a button action.

35
00:02:47,000 --> 00:02:51,800
For that we need state.

36
00:02:51,900 --> 00:02:56,700
First just show it,

37
00:02:56,800 --> 00:03:01,600
Am take care of my viewers as my own children.

38
00:03:01,700 --> 00:03:06,500
You can't understand that feeling.

39
00:03:06,600 --> 00:03:11,400
I am taking care of each and everyone's life.

40
00:03:11,500 --> 00:03:26,100
When you are wasting each second, a student 
and family struggling without getting a Job.

41
00:03:26,200 --> 00:03:31,000
Just like in your past.

42
00:03:31,100 --> 00:03:35,900
We have imported a counter; now, let's check 
it.

43
00:03:36,000 --> 00:03:40,800
Yes, it's working. Change the HelloWorld 
with a button.

44
00:03:40,900 --> 00:03:45,700
We can place a onClick in the HelloWorld 
also.

45
00:03:45,800 --> 00:03:50,600
I will show that using this example.

46
00:03:50,700 --> 00:03:55,500
We need a state now.

47
00:03:55,600 --> 00:04:00,400
For understanding enabling or disabling.

48
00:04:00,500 --> 00:04:05,300
React

49
00:04:05,400 --> 00:04:10,200
We are using the use state.

50
00:04:10,300 --> 00:04:15,100
In useState state,setState.

51
00:04:15,200 --> 00:04:20,000
Ok,Calling useState.

52
00:04:20,100 --> 00:04:24,900
Give value false as default.

53
00:04:25,000 --> 00:04:29,800
Don't you know about boolean values? Having 
only true and false values. We will update 
false and true.

54
00:04:29,900 --> 00:04:34,700
We are going to learn a new thing ,We can 
update the state here itself.

55
00:04:34,800 --> 00:04:39,600
We can't invoke state like this.

56
00:04:39,700 --> 00:04:44,500
So will write arrow function there.

57
00:04:44,600 --> 00:04:49,400
Instead of defing function outside we do 
it inside.

58
00:04:49,500 --> 00:04:54,300
We are going to write in one line.

59
00:04:54,400 --> 00:04:59,200
Do you understand this?

60
00:04:59,300 --> 00:05:04,100
State become true if it is false, and true 
if it is false.

61
00:05:04,200 --> 00:05:09,000
In setState

62
00:05:09,100 --> 00:05:13,900
How did the checking happening?

63
00:05:14,000 --> 00:05:18,800
We call state first. If it is false, it becomes 
true.And gets updated.

64
00:05:18,900 --> 00:05:23,700
Next we calling setState it is true,

65
00:05:23,800 --> 00:05:28,600
If it is true it will become false.And gets 
updated.

66
00:05:28,700 --> 00:05:33,500
Can you explain how it works?

67
00:05:33,600 --> 00:05:38,400
Ok,I will comment about it.

68
00:05:38,500 --> 00:05:43,300
First we call state.

69
00:05:43,400 --> 00:05:48,200
The value of state is false.Do you understand?

70
00:05:48,300 --> 00:05:53,100
Yes,

71
00:05:53,200 --> 00:06:02,900
Then what happens, The value of state become 
true.

72
00:06:03,000 --> 00:06:07,800
It is a simple fact, give its opposite value.

73
00:06:07,900 --> 00:06:12,700
Make the value inverse.

74
00:06:12,800 --> 00:06:17,600
State automatically become...

75
00:06:17,700 --> 00:06:22,500
Oposite of its existing value.

76
00:06:22,600 --> 00:06:27,400
We mention that operator as exclamatory mark..[Laughter].

77
00:06:27,500 --> 00:06:32,300
When we use this operator, it inverses the 
value in it.

78
00:06:32,400 --> 00:06:37,200
It changes each time we press the button.

79
00:06:37,300 --> 00:06:42,100
Do you understand ? yes ,ok set.

80
00:06:42,200 --> 00:06:47,000
Let's remove this comment.

81
00:06:47,100 --> 00:06:51,900
Now let's give it as Show.

82
00:06:52,000 --> 00:06:56,800
Give it as Show/Hide.

83
00:06:56,900 --> 00:07:01,700
Let's Run it now.This not a button.

84
00:07:01,800 --> 00:07:06,600
It will not change, because we only change 
the state here.

85
00:07:06,700 --> 00:07:11,500
We have to define the action based on the 
value in state.May i continue this?

86
00:07:11,600 --> 00:07:16,400
For that, what should we do?

87
00:07:16,500 --> 00:07:21,300
We will make this component dynamic.

88
00:07:21,400 --> 00:07:26,200
First, we will check the state whether it 
is true.

89
00:07:26,300 --> 00:07:31,100
Show the counter if the state is true,else 
give a null value to make it empty.

90
00:07:31,200 --> 00:07:36,000
What is the name of this operator? Ternary 
operator.

91
00:07:36,100 --> 00:07:40,900
We can make the if condition also.

92
00:07:41,000 --> 00:07:45,800
Just demonstrate it.

93
00:07:45,900 --> 00:07:50,700
I will show it here.

94
00:07:50,800 --> 00:07:55,600
We have to write the count component inside 
the if condition.

95
00:07:55,700 --> 00:08:00,500
And null inside else case.

96
00:08:00,600 --> 00:08:05,400
We can write it in one single line. [Syntax: 
State?true case: false else]

97
00:08:05,500 --> 00:08:15,200
If state is true we give the value as Counter 
else null.

98
00:08:15,300 --> 00:08:20,100
We can write this either useing if else condition 
or using ternary operator.

99
00:08:20,200 --> 00:08:25,000
Default value is false, hence the counter 
component will not showed here.

100
00:08:25,100 --> 00:08:29,900
It will showed when we click the text.

101
00:08:30,000 --> 00:08:34,800
I will make it much more simple

102
00:08:34,900 --> 00:08:39,700
Here we didn't show anything. sometimes we 
have to show something else here.

103
00:08:39,800 --> 00:08:49,500
Sometimes we need to show the loading. For 
that, we place the loading inside the state 
and show the loading when it is true and 
will not show the loading when the value 
is false.

104
00:08:49,600 --> 00:08:54,400
In this case, let's remove this.

105
00:08:54,500 --> 00:08:59,300
And place an and operator here.

106
00:08:59,400 --> 00:09:04,200
Then what will happen?

107
00:09:04,300 --> 00:09:09,100
It works only when both the state and count 
values are true.

108
00:09:09,200 --> 00:09:14,000
Ok, got it .when the state value is false 
. Automatically it will not work.

109
00:09:14,100 --> 00:09:18,900
Ok, That's a nice idea.

110
00:09:19,000 --> 00:09:23,800
Don't you get this idea? It will work only 
when both the state and counter values become 
true.

111
00:09:23,900 --> 00:09:28,700
Counter object is always there.

112
00:09:28,800 --> 00:09:38,500
But state object value changes when we click 
on the text. When the value of state is false 
in and operator it automatically become false.

113
00:09:38,600 --> 00:09:43,400
In and operator both the values should be 
true to work the action associated with it.

114
00:09:43,500 --> 00:09:48,300
Take that. Now, the default value is true. 
Toggle it.

115
00:09:48,400 --> 00:09:58,100
You may think this show/hide functonality 
works with css property like visible or invisible.

116
00:09:58,200 --> 00:10:03,000
Here it works in a different way

117
00:10:03,100 --> 00:10:07,900
There is thing called Elements.

118
00:10:08,000 --> 00:10:12,800
From there we can see everything, Everything 
is happens inside the body.

119
00:10:12,900 --> 00:10:17,700


120
00:10:17,800 --> 00:10:22,600
Pay attention here.In left side,

121
00:10:22,700 --> 00:10:27,500
You can see a new div is generated when we 
click here.

122
00:10:27,600 --> 00:10:32,400
Open that div.

123
00:10:32,500 --> 00:10:37,300
You can see hello i am a component inside 
the div.

124
00:10:37,400 --> 00:10:42,200
This is known as mounting.

125
00:10:42,300 --> 00:10:47,100
[laughter]

126
00:10:47,200 --> 00:10:52,000
I agreed.

127
00:10:52,100 --> 00:10:56,900
When we click on the text again the div will 
disappear again. That is Unmounting.

128
00:10:57,000 --> 00:11:01,800
Now you know what is mount and unmount.

129
00:11:01,900 --> 00:11:06,700
Now will show the update also, Update is 
nothing but change the value.

130
00:11:06,800 --> 00:11:11,600
Now let's replace h1 with a counter.

131
00:11:11,700 --> 00:11:16,500
Show the unmounting to them.

132
00:11:16,600 --> 00:11:21,400
Pay attention, when we click on the text, 
the div will get disappeared.

133
00:11:21,500 --> 00:11:26,300
Here we are not changing the visibility. 
Instead, we remove the component.

134
00:11:26,400 --> 00:11:31,200
This is amazing.

135
00:11:31,300 --> 00:11:36,100
Now we get it. Place a counter,

136
00:11:36,200 --> 00:11:41,000


137
00:11:41,100 --> 00:11:45,900
You have to manage the state from here.

138
00:11:46,000 --> 00:11:50,800
[useState]

139
00:11:50,900 --> 00:11:55,700


140
00:11:55,800 --> 00:12:00,600


141
00:12:00,700 --> 00:12:05,500
Are you going to place a button in counter?yes

142
00:12:05,600 --> 00:12:10,400


143
00:12:10,500 --> 00:12:15,300
First  I used class components.

144
00:12:15,400 --> 00:12:20,200


145
00:12:20,300 --> 00:12:25,100
Replace with count and setCount.

146
00:12:25,200 --> 00:12:30,000


147
00:12:30,100 --> 00:12:34,900


148
00:12:35,000 --> 00:12:39,800
ok, Make c capital letter.

149
00:12:39,900 --> 00:12:44,700
It is a standard called camelCasing.

150
00:12:44,800 --> 00:12:49,600


151
00:12:49,700 --> 00:12:54,500
[count]

152
00:12:54,600 --> 00:12:59,400
Here we need a button.

153
00:12:59,500 --> 00:13:04,300
For incrementing the counter, let's place 
a button.

154
00:13:04,400 --> 00:13:09,200
[onClick]

155
00:13:09,300 --> 00:13:14,100


156
00:13:14,200 --> 00:13:19,000
We can write it in there itself. Calling 
setCount.

157
00:13:19,100 --> 00:13:23,900
[count+1]

158
00:13:24,000 --> 00:13:28,800
ok,Set

159
00:13:28,900 --> 00:13:33,700
The increment button gets displayed.

160
00:13:33,800 --> 00:13:38,600
We can see the updation here.

161
00:13:38,700 --> 00:13:43,500
This is updating state.

162
00:13:43,600 --> 00:13:53,300
Now we understand Mounting, Unmounting and, 
Updating.

163
00:13:53,400 --> 00:13:58,200
There is a working method for each component.

164
00:13:58,300 --> 00:14:03,100
We can use useEffect when a component changes.

165
00:14:03,200 --> 00:14:08,000


166
00:14:08,100 --> 00:14:12,900
Now you have to add useEffect.

167
00:14:13,000 --> 00:14:17,800
I want to share the truth. We have already 
shot all the content before,

168
00:14:17,900 --> 00:14:22,700
This fellow forgot to record the screen.

169
00:14:22,800 --> 00:14:27,600
He messed it up.

170
00:14:27,700 --> 00:14:32,500
We are repeating the same content, still 
i will make it intreasting for you.

171
00:14:32,600 --> 00:14:37,400
For using useEffect let's import useEffect.

172
00:14:37,500 --> 00:14:42,300
Write useEffect as a function.

173
00:14:42,400 --> 00:14:47,200
useEffect is a function,we call it.

174
00:14:47,300 --> 00:14:52,100
Inside the function, we give arrow function 
as argument.

175
00:14:52,200 --> 00:14:57,000
There is a second argument also. Will introduce 
it to you later.

176
00:14:57,100 --> 00:15:01,900
[Mounting]

177
00:15:02,000 --> 00:15:06,800
We have already shows the arrival and withdrawal 
of the component.

178
00:15:06,900 --> 00:15:11,700


179
00:15:11,800 --> 00:15:16,600
Let's check whether this useEffect works 
while mounting.

180
00:15:16,700 --> 00:15:21,500


181
00:15:21,600 --> 00:15:31,300
Mounting Not works when we loaded it.

182
00:15:31,400 --> 00:15:36,200
Press the Show/Hide.

183
00:15:36,300 --> 00:15:41,100
Now the mounting works

184
00:15:41,200 --> 00:15:46,000
Press the show button again.When we hide 
the text Mounting is not working.

185
00:15:46,100 --> 00:15:50,900


186
00:15:51,000 --> 00:15:55,800
Increment the count now.

187
00:15:55,900 --> 00:16:00,800
Mounting works when we increment the count.While 
we increment the count we updating the view.

188
00:16:00,900 --> 00:16:10,600
We call useEffect function in the time of 
mounting and unmounting as an argument.And 
giving an arrow function inside it.

189
00:16:10,700 --> 00:16:15,500
and giving a console.log or something inside 
the arrow function,

190
00:16:15,600 --> 00:16:20,400
It will works when the component get mounted 
and updated

191
00:16:20,500 --> 00:16:25,300
Make that clear.

192
00:16:25,400 --> 00:16:40,000
Show the unmount now.

193
00:16:40,100 --> 00:16:44,900
[Laughter]

194
00:16:45,000 --> 00:16:49,800


195
00:16:49,900 --> 00:16:54,700
This is cocola.

196
00:16:54,800 --> 00:16:59,600
Don't miss understand me.

197
00:16:59,700 --> 00:17:04,500
ok

198
00:17:04,600 --> 00:17:14,300
What is unmounting? It works when the component 
gets hided.

199
00:17:14,400 --> 00:17:19,200
We are giving a return keyword inside useEffect.

200
00:17:19,300 --> 00:17:24,100
and giving some log inside the return, it 
will work during the unmounting time.

201
00:17:24,200 --> 00:17:29,000
Let's check

202
00:17:29,100 --> 00:17:33,900
Refresh,While showing counter component mounting 
will works.When clicked once again unmounting 
will works.

203
00:17:34,000 --> 00:17:38,800
Very good

204
00:17:38,900 --> 00:17:43,700
Update it

205
00:17:43,800 --> 00:17:48,600
While incrementing both are working.

206
00:17:48,700 --> 00:17:53,500
Ok,Now we understand what is mounting and 
unmounting.

207
00:17:53,600 --> 00:17:58,400
Now we have to do,

208
00:17:58,500 --> 00:18:03,300
Mounting works when ever a change happens 
in the component.

209
00:18:03,400 --> 00:18:08,200
Let's change it in such a way that it works 
only when the mounting happens.

210
00:18:08,300 --> 00:18:13,100
For that let's give a restriction here ,as 
an empty array.

211
00:18:13,200 --> 00:18:18,000
Empty array is the second argument of useEffect.

212
00:18:18,100 --> 00:18:22,900
Save and reload.

213
00:18:23,000 --> 00:18:27,800
Now Mounting prints in console when we increment 
the count nothing will be displayed in the 
console.

214
00:18:27,900 --> 00:18:32,700


215
00:18:32,800 --> 00:18:37,600
useEffects first argument function is here.We 
are giving an array as a second argument 
to the useEffect by seperated by a comma.

216
00:18:37,700 --> 00:18:42,500
When we pass an empty array

217
00:18:42,600 --> 00:18:47,400
It works only the component gets mounted.

218
00:18:47,500 --> 00:18:52,300


219
00:18:52,400 --> 00:18:57,200
It will not work during updating,but umounting 
will works as usual.

220
00:18:57,300 --> 00:19:02,100
Cleared and refreshed.

221
00:19:02,200 --> 00:19:07,000
Mounting showed,

222
00:19:07,100 --> 00:19:11,900
Unmounting showed,While incrementing nothing 
is worked.

223
00:19:12,000 --> 00:19:16,800
Value is changed and view gets updated.

224
00:19:16,900 --> 00:19:21,700
This is because we are passing an empty array.

225
00:19:21,800 --> 00:19:26,600


226
00:19:26,700 --> 00:19:31,500
Let's make useEffect working while updating 
the counter.

227
00:19:31,600 --> 00:19:36,400
For that let's remove this.

228
00:19:36,500 --> 00:19:41,300
No we need that mounting there.

229
00:19:41,400 --> 00:19:46,200
And unmounting also.

230
00:19:46,300 --> 00:19:51,100
We cant write unmounting there.

231
00:19:51,200 --> 00:19:56,000
I will explain the reason later.

232
00:19:56,100 --> 00:20:00,900
Let's print the value also.

233
00:20:01,000 --> 00:20:05,800
[+count]

234
00:20:05,900 --> 00:20:10,700


235
00:20:10,800 --> 00:20:15,600
Now we have to give the count value inside 
the array.

236
00:20:15,700 --> 00:20:20,500
Hence this works during the time of updating.

237
00:20:20,600 --> 00:20:25,400
When the objects which calls the use state 
gets updated.

238
00:20:25,500 --> 00:20:30,300
We can define that here

239
00:20:30,400 --> 00:20:35,200
We can give two useStates here by seperating 
comas.

240
00:20:35,300 --> 00:20:40,100
Now there is an error happens.

241
00:20:40,200 --> 00:20:45,000
Conut declares here and used above that.Place 
that above.

242
00:20:45,100 --> 00:20:49,900
You have to call the useState above here.

243
00:20:50,000 --> 00:20:54,800
Now clear the console,Error resolved.

244
00:20:54,900 --> 00:20:59,700


245
00:20:59,800 --> 00:21:04,600
It Works only when first time mounted.Now 
let's update it by incrementing.

246
00:21:04,700 --> 00:21:09,500
Now it is working during mounting and updating.

247
00:21:09,600 --> 00:21:14,400


248
00:21:14,500 --> 00:21:19,300
Now let's add one more useState.

249
00:21:19,400 --> 00:21:24,200
The count is getting printed during updation.

250
00:21:24,300 --> 00:21:29,100


251
00:21:29,200 --> 00:21:34,000
Add return also.

252
00:21:34,100 --> 00:21:38,900


253
00:21:39,000 --> 00:21:43,800


254
00:21:43,900 --> 00:21:48,700


255
00:21:48,800 --> 00:21:53,600
Will explain you later.

256
00:21:53,700 --> 00:21:58,500
Now let's check,refresh and run.

257
00:21:58,600 --> 00:22:03,400


258
00:22:03,500 --> 00:22:08,300


259
00:22:08,400 --> 00:22:13,200
Did you notice while increment.?

260
00:22:13,300 --> 00:22:18,100
When did the return works?

261
00:22:18,200 --> 00:22:23,000
Yes,during unmounting time.

262
00:22:23,100 --> 00:22:27,900
Take the code..

263
00:22:28,000 --> 00:22:32,800
When we give count value inside the array,

264
00:22:32,900 --> 00:22:37,700
When we update something first it will call 
the return.

265
00:22:37,800 --> 00:22:42,600
For cleanup

266
00:22:42,700 --> 00:22:47,500
First we call this during updation.

267
00:22:47,600 --> 00:22:52,400
First cleanup 0

268
00:22:52,500 --> 00:22:57,300
Then updating one,count prints two values 
in one action.

269
00:22:57,400 --> 00:23:02,200
While pressing increment, cleanup1 and updating 
2

270
00:23:02,300 --> 00:23:07,100
You have to understand that order

271
00:23:07,200 --> 00:23:16,900
First called return, So count value before 
updation prints

272
00:23:17,000 --> 00:23:21,800
After updating the count value changes hence 
the count will print a different value.

273
00:23:21,900 --> 00:23:26,700


274
00:23:26,800 --> 00:23:31,600
Understand the difference clearly

275
00:23:31,700 --> 00:23:36,500
Let's add another count also

276
00:23:36,600 --> 00:23:41,400
How counters works seperately?

277
00:23:41,500 --> 00:23:46,300
add a state

278
00:23:46,400 --> 00:23:51,200
Remove cleanup

279
00:23:51,300 --> 00:23:56,100


280
00:23:56,200 --> 00:24:01,000
Give second states name as count2.

281
00:24:01,100 --> 00:24:05,900


282
00:24:06,000 --> 00:24:10,800
Let's create it once again.

283
00:24:10,900 --> 00:24:15,700
Actually we haveto repeat that component 
, but we follow this method to show as an 
example.

284
00:24:15,800 --> 00:24:20,600


285
00:24:20,700 --> 00:24:25,500


286
00:24:25,600 --> 00:24:30,400


287
00:24:30,500 --> 00:24:35,300


288
00:24:35,400 --> 00:24:40,200
Change the value of count.

289
00:24:40,300 --> 00:24:45,100


290
00:24:45,200 --> 00:24:50,000
Print the value of count in console.

291
00:24:50,100 --> 00:24:54,900
Take the count,

292
00:24:55,000 --> 00:24:59,800
Print count also

293
00:24:59,900 --> 00:25:04,700
Copy that below here..

294
00:25:04,800 --> 00:25:09,600


295
00:25:09,700 --> 00:25:14,500


296
00:25:14,600 --> 00:25:19,400
Give count1 here

297
00:25:19,500 --> 00:25:24,300


298
00:25:24,400 --> 00:25:29,200


299
00:25:29,300 --> 00:25:34,100
Now let's check

300
00:25:34,200 --> 00:25:39,000
Refresh, What is the error?

301
00:25:39,100 --> 00:25:43,900


302
00:25:44,000 --> 00:25:48,800


303
00:25:48,900 --> 00:25:53,700


304
00:25:53,800 --> 00:25:58,600
Let's check what happened.

305
00:25:58,700 --> 00:26:03,500


306
00:26:03,600 --> 00:26:08,400
The value changes in count2

307
00:26:08,500 --> 00:26:13,300
But useEffect is not working

308
00:26:13,400 --> 00:26:18,200
useEffect works only with counter1

309
00:26:18,300 --> 00:26:23,100
Take that code.

310
00:26:23,200 --> 00:26:28,000
It works because we give count here,

311
00:26:28,100 --> 00:26:32,900
Let's give count2 also

312
00:26:33,000 --> 00:26:37,800
Now useEffect works with both counters

313
00:26:37,900 --> 00:26:48,100


314
00:26:48,200 --> 00:26:53,000
We finish the basics now

315
00:26:53,100 --> 00:26:57,900
Next we can start TO DO LIST APPLICATION.

316
00:26:58,000 --> 00:27:02,800


