WEBVTT

1
00:00.430 --> 00:06.160

หลังจากที่เราได้เพิ่มไลบรารีที่จำเป็นสำหรับโปรเจกต์
Paging App

2
00:06.160 --> 00:11.080
ของเราเรียบร้อยแล้ว
ขั้นตอนต่อไปเราจะมาวางแผนกัน

3
00:11.110 --> 00:23.050

สิ่งที่เราจะทำภายในโค้ดเพื่อให้แอปการเลื่อนหน้าถูกสร้างขึ้นตามมาตรฐาน
MVP M และไลบรารีการเลื่อนหน้า

4
00:23.050 --> 00:27.670
Retrofit และ dagger health

5
00:27.790 --> 00:30.640
นี่คือสถาปัตยกรรม MVP AMP

6
00:30.640 --> 00:37.900
และแน่นอนว่า
เมื่อพูดถึงการปรับปรุงระบบให้ทันสมัย
เราจะดึงข้อมูลจาก

7
00:38.200 --> 00:41.860
API ซึ่งเป็นบริการเว็บหรือฐานข้อมูลออนไลน์

8
00:42.070 --> 00:46.450

ดังนั้นแหล่งข้อมูลระยะไกลจะเป็นเช่นเดียวกับการติดตั้งเพิ่มเติม

9
00:47.050 --> 00:51.760
ฉันจะแบ่งแผนภูมินี้ออกเป็นสามส่วน

10
00:52.210 --> 00:56.350
ดังที่เราได้เรียนรู้มาก่อนแล้ว เรามีมุมมอง

11
00:56.530 --> 00:59.550
เรามีโมเดลมุมมองและโมเดล

12
00:59.890 --> 01:08.200

ดังนั้นกิจกรรมในแอปของเราจะมีเพียงกิจกรรมเดียวเท่านั้น
ซึ่งเป็นกิจกรรมหลักที่แสดงภาพยนตร์ใน
Recycler View และ

13
01:08.320 --> 01:16.420
View Model ซึ่งประกอบด้วย View Model

14
01:16.420 --> 01:24.670
และข้อมูลสด รวมถึง Model ที่เชื่อมต่อกับ
Repository

15
01:24.670 --> 01:33.580

ซึ่งเป็นแหล่งข้อมูลระยะไกลที่ปรับใช้แล้วและ
Web Service เราจะใช้วิธี

16
01:33.580 --> 01:34.720
Dagger Hilt
และเราจะแนะนำไลบรารีการแบ่งหน้า
ซึ่งเป็นเป้าหมายหลักของโครงการนี้

17
01:35.020 --> 01:37.750
ดังนั้น ไปที่ Android Studio กันเถอะ

18
01:39.070 --> 01:43.370

มาเริ่มสร้างแพ็กเกจกันที่นี่และทำให้ทุกอย่างชัดเจน

19
01:43.390 --> 01:46.330
ดังนั้น แพ็กเกจ ชุดแรกจะเป็นโมเดล

20
01:47.110 --> 01:53.050
และภายในโมเดลนี้ ฉันจะสร้างสองคลาส คือ
คลาสภาพยนตร์ และคลาสภาพยนตร์สื่อ

21
01:53.230 --> 01:54.850
นี่คือภาพยนตร์

22
01:55.840 --> 02:01.330

และขอให้ฉันแก้ไขบางสิ่งบางอย่างที่สำคัญมากเกี่ยวกับโทรทัศน์ภาพยนตร์

23
02:04.020 --> 02:05.100
หลังจากที่คุณลงทะเบียนแล้ว

24
02:06.090 --> 02:06.870
ในเรื่องนั้น

25
02:07.320 --> 02:09.600
เว็บไซต์ภาพยนตร์ DB dot org

26
02:09.630 --> 02:19.050
คุณคลิกที่เพิ่มเติม API และจะเห็นหน้านี้
จากนั้นเราคลิกที่นักพัฒนา และเอกสาร DP
ของภาพยนตร์

27
02:19.050 --> 02:21.920
ดังนั้น นี่จะโหลดเอกสารเหล่านั้น

28
02:23.170 --> 02:30.700

และนั่นจากแบบฝึกหัดก่อนหน้านี้และแอปพลิเคชันก่อนหน้านี้ที่เราได้เห็นแล้วว่า
API, ฐานข้อมูลภาพยนตร์

29
02:30.970 --> 02:34.270
arc, นี่คือลิงก์ที่คงที่

30
02:34.840 --> 02:39.430
และนี่คือลิงก์จุดสิ้นสุด

31
02:39.460 --> 02:49.210

นี่คือลิงก์ที่เราจะดึงมาและเราจะแก้ไขตามความต้องการของเรา

32
02:49.450 --> 02:49.810
ดังนั้น

33
02:52.160 --> 02:55.780
ดังนั้นคำตอบทั้งหมดจะเป็นแบบนี้

34
02:55.790 --> 03:01.610
ดังนั้นฉันจะคัดลอกสิ่งนี้ออกจากรายละเอียด

35
03:01.610 --> 03:04.910
และฉันจะเลือก Jason สำหรับ Defi ออนไลน์

36
03:04.940 --> 03:07.020
นี่คือเจสันสำหรับองค์กรนั้น

37
03:07.370 --> 03:16.190

นี่คือเว็บไซต์ที่ดีสำหรับการกำหนดการตอบสนอง
JSON และเราวางการตอบสนองของเรา

38
03:16.370 --> 03:17.750
ดังนั้นเราจึงมาอยู่ที่นี่

39
03:17.930 --> 03:18.770
เราไป

40
03:18.770 --> 03:21.620
เราเคยมีแบบนั้นมาแล้ว

41
03:22.760 --> 03:31.940
อย่างไรก็ตาม ในแอปนี้
เราจะไม่ดึงและรับข้อมูลทั้งหมดที่การตอบสนอง

42
03:31.940 --> 03:33.620
JSON นี้จะแสดงให้เราเห็น

43
03:34.100 --> 03:44.120
ดังนั้นเราจะดึงเฉพาะชื่อ, ID

44
03:44.120 --> 03:44.820
และเส้นทางของโปสเตอร์
ซึ่งเป็นรูปภาพและค่าเฉลี่ยของคะแนนโหวตเท่านั้น

45
03:44.840 --> 03:45.410
โอเค

46
03:45.920 --> 03:46.280
ดังนั้น

47
03:48.350 --> 03:57.410
อีกสิ่งสำคัญที่ฉันควรกล่าวถึงหากคุณไปที่
developers dot they're movie DB dot

48
03:57.410 --> 04:04.040
org slash three strata slash getting

49
04:04.040 --> 04:07.160
started and introduction ซึ่งก็คือ API
สำหรับเอกสารสำหรับนักพัฒนาให้เลื่อนลงไปที่ภาพยนตร์

50
04:07.400 --> 04:10.610
และเรากำลังจะได้รับความนิยมขนาดนั้น

51
04:11.030 --> 04:11.560
โอเค

52
04:11.600 --> 04:19.910

นี่คือโฆษณาที่เราจะได้รับคำขอเพื่อทำงานด้วย

53
04:20.150 --> 04:26.390

และนี่คือเพจซึ่งเป็นจำนวนเต็มที่เราจะใช้เพจนี้หรือที่มุมมองในไลบรารีการแบ่งหน้าด้วยมัน

54
04:26.510 --> 04:26.950
โอเค

55
04:27.530 --> 04:36.230
ดังนั้นถ้าเราไปที่นี่และระบุคีย์ API
ให้ฉันและนี่คือคีย์ API ของฉัน

56
04:38.430 --> 04:44.670
ฉันคัดลอกและวางที่นี่จริงๆ
และส่งคำขอไปแล้ว

57
04:44.880 --> 04:47.340
มันจะมอบสิ่งนี้ให้กับเรา

58
04:49.030 --> 04:49.440
โอเค

59
04:49.450 --> 04:50.830
มีข้อผิดพลาด

60
04:51.160 --> 04:52.720
ตรวจสอบเครื่องมือสำหรับนักพัฒนา

61
04:53.440 --> 04:53.890
มี

62
04:54.370 --> 04:55.930
เราจะมาถึงที่นี่

63
04:56.080 --> 04:58.840
หน้านี้เท่ากับหนึ่ง

64
04:58.870 --> 05:05.140
ดังนั้น หากเรากำหนดหน้า 4 ถึง 5
หน้าที่มีค่าเท่ากับห้าจะถูกเพิ่มเข้าไป

65
05:05.350 --> 05:14.440
ดังนั้นหากเราลบหน้าออก
คำขอที่นี่จะเป็นการลบหน้า

66
05:14.440 --> 05:17.080

ซึ่งหน้าดังกล่าวเป็นหน้าเริ่มต้นที่เท่ากับหนึ่งหน้า

67
05:17.500 --> 05:28.180
ทุกคนครับ
ผมอยากให้พวกคุณเข้าใจว่าทำไมเราถึงจะใช้หน้านี้

68
05:28.180 --> 05:29.350
และสำหรับคำขอส่งนี้ คำขอฉบับนี้

69
05:29.350 --> 05:38.320
และเมื่อระบุคีย์ API
ในการฝึกฝนก่อนหน้านี้และการเรียก API

70
05:38.320 --> 05:42.340
ก่อนหน้า เช่น
ฐานข้อมูลภาพยนตร์และแอปภาพยนตร์โปรที่เรามี
ให้สร้างมันขึ้นมาก่อน

71
05:42.850 --> 05:51.130
เราไม่ได้ระบุหมายเลขของหน้าไว้

72
05:51.130 --> 05:51.700
แต่ตอนนี้เราจะดึงข้อมูลนั้นตามหน้า

73
05:51.910 --> 06:01.780
ดังนั้น หากผู้ใช้เลื่อนลงมาเบา ๆ ห้าหน้า
และต้องการแสดงภาพยนตร์

74
06:01.780 --> 06:12.130
50 เรื่องแรก เราจะไม่แสดงภาพยนตร์ทั้งหมด 1
ล้านเรื่องและภาพยนตร์ทั้งหมดในเว็บไซต์ภายในฐานข้อมูลภาพยนตร์นั้น

75
06:12.130 --> 06:20.860
เราจะดึงข้อมูลเพียง 50 เรื่องแรกเท่านั้น
และนี่คือเหตุผลที่เราจะใช้ไลบรารีหน้าและไลบรารีการแบ่งหน้า

76
06:21.120 --> 06:26.980
โอเค
งั้นเราจะดึงข้อมูลนั้นตามหน้าที่ต้องการ

77
06:28.750 --> 06:29.230
โอเค

78
06:29.770 --> 06:36.370
ไม่ใช่ นี่คือคำตอบ JSON ที่เราจะได้รับ

79
06:36.700 --> 06:44.450
ตามที่ผมได้กล่าวไว้ เราต้องการบัตรประจำตัว
เราต้องการเส้นทางโปสเตอร์นั้น
และเราต้องการคะแนนเสียง

80
06:45.160 --> 06:47.650
การนับคะแนนหรือค่าเฉลี่ยคะแนนเสียง

81
06:48.280 --> 06:48.580
โอเค

82
06:49.060 --> 06:57.340
ดังนั้น
นี่คือสามสิ่งที่เราจะได้รับจากภาพยนตร์ DP
The Talk

83
06:58.240 --> 07:11.710

แต่มีอีกสิ่งหนึ่งที่ฉันควรจำไว้เมื่อดึงข้อมูลจากภาพยนตร์
D.B. คำตอบนั้นจะไม่มาในลักษณะเหมือนกับ

84
07:11.920 --> 07:21.460
Jason
ที่วางแผนไว้ภายในและทั้งหมดอยู่ในอาร์เรย์เดียว

85
07:22.030 --> 07:32.830
พวกเขาถูกบรรจุอยู่ในสิ่งที่มีลำดับซ้อนกัน
เช่น ผลลัพธ์ของหน้า, จำนวนหน้าทั้งหมด
และจำนวนผลลัพธ์ทั้งหมด เป็นต้น

86
07:33.850 --> 07:41.380

ดังนั้นถ้าเราไปที่คำจำกัดความที่นี่และเลื่อนลงไป
คำตอบที่นี่จะได้รับข้อมูลเกี่ยวกับเรื่องนี้

87
07:42.670 --> 07:48.460
มันคือวัตถุและมีหน้านั้นเป็นจำนวนเต็ม

88
07:48.460 --> 07:55.900
ผลลัพธ์
ซึ่งก็คือชุดของภาพยนตร์ที่เป็นรายการภาพยนตร์
ผลลัพธ์

89
07:55.900 --> 07:57.070
วัตถุ ผลลัพธ์ทั้งหมด และจำนวนหน้าทั้งหมด

90
07:57.070 --> 08:06.790

ดังนั้นการตอบสนองของเจสันหรือรายการภาพยนตร์จึงไม่ได้อยู่ในรูปแบบของวัตถุธรรมดา

91
08:07.030 --> 08:15.910
มันอยู่ภายในวัตถุขนาดใหญ่
และภายในวัตถุนี้ซึ่งมีสี่สิ่งเป็นคุณสมบัติ
ได้แก่

92
08:15.910 --> 08:18.580
ผลลัพธ์ของหน้า, ผลลัพธ์ทั้งหมด
และจำนวนหน้าทั้งหมด

93
08:18.790 --> 08:26.200

และภายในผลลัพธ์นั้นจะมีวันที่ของภาพยนตร์ที่เราจะได้รับ
ซึ่งเป็นเส้นทางของโปสเตอร์

94
08:26.200 --> 08:30.520
แนวคิด และคะแนนเฉลี่ย

95
08:30.760 --> 08:37.990
ดังนั้น
ฉันต้องการให้คุณเข้าใจสิ่งนี้และลำดับชั้นนี้

96
08:39.460 --> 08:48.000
เราจะสร้างคลาสของ Modal สองคลาสใน order
เพื่อให้ได้และดึงข้อมูลของ Jason
อย่างถูกต้อง

97
08:48.010 --> 08:53.800
ดังนั้นอันแรกคือภาพยนตร์
และอันที่สองคือคำตอบต่อภาพยนตร์

98
08:56.490 --> 08:58.200
ภาพยนตร์ตอบกลับที่นี่

99
08:58.740 --> 09:01.820
อย่างที่ผมบอกคุณไปแล้ว นี่คือคำตอบที่สำคัญ

100
09:01.830 --> 09:05.850

นี่คือการตอบสนองทั้งหมดที่ดึงข้อมูลรวมถึงผลลัพธ์ด้วย

101
09:06.290 --> 09:06.750
โอเค

102
09:06.900 --> 09:20.370

ดังนั้นเราเริ่มต้นด้วยการสร้างคำอธิบายประกอบแบบอนุกรมนั้น
ชื่ออนุกรมที่เหมาะสม

103
09:21.120 --> 09:21.630
ซึ่งก็คือหน้าที่นี่

104
09:23.510 --> 09:36.500
ดังนั้นเราจึงได้รับวัตถุนั้นในรูปแบบ JSON

105
09:37.910 --> 09:39.560
และเปิดเผยคำอธิบายประกอบ
โดยเราจะเริ่มต้นด้วยการสร้างหน้าค่าจำนวนเต็มส่วนตัวของพวกเขา

106
09:40.070 --> 09:40.490
โอเค

107
09:44.390 --> 09:55.910

ตอนนี้เราจะสร้างชื่อที่ถูกจัดลำดับซึ่งจะได้ชื่อเดียวกันกับที่นี่คือผลลัพธ์

108
09:55.940 --> 09:57.200
ต้องคำนึงถึงตัวพิมพ์เล็กและใหญ่

109
09:57.200 --> 10:04.550

ดังนั้นเราจึงบอกว่าฉันกำลังนำทุกหน้าไว้ที่นี่
ข้อมูลทั้งหมดนี้ ซึ่งเป็นจำนวนเต็ม

110
10:05.090 --> 10:13.700

ฉันสามารถทำให้มันอยู่ในและภายในหมายเลขหน้านี้และยังสามารถแสดงที่นี่ได้

111
10:14.580 --> 10:21.200

ฉันกำลังใส่ผลลัพธ์ทั้งหมดไว้ในรายการของเราเพราะมันแสดงผลที่นี่

112
10:21.410 --> 10:24.530
มันคืนค่าเป็นรายการของภาพยนตร์

113
10:25.250 --> 10:25.660
โอเค

114
10:25.840 --> 10:27.380
และชุดของวัตถุ

115
10:27.500 --> 10:28.940
อาร์เรย์ของชนิด object

116
10:28.940 --> 10:32.440
วัตถุนี้คือประเภทภาพยนตร์

117
10:32.450 --> 10:35.540
ทุกคนครับ กรุณาตั้งใจฟังผมด้วย

118
10:35.780 --> 10:37.460
อาร์เรย์ของอ็อบเจ็กต์

119
10:37.460 --> 10:38.920
ประเภทของวัตถุคืออะไร?

120
10:38.930 --> 10:40.520
มันคือภาพยนตร์

121
10:40.520 --> 10:47.180

ดังนั้นฉันจะสร้างคลาสและโมเดลคลาสสำหรับวัตถุภาพยนตร์

122
10:47.270 --> 10:47.780
โอเค

123
10:47.930 --> 10:51.290
รายการส่วนตัว

124
10:52.670 --> 10:55.640

รายชื่อภาพยนตร์และภาพยนตร์ที่เรียกชื่อเท่ากันกับหมายเลข

125
10:58.640 --> 11:03.410


126
11:04.160 --> 11:04.380
โอเค

127
11:05.150 --> 11:05.400
โอ้

128
11:05.420 --> 11:09.680
นอกจากนี้
ให้ป้อนเพื่อนำเข้าชุดวลีคอลเลกชัน

129
11:10.790 --> 11:14.900
และตอนนี้ฉันจะสร้าง serialized

130
11:15.620 --> 11:17.600
ชื่อแบบต่อเนื่อง

131
11:18.980 --> 11:20.060
มันถูกตั้งชื่อว่า

132
11:21.180 --> 11:24.210
นี่คือผลลัพธ์ทั้งหมด
โดยจะแยกแยะตัวอักษรใหญ่และเล็ก

133
11:25.590 --> 11:26.340
ผลลัพธ์ทั้งหมด

134
11:29.260 --> 11:30.120


135
11:33.320 --> 11:36.710
และเปิดเผย

136
11:39.440 --> 11:44.030
ขับมันและผลลัพธ์ทั้งหมด

137
11:45.710 --> 11:50.280
และในทำนองเดียวกัน
ฉันก็คอยดูการคัดลอกและวางที่นี่เช่นกัน

138
11:51.050 --> 11:51.340
The.

139
11:52.580 --> 11:54.770
จำนวนหน้าทั้งหมด

140
11:56.460 --> 11:57.000
หน้า

141
12:00.780 --> 12:05.820
แม้ว่าสิ่งนี้จะมีความสำคัญมาก

142
12:06.360 --> 12:06.690
โอเค

143
12:07.050 --> 12:14.670
ตอนนี้
มาสร้างและตั้งค่าเมธอดสำหรับตัวแปรเหล่านี้ที่นี่กัน

144
12:16.740 --> 12:18.930
และตัวรับและตัวตั้งค่าตัวที่สาม

145
12:19.770 --> 12:20.940
และนี่ก็เริ่มแล้ว

146
12:21.560 --> 12:26.040
นี่คือเมธอด getter และ setter

147
12:26.370 --> 12:28.380
ตอนนี้ไปดูหนังเรื่องนั้นกันเถอะ

148
12:28.590 --> 12:32.130
และอย่างที่ฉันบอกคุณไปแล้ว
ภาพยนตร์คือวัตถุ

149
12:32.220 --> 12:35.550
และผลลัพธ์คือชุดของวัตถุเหล่านี้

150
12:35.570 --> 12:44.910
ดังนั้นสิ่งที่เราจะได้รับจากวัตถุนี้
ฉันต้องการแนวคิดเกี่ยวกับเส้นทางของโปสเตอร์และค่าเฉลี่ยของคะแนนโหวต

151
12:45.030 --> 12:48.660
ดังนั้นฉันจะไปที่นี่

152
12:49.440 --> 12:57.810
และในทำนองเดียวกัน
ฉันจะดำเนินการเช่นนั้นเนื่องจากเรากำลังทำงานกับชื่อแบบลำดับของเจสัน

153
12:58.020 --> 12:59.130
นี่ชื่ออะไร? มันเรียกว่า

154
12:59.160 --> 13:00.120
ID

155
13:00.630 --> 13:02.430
นี่คือ ID

156
13:02.850 --> 13:03.900
นั้นใช่ไหม?
ต้องพิมพ์ให้ตรงกับตัวพิมพ์เล็กและใหญ่ด้วย

157
13:03.900 --> 13:06.540
เปิดเผยด้วย

158
13:08.160 --> 13:16.800

และเราจะไปที่ช่องว่างและสร้างส่วนตัวและไอดีตอนนี้

159
13:17.130 --> 13:30.270
อันที่สอง,
เส้นทางของป้ายชื่อแบบอนุกรมซึ่งที่นี่คือสตริง,
bolster, underscore,

160
13:34.200 --> 13:35.640
path และ expose.

161
13:36.810 --> 13:42.840
และเส้นทางของโพสต์สตริงส่วนตัว

162
13:46.370 --> 13:53.510
ชื่อลำดับเดิม serialize โหวต

163
13:56.180 --> 13:57.110
ใต้เส้นขีดกลาง ค่าเฉลี่ย เปิดเผย

164
13:58.610 --> 14:05.990
และค่าเฉลี่ยคะแนนเสียงสองครั้งของบุคคล

165
14:08.240 --> 14:08.630
โอเค

166
14:09.260 --> 14:12.680
นี่คือค่าเฉลี่ยของคะแนนโหวต

167
14:13.250 --> 14:13.610
โอเค

168
14:16.870 --> 14:21.060
ในลักษณะเดียวกันสำหรับ getter และ setter
ทั้งหมด

169
14:21.070 --> 14:25.570

ดังนั้นนี่คือตัวรับและศูนย์กลางของพวกเขาสำหรับสิ่งนั้น

170
14:25.630 --> 14:30.450
ณ ตอนนี้ เราได้ตรวจสอบพวกเขาแล้ว

171
14:32.160 --> 14:41.430
สร้างคลาสโมเดล และเราได้สร้างขึ้นแล้ว
ตอนนี้เรามาเขียนทับสิ่งหนึ่งให้น้อยลง
นั่นคือการเปรียบเทียบค่าเท่ากับแบบบูลีน

172
14:47.640 --> 14:49.470
การยกเลิกคำสั่ง APT

173
14:56.310 --> 14:57.150
เท่าเทียมกัน

174
15:00.350 --> 15:01.760
และฉันจำเป็นต้องทำ

175
15:04.190 --> 15:05.030
สมาชิก

176
15:06.570 --> 15:07.410
ความกังวลของวัยรุ่น

177
15:07.410 --> 15:10.530
ความวิตกกังวลเท่ากับและ hashCode.

178
15:11.310 --> 15:12.870
ฉันไม่จำเป็นต้องใช้ hashCode

179
15:13.440 --> 15:15.930
ฉันต้องหาของตัวเอง

180
15:16.740 --> 15:22.680
หากโอเอชเท่ากับเท่ากับค่าว่าง
ให้คืนค่าเป็นเท็จ

181
15:25.020 --> 15:33.870
และถ้าทุกอย่างที่เท่ากันเท่ากับสิ่งนี้
ให้กลับไปที่ทำ ฉันจะคืนค่า false

182
15:34.650 --> 15:35.100
โอเค

183
15:35.700 --> 15:37.790
การตรวจสอบว่าเท่ากัน

184
15:38.070 --> 15:40.080
และด้วยวิธีนี้เราก็เสร็จสิ้นแล้ว


