WEBVTT

1
00:00:03.740 --> 00:00:07.280
<00:00:03.740>I'm <00:00:03.973>going <00:00:04.206>to <00:00:04.440>talk <00:00:04.673>about, <00:00:04.906>uh, <00:00:05.140>uh,

2
00:00:08.220 --> 00:00:11.560
<00:00:08.220>one <00:00:08.453>specific <00:00:08.686>usage <00:00:08.920>of <00:00:09.153>programming <00:00:09.386>language <00:00:09.620>swift,

3
00:00:12.220 --> 00:00:16.480
<00:00:12.220>and <00:00:12.453>it'll <00:00:12.686>be <00:00:12.920>about <00:00:13.153>creating <00:00:13.386>domain <00:00:13.620>specific

4
00:00:16.920 --> 00:00:21.920
<00:00:16.920>languages <00:00:17.120>using <00:00:17.320>SWIFT <00:00:17.520>as <00:00:17.720>the <00:00:17.920>host <00:00:18.120>language. <00:00:18.320>So,

5
00:00:22.420 --> 00:00:26.880
<00:00:22.420>uh, <00:00:22.595>a <00:00:22.770>lot <00:00:22.945>of <00:00:23.120>important <00:00:23.295>topics <00:00:23.470>in <00:00:23.645>this, <00:00:23.820>uh,

6
00:00:26.900 --> 00:00:29.120
<00:00:26.900>in <00:00:27.250>this <00:00:27.599>subject <00:00:27.950>line. <00:00:28.299>Uh,

7
00:00:29.680 --> 00:00:33.320
<00:00:29.680>I <00:00:29.835>will <00:00:29.991>try <00:00:30.146>to <00:00:30.302>simplify <00:00:30.457>everything <00:00:30.613>as <00:00:30.768>much <00:00:30.924>as <00:00:31.080>possible.

8
00:00:33.780 --> 00:00:37.680
<00:00:33.780>So <00:00:34.013>what <00:00:34.246>is, <00:00:34.480>uh, <00:00:34.713>domain <00:00:34.946>specific <00:00:35.180>language?

9
00:00:38.370 --> 00:00:43.200
<00:00:38.370>First <00:00:38.477>of <00:00:38.585>all, <00:00:38.693>it <00:00:38.800>is <00:00:38.908>a <00:00:39.016>programming <00:00:39.123>language. <00:00:39.231>Uh, <00:00:39.339>what <00:00:39.446>you <00:00:39.554>can <00:00:39.662>see <00:00:39.769>here,

10
00:00:43.940 --> 00:00:46.600
<00:00:43.940>uh, <00:00:44.290>these <00:00:44.640>are <00:00:44.989>the, <00:00:45.339>uh,

11
00:00:46.710 --> 00:00:50.120
<00:00:46.710>definitions <00:00:46.990>of <00:00:47.270>domain <00:00:47.550>specific <00:00:47.830>language, <00:00:48.110>uh,

12
00:00:50.620 --> 00:00:51.880
<00:00:50.620>all <00:00:50.998>around <00:00:51.376>the <00:00:51.754>internet.

13
00:00:52.020 --> 00:00:56.680
<00:00:52.020>So <00:00:52.136>the <00:00:52.253>main <00:00:52.370>specific <00:00:52.486>language <00:00:52.603>is <00:00:52.720>actually <00:00:52.836>the <00:00:52.953>programming <00:00:53.070>language <00:00:53.186>on <00:00:53.303>a <00:00:53.420>very

14
00:00:56.680 --> 00:01:01.000
<00:00:56.680>high <00:00:56.835>level <00:00:56.991>of <00:00:57.146>abstraction. <00:00:57.302>Uh, <00:00:57.457>who <00:00:57.613>has <00:00:57.768>been <00:00:57.924>used, <00:00:58.080>uh,

15
00:01:01.180 --> 00:01:05.640
<00:01:01.180>for <00:01:01.355>optimizing <00:01:01.530>for, <00:01:01.705>uh, <00:01:01.880>specific <00:01:02.055>classes <00:01:02.230>of <00:01:02.405>the <00:01:02.580>problem.

16
00:01:05.980 --> 00:01:10.240
<00:01:05.980>So <00:01:06.180>you <00:01:06.380>have <00:01:06.580>some <00:01:06.780>problem <00:01:06.980>which <00:01:07.180>you <00:01:07.380>address,

17
00:01:11.140 --> 00:01:15.120
<00:01:11.140>uh, <00:01:11.373>using <00:01:11.606>domain <00:01:11.840>specific <00:01:12.073>language. <00:01:12.306>So, <00:01:12.540>uh,

18
00:01:15.620 --> 00:01:20.600
<00:01:15.620>the <00:01:15.820>key <00:01:16.020>words <00:01:16.220>are <00:01:16.420>domain <00:01:16.620>and <00:01:16.820>programming <00:01:17.020>language.

19
00:01:21.260 --> 00:01:25.560
<00:01:21.260>Uh, <00:01:21.435>so <00:01:21.610>what <00:01:21.785>is <00:01:21.960>the <00:01:22.135>domain? <00:01:22.310>It <00:01:22.485>is <00:01:22.660>one,

20
00:01:26.380 --> 00:01:28.480
<00:01:26.380>uh, <00:01:27.080>one <00:01:27.780>space,

21
00:01:29.210 --> 00:01:33.480
<00:01:29.210>which <00:01:29.365>we <00:01:29.521>address <00:01:29.676>when <00:01:29.832>we <00:01:29.987>want <00:01:30.143>to <00:01:30.298>create <00:01:30.454>a <00:01:30.610>software,

22
00:01:33.480 --> 00:01:36.840
<00:01:33.479>which <00:01:33.759>will <00:01:34.039>solve <00:01:34.320>some, <00:01:34.600>some <00:01:34.880>problems.

23
00:01:37.060 --> 00:01:41.040
<00:01:37.060>So <00:01:37.200>we <00:01:37.340>can <00:01:37.480>say <00:01:37.620>that <00:01:37.760>D <00:01:37.900>SS <00:01:38.040>L <00:01:38.180>is <00:01:38.320>practically, <00:01:38.460>uh,

24
00:01:41.290 --> 00:01:46.120
<00:01:41.289>small <00:01:41.445>many <00:01:41.601>programming <00:01:41.756>language, <00:01:41.912>uh, <00:01:42.067>which <00:01:42.223>is <00:01:42.378>highly <00:01:42.534>specialized <00:01:42.690>for,

25
00:01:46.220 --> 00:01:49.800
<00:01:46.220>uh, <00:01:46.500>a <00:01:46.780>specific <00:01:47.060>purpose. <00:01:47.340>So, <00:01:47.620>uh,

26
00:01:51.600 --> 00:01:53.130
<00:01:51.600>generally <00:01:52.288>programming <00:01:52.976>language,

27
00:01:53.140 --> 00:01:57.330
<00:01:53.140>which <00:01:53.315>builds <00:01:53.490>in <00:01:53.665>an <00:01:53.840>assumption <00:01:54.015>about <00:01:54.190>the <00:01:54.365>problem <00:01:54.540>space.

28
00:01:57.360 --> 00:02:01.570
<00:01:57.360>This <00:01:57.535>is <00:01:57.710>what <00:01:57.885>D <00:01:58.060>S <00:01:58.235>L <00:01:58.410>is. <00:01:58.585>Let's, <00:01:58.760>uh,

29
00:02:01.750 --> 00:02:06.130
<00:02:01.750>say <00:02:01.857>a <00:02:01.965>few <00:02:02.073>words <00:02:02.180>about <00:02:02.288>classifications <00:02:02.396>of <00:02:02.503>D <00:02:02.611>S <00:02:02.719>L. <00:02:02.826>So <00:02:02.934>this <00:02:03.042>is, <00:02:03.150>uh,

30
00:02:06.470 --> 00:02:10.290
<00:02:06.470>theory, <00:02:06.625>but, <00:02:06.781>uh, <00:02:06.936>I <00:02:07.092>think <00:02:07.247>very <00:02:07.403>important <00:02:07.558>theory. <00:02:07.714>So, <00:02:07.870>uh,

31
00:02:10.350 --> 00:02:14.570
<00:02:10.350>we <00:02:10.449>know <00:02:10.549>what <00:02:10.650>are <00:02:10.750>general <00:02:10.850>purpose <00:02:10.949>languages, <00:02:11.049>you <00:02:11.150>know, <00:02:11.250>I'm <00:02:11.350>sure <00:02:11.450>a <00:02:11.549>lot <00:02:11.650>of <00:02:11.750>them,

32
00:02:15.190 --> 00:02:19.170
<00:02:15.190>uh, <00:02:15.390>c <00:02:15.590>c <00:02:15.790>plus <00:02:15.990>plus, <00:02:16.190>uh, <00:02:16.390>JavaScript, <00:02:16.590>uh,

33
00:02:19.860 --> 00:02:21.730
<00:02:19.860>swift, <00:02:20.210>uh, <00:02:20.560>and <00:02:20.910>many <00:02:21.260>others.

34
00:02:22.470 --> 00:02:26.050
<00:02:22.470>And <00:02:22.625>we <00:02:22.781>have <00:02:22.936>d <00:02:23.092>ss <00:02:23.247>l <00:02:23.403>the <00:02:23.558>main <00:02:23.714>specific <00:02:23.870>languages,

35
00:02:26.050 --> 00:02:30.490
<00:02:26.050>which <00:02:26.250>are <00:02:26.450>usually, <00:02:26.650>uh, <00:02:26.850>um, <00:02:27.050>let's <00:02:27.250>say, <00:02:27.450>uh,

36
00:02:31.210 --> 00:02:33.370
<00:02:31.210>superset <00:02:31.910>of, <00:02:32.610>uh,

37
00:02:35.170 --> 00:02:38.580
<00:02:35.170>gpls <00:02:35.403>general <00:02:35.636>purpose <00:02:35.870>languages, <00:02:36.103>or <00:02:36.336>are, <00:02:36.570>uh,

38
00:02:38.580 --> 00:02:43.420
<00:02:38.579>highly <00:02:38.735>specialized <00:02:38.891>with <00:02:39.046>highly <00:02:39.202>specialized <00:02:39.357>syntax. <00:02:39.513>On <00:02:39.668>the <00:02:39.824>other <00:02:39.980>hand,

39
00:02:43.920 --> 00:02:48.460
<00:02:43.920>we <00:02:44.120>can <00:02:44.320>consider <00:02:44.520>external <00:02:44.720>DSLs <00:02:44.920>and <00:02:45.120>internal <00:02:45.320>DSLs.

40
00:02:48.730 --> 00:02:50.980
<00:02:48.730>What <00:02:49.196>are <00:02:49.663>external, <00:02:50.130>uh,

41
00:02:51.120 --> 00:02:55.900
<00:02:51.120>if <00:02:51.260>we <00:02:51.400>want <00:02:51.540>to <00:02:51.680>create <00:02:51.820>the <00:02:51.960>language <00:02:52.100>from <00:02:52.240>the <00:02:52.380>scratch <00:02:52.520>with

42
00:02:56.880 --> 00:02:58.620
<00:02:56.880>new <00:02:57.230>syntax, <00:02:57.579>with, <00:02:57.930>with, <00:02:58.280>um,

43
00:03:00.170 --> 00:03:04.610
<00:03:00.170>compiler <00:03:00.403>and <00:03:00.636>everything <00:03:00.869>else, <00:03:01.103>uh, <00:03:01.336>this <00:03:01.570>is,

44
00:03:05.520 --> 00:03:06.820
<00:03:05.520>uh, <00:03:05.812>external <00:03:06.105>D <00:03:06.397>ss <00:03:06.690>l,

45
00:03:07.120 --> 00:03:12.100
<00:03:07.120>but <00:03:07.295>sometimes <00:03:07.470>it <00:03:07.645>is <00:03:07.820>much <00:03:07.995>easier <00:03:08.170>to <00:03:08.345>create, <00:03:08.520>uh,

46
00:03:12.260 --> 00:03:14.420
<00:03:12.260>D <00:03:12.540>S <00:03:12.820>L <00:03:13.100>using <00:03:13.380>host <00:03:13.660>language.

47
00:03:15.610 --> 00:03:19.550
<00:03:15.610>We <00:03:15.785>will <00:03:15.960>consider <00:03:16.135>using <00:03:16.310>Swift <00:03:16.485>as <00:03:16.660>a <00:03:16.835>host <00:03:17.010>language.

48
00:03:19.810 --> 00:03:23.110
<00:03:19.810>And <00:03:20.090>this <00:03:20.370>is <00:03:20.650>about <00:03:20.930>internal <00:03:21.210>DSLs.

49
00:03:24.170 --> 00:03:28.710
<00:03:24.170>And <00:03:24.310>just <00:03:24.450>to <00:03:24.590>mention, <00:03:24.730>when <00:03:24.870>I, <00:03:25.010>uh, <00:03:25.150>spoke <00:03:25.290>about <00:03:25.430>this <00:03:25.570>presentation,

50
00:03:28.710 --> 00:03:33.710
<00:03:28.710>someone <00:03:28.803>asked <00:03:28.896>me, <00:03:28.990>uh, <00:03:29.083>why <00:03:29.176>do <00:03:29.270>we <00:03:29.363>need <00:03:29.456>D <00:03:29.550>S <00:03:29.643>L <00:03:29.736>today <00:03:29.830>when <00:03:29.923>we <00:03:30.016>have <00:03:30.110>chat,

51
00:03:34.070 --> 00:03:38.190
<00:03:34.070>G <00:03:34.225>P <00:03:34.381>T, <00:03:34.536>which <00:03:34.692>is, <00:03:34.847>uh, <00:03:35.003>which <00:03:35.158>is <00:03:35.314>actually, <00:03:35.470>uh,

52
00:03:39.950 --> 00:03:44.910
<00:03:39.950>language, <00:03:40.105>language <00:03:40.261>model, <00:03:40.416>large <00:03:40.572>language <00:03:40.727>model. <00:03:40.883>It's <00:03:41.038>totally <00:03:41.194>opposite <00:03:41.350>thing.

53
00:03:45.020 --> 00:03:49.870
<00:03:45.020>When <00:03:45.127>we <00:03:45.235>talk <00:03:45.343>about <00:03:45.450>chat, <00:03:45.558>G <00:03:45.666>p <00:03:45.773>T, <00:03:45.881>it <00:03:45.989>is <00:03:46.096>about, <00:03:46.204>uh, <00:03:46.312>about, <00:03:46.420>uh,

54
00:03:49.880 --> 00:03:54.110
<00:03:49.880>using <00:03:50.019>machine <00:03:50.160>learning <00:03:50.299>to <00:03:50.440>prompt <00:03:50.579>the <00:03:50.720>questions <00:03:50.859>and <00:03:51.000>to <00:03:51.140>get <00:03:51.280>answers.

55
00:03:54.810 --> 00:03:58.350
<00:03:54.810>And <00:03:54.985>it <00:03:55.160>should <00:03:55.335>not <00:03:55.510>be <00:03:55.685>fully <00:03:55.860>accurate. <00:03:56.035>You <00:03:56.210>know,

56
00:03:58.810 --> 00:04:03.270
<00:03:58.810>you <00:03:58.910>should <00:03:59.010>not <00:03:59.110>rely <00:03:59.210>always <00:03:59.310>on <00:03:59.410>the <00:03:59.510>answers. <00:03:59.610>It <00:03:59.710>is <00:03:59.810>very <00:03:59.910>good <00:04:00.010>as <00:04:00.110>a <00:04:00.210>tool,

57
00:04:03.610 --> 00:04:07.390
<00:04:03.610>but <00:04:03.750>you <00:04:03.890>cannot <00:04:04.030>practically <00:04:04.170>rely. <00:04:04.310>But <00:04:04.450>when <00:04:04.590>we <00:04:04.730>talk <00:04:04.870>about <00:04:05.010>dsl,

58
00:04:07.730 --> 00:04:12.590
<00:04:07.730>it <00:04:07.869>is <00:04:08.010>about <00:04:08.149>reliability. <00:04:08.290>It <00:04:08.429>is <00:04:08.570>about, <00:04:08.709>uh, <00:04:08.850>uh, <00:04:08.989>quick <00:04:09.130>development.

59
00:04:13.310 --> 00:04:17.750
<00:04:13.310>It's <00:04:13.465>about <00:04:13.621>focusing <00:04:13.776>to <00:04:13.932>the <00:04:14.087>space <00:04:14.243>that <00:04:14.398>can <00:04:14.554>be <00:04:14.710>addressed,

60
00:04:18.820 --> 00:04:20.470
<00:04:18.820>okay? <00:04:20.219>Uh,

61
00:04:21.330 --> 00:04:26.070
<00:04:21.329>why <00:04:21.563>we <00:04:21.796>actually <00:04:22.029>need <00:04:22.263>this <00:04:22.496>DSLs. <00:04:22.729>Uh,

62
00:04:27.100 --> 00:04:30.150
<00:04:27.100>when <00:04:27.300>you <00:04:27.500>consider <00:04:27.700>any <00:04:27.900>domain <00:04:28.100>of <00:04:28.300>your <00:04:28.500>business,

63
00:04:30.890 --> 00:04:34.950
<00:04:30.890>you <00:04:31.169>can <00:04:31.450>practically <00:04:31.729>identify <00:04:32.010>the, <00:04:32.289>uh,

64
00:04:35.290 --> 00:04:38.750
<00:04:35.290>the <00:04:35.445>language, <00:04:35.601>you <00:04:35.756>know, <00:04:35.912>when <00:04:36.067>we <00:04:36.223>talk, <00:04:36.378>whatever <00:04:36.534>you <00:04:36.690>do,

65
00:04:39.060 --> 00:04:42.990
<00:04:39.060>when <00:04:39.235>we <00:04:39.410>know <00:04:39.585>that <00:04:39.760>we <00:04:39.935>use <00:04:40.110>nouns, <00:04:40.285>verbs, <00:04:40.460>attributes,

66
00:04:43.130 --> 00:04:46.790
<00:04:43.130>and <00:04:43.409>other <00:04:43.690>specific <00:04:43.969>words <00:04:44.250>to <00:04:44.530>describe,

67
00:04:48.520 --> 00:04:52.940
<00:04:48.520>uh, <00:04:48.719>processes, <00:04:48.919>uh, <00:04:49.120>happening <00:04:49.320>within <00:04:49.520>this, <00:04:49.719>this <00:04:49.919>space,

68
00:04:55.590 --> 00:04:59.600
<00:04:55.590>what <00:04:55.683>are <00:04:55.776>generally <00:04:55.870>the <00:04:55.963>best <00:04:56.056>practices? <00:04:56.150>When <00:04:56.243>we <00:04:56.336>would <00:04:56.430>like <00:04:56.523>to <00:04:56.616>create <00:04:56.710>A <00:04:56.803>D <00:04:56.896>S <00:04:56.990>L?

69
00:05:00.300 --> 00:05:05.280
<00:05:00.300>It <00:05:00.427>is <00:05:00.554>better <00:05:00.681>to <00:05:00.809>make <00:05:00.936>dsl, <00:05:01.063>which <00:05:01.190>will <00:05:01.318>be <00:05:01.445>like <00:05:01.572>English, <00:05:01.700>okay?

70
00:05:05.580 --> 00:05:10.440
<00:05:05.580>You <00:05:05.719>can <00:05:05.859>use <00:05:06.000>any <00:05:06.140>other, <00:05:06.280>uh, <00:05:06.419>living <00:05:06.560>language, <00:05:06.700>not <00:05:06.840>only <00:05:06.979>English,

71
00:05:10.460 --> 00:05:15.200
<00:05:10.460>but <00:05:10.615>it's <00:05:10.771>quite <00:05:10.926>good <00:05:11.082>to, <00:05:11.237>and <00:05:11.393>this <00:05:11.548>to <00:05:11.704>use <00:05:11.859>English.

72
00:05:15.780 --> 00:05:20.280
<00:05:15.780>Uh, <00:05:15.907>the <00:05:16.034>code <00:05:16.161>generation <00:05:16.289>from <00:05:16.416>D <00:05:16.543>S <00:05:16.670>L <00:05:16.798>is <00:05:16.925>not <00:05:17.052>mandatory. <00:05:17.179>Okay?

73
00:05:20.420 --> 00:05:24.320
<00:05:20.420>We <00:05:20.520>will <00:05:20.620>talk <00:05:20.720>about <00:05:20.820>code <00:05:20.920>generation, <00:05:21.020>but <00:05:21.120>usually <00:05:21.220>when <00:05:21.320>you <00:05:21.420>talk <00:05:21.520>about <00:05:21.620>D <00:05:21.720>S <00:05:21.820>L,

74
00:05:24.320 --> 00:05:28.520
<00:05:24.320>it <00:05:24.475>is <00:05:24.631>not <00:05:24.786>mandatory <00:05:24.942>that <00:05:25.097>you <00:05:25.253>create <00:05:25.408>the <00:05:25.564>code. <00:05:25.719>Finally,

75
00:05:28.820 --> 00:05:32.440
<00:05:28.820>it <00:05:29.053>is <00:05:29.286>about, <00:05:29.520>uh, <00:05:29.753>describing <00:05:29.986>the <00:05:30.219>problem.

76
00:05:32.950 --> 00:05:37.920
<00:05:32.950>It's <00:05:33.057>more <00:05:33.165>about <00:05:33.273>describing <00:05:33.380>the <00:05:33.488>problem, <00:05:33.596>uh, <00:05:33.703>than <00:05:33.811>to, <00:05:33.919>uh, <00:05:34.026>create <00:05:34.134>in <00:05:34.242>the <00:05:34.349>code,

77
00:05:38.380 --> 00:05:41.120
<00:05:38.380>but <00:05:38.520>it's <00:05:38.659>very <00:05:38.800>good. <00:05:38.940>Of <00:05:39.080>course, <00:05:39.219>when <00:05:39.360>you <00:05:39.500>create <00:05:39.640>the <00:05:39.780>code,

78
00:05:43.020 --> 00:05:43.770
<00:05:43.020>you <00:05:43.357>can, <00:05:43.695>uh,

79
00:05:43.770 --> 00:05:48.400
<00:05:43.770>write <00:05:43.945>D <00:05:44.120>s <00:05:44.294>L <00:05:44.469>in <00:05:44.645>communication <00:05:44.820>with <00:05:44.995>other <00:05:45.169>people.

80
00:05:48.860 --> 00:05:53.040
<00:05:48.860>You <00:05:48.976>can <00:05:49.093>use <00:05:49.210>D <00:05:49.326>S <00:05:49.443>L <00:05:49.560>to <00:05:49.676>write <00:05:49.793>in <00:05:49.910>using <00:05:50.026>Word <00:05:50.143>processor. <00:05:50.260>Uh,

81
00:05:53.860 --> 00:05:58.520
<00:05:53.860>so, <00:05:53.976>but, <00:05:54.093>um, <00:05:54.210>yeah, <00:05:54.326>if <00:05:54.443>you <00:05:54.560>create <00:05:54.676>D <00:05:54.793>Ss <00:05:54.910>L <00:05:55.026>and <00:05:55.143>using, <00:05:55.260>uh,

82
00:05:58.520 --> 00:06:03.360
<00:05:58.520>editor, <00:05:58.675>you <00:05:58.831>can <00:05:58.986>make, <00:05:59.142>uh, <00:05:59.297>syntax <00:05:59.453>and <00:05:59.608>semantic <00:05:59.764>checker, <00:05:59.919>uh,

83
00:06:03.510 --> 00:06:05.400
<00:06:03.510>much, <00:06:03.976>much <00:06:04.443>easier. <00:06:04.909>Now,

84
00:06:06.490 --> 00:06:10.160
<00:06:06.490>let's <00:06:06.770>talk <00:06:07.050>about <00:06:07.330>some <00:06:07.610>examples <00:06:07.890>of

85
00:06:11.310 --> 00:06:16.000
<00:06:11.310>DSLs <00:06:11.426>already <00:06:11.543>using. <00:06:11.660>How <00:06:11.776>many <00:06:11.893>of <00:06:12.010>you <00:06:12.126>use <00:06:12.243>this? <00:06:12.360>H <00:06:12.476>T <00:06:12.593>M <00:06:12.710>L?

86
00:06:16.550 --> 00:06:19.640
<00:06:16.550>It's, <00:06:16.750>sorry, <00:06:16.950>please. <00:06:17.150>Okay. <00:06:17.350>Okay. <00:06:17.550>Yes. <00:06:17.750>As <00:06:17.950>a,

87
00:06:19.980 --> 00:06:24.160
<00:06:19.980>as <00:06:20.120>I'm <00:06:20.260>a <00:06:20.400>c <00:06:20.540>Ss <00:06:20.680>s <00:06:20.820>as <00:06:20.960>well. <00:06:21.100>Uh, <00:06:21.240>shell <00:06:21.380>scripts,

88
00:06:24.160 --> 00:06:28.920
<00:06:24.160>shell <00:06:24.360>languages <00:06:24.560>are, <00:06:24.760>yes, <00:06:24.960>very <00:06:25.160>good. <00:06:25.360>Uh, <00:06:25.560>are,

89
00:06:29.380 --> 00:06:34.320
<00:06:29.380>uh, <00:06:29.535>DSLs <00:06:29.691>as <00:06:29.846>well, <00:06:30.002>like <00:06:30.157>bash <00:06:30.313>like, <00:06:30.468>uh, <00:06:30.624>uh, <00:06:30.780>Ms.

90
00:06:34.390 --> 00:06:39.360
<00:06:34.390>Doss <00:06:34.530>was <00:06:34.669>Windows <00:06:34.810>terminal, <00:06:34.950>like <00:06:35.090>Power <00:06:35.229>Shell. <00:06:35.370>And <00:06:35.510>similar, <00:06:35.650>in <00:06:35.789>addition,

91
00:06:39.900 --> 00:06:44.560
<00:06:39.900>markup <00:06:40.055>languages, <00:06:40.211>like <00:06:40.366>extended <00:06:40.522>markup <00:06:40.677>language, <00:06:40.833>X <00:06:40.988>M <00:06:41.144>L, <00:06:41.299>uh,

92
00:06:44.980 --> 00:06:49.960
<00:06:44.980>or <00:06:45.120>maybe <00:06:45.260>U <00:06:45.400>M <00:06:45.540>L <00:06:45.680>or <00:06:45.820>business <00:06:45.960>process <00:06:46.100>modeling <00:06:46.240>language <00:06:46.380>are

93
00:06:50.630 --> 00:06:51.463
<00:06:50.630>DSLs <00:06:51.004>as <00:06:51.379>well.

94
00:06:52.000 --> 00:06:56.840
<00:06:52.000>S <00:06:52.175>Q <00:06:52.350>L <00:06:52.525>and <00:06:52.700>GraphQL <00:06:52.875>as <00:06:53.050>well <00:06:53.225>are <00:06:53.400>examples

95
00:06:56.980 --> 00:06:58.600
<00:06:56.980>of, <00:06:57.680>of <00:06:58.380>dsl.

96
00:06:58.740 --> 00:07:03.600
<00:06:58.740>So <00:06:58.915>it <00:06:59.090>is <00:06:59.265>very <00:06:59.440>common <00:06:59.615>to <00:06:59.790>use <00:06:59.965>DSLs <00:07:00.140>for,

97
00:07:04.260 --> 00:07:07.800
<00:07:04.260>uh, <00:07:04.726>specific <00:07:05.193>purposes. <00:07:05.659>Okay.

98
00:07:10.010 --> 00:07:14.640
<00:07:10.010>Other <00:07:10.126>examples <00:07:10.243>as <00:07:10.360>well. <00:07:10.476>You <00:07:10.593>can <00:07:10.710>search <00:07:10.826>it <00:07:10.943>through <00:07:11.060>internet. <00:07:11.176>We'll <00:07:11.293>find, <00:07:11.409>uh,

99
00:07:14.640 --> 00:07:18.110
<00:07:14.640>really <00:07:15.106>interesting <00:07:15.573>examples. <00:07:16.039>Okay.

100
00:07:19.010 --> 00:07:23.870
<00:07:19.010>And <00:07:19.185>finally, <00:07:19.360>we <00:07:19.534>are, <00:07:19.710>uh, <00:07:19.885>coming <00:07:20.060>to <00:07:20.235>Swift <00:07:20.409>ui.

101
00:07:24.800 --> 00:07:26.950
<00:07:24.800>Swift <00:07:25.266>UI <00:07:25.733>is, <00:07:26.200>uh,

102
00:07:27.370 --> 00:07:31.990
<00:07:27.370>the <00:07:27.497>D <00:07:27.624>SS <00:07:27.751>L <00:07:27.879>created <00:07:28.006>by <00:07:28.133>Apple <00:07:28.260>on <00:07:28.388>the <00:07:28.515>top <00:07:28.642>of <00:07:28.770>Swift,

103
00:07:32.420 --> 00:07:37.230
<00:07:32.420>with <00:07:32.620>the <00:07:32.820>main <00:07:33.020>idea <00:07:33.220>to <00:07:33.420>enable <00:07:33.620>a <00:07:33.820>development

104
00:07:37.230 --> 00:07:41.790
<00:07:37.230>of <00:07:37.430>user <00:07:37.630>interface <00:07:37.830>in <00:07:38.030>Apple's <00:07:38.230>style, <00:07:38.430>much <00:07:38.630>easier.

105
00:07:42.570 --> 00:07:43.403
Um,

106
00:07:43.450 --> 00:07:48.190
<00:07:43.450>of <00:07:43.557>course <00:07:43.665>you <00:07:43.773>use <00:07:43.880>H <00:07:43.988>T <00:07:44.096>M <00:07:44.203>L <00:07:44.311>as <00:07:44.419>well <00:07:44.526>for <00:07:44.634>creation <00:07:44.742>of <00:07:44.849>user

107
00:07:48.240 --> 00:07:52.870
<00:07:48.240>interfaces, <00:07:48.415>but <00:07:48.590>Swift <00:07:48.765>UI <00:07:48.940>is <00:07:49.115>specifically <00:07:49.290>for <00:07:49.465>Apple <00:07:49.640>devices.

108
00:07:54.000 --> 00:07:58.150
<00:07:54.000>There <00:07:54.140>is <00:07:54.280>Swift <00:07:54.420>Chart <00:07:54.560>builder, <00:07:54.700>which <00:07:54.840>is <00:07:54.980>based <00:07:55.120>on <00:07:55.260>similar <00:07:55.400>principles,

109
00:07:58.530 --> 00:08:03.230
<00:07:58.530>but <00:07:58.669>Swift <00:07:58.809>UI <00:07:58.950>is <00:07:59.090>very <00:07:59.229>important <00:07:59.369>because <00:07:59.510>Swift <00:07:59.650>UI <00:07:59.789>is <00:07:59.929>here

110
00:08:03.330 --> 00:08:07.670
<00:08:03.330>for, <00:08:03.505>uh, <00:08:03.680>maybe <00:08:03.854>four <00:08:04.030>years <00:08:04.205>now, <00:08:04.380>and <00:08:04.555>is, <00:08:04.729>um,

111
00:08:08.630 --> 00:08:09.463
<00:08:08.630>actually <00:08:09.379>the,

112
00:08:09.690 --> 00:08:13.830
<00:08:09.690>the <00:08:09.923>first <00:08:10.156>big <00:08:10.390>thing <00:08:10.623>made <00:08:10.856>using <00:08:11.090>the

113
00:08:14.370 --> 00:08:18.310
<00:08:14.370>syntax, <00:08:14.486>which <00:08:14.603>you <00:08:14.720>will <00:08:14.836>be <00:08:14.953>able <00:08:15.070>to <00:08:15.186>see <00:08:15.303>a <00:08:15.420>little <00:08:15.536>bit <00:08:15.653>later, <00:08:15.770>uh,

114
00:08:18.360 --> 00:08:23.000
<00:08:18.360>which <00:08:18.535>can <00:08:18.710>be <00:08:18.885>used <00:08:19.060>to <00:08:19.235>create, <00:08:19.410>um, <00:08:19.585>language, <00:08:19.760>uh,

115
00:08:23.660 --> 00:08:26.200
<00:08:23.660>or <00:08:23.835>D <00:08:24.010>Ss <00:08:24.185>L <00:08:24.360>language <00:08:24.535>on <00:08:24.710>your <00:08:24.885>own. <00:08:25.060>Okay?

116
00:08:27.620 --> 00:08:32.280
<00:08:27.620>How <00:08:27.853>Swift <00:08:28.086>UI <00:08:28.320>actually <00:08:28.553>looks <00:08:28.786>like. <00:08:29.020>Okay.

117
00:08:32.340 --> 00:08:34.200
<00:08:32.340>So <00:08:32.690>here <00:08:33.040>it <00:08:33.390>is. <00:08:33.740>Uh,

118
00:08:36.250 --> 00:08:40.250
<00:08:36.250>I <00:08:36.405>will <00:08:36.561>do <00:08:36.716>my <00:08:36.872>best <00:08:37.027>to <00:08:37.183>show <00:08:37.338>this. <00:08:37.494>Okay? <00:08:37.650>Uh,

119
00:08:40.920 --> 00:08:43.850
<00:08:40.919>generally <00:08:41.386>you <00:08:41.853>see, <00:08:42.319>you,

120
00:08:44.070 --> 00:08:47.690
<00:08:44.070>you <00:08:44.303>have <00:08:44.536>navigation <00:08:44.770>view, <00:08:45.003>then <00:08:45.236>a <00:08:45.470>list,

121
00:08:48.440 --> 00:08:50.250
<00:08:48.440>then <00:08:48.906>a <00:08:49.373>page <00:08:49.840>view.

122
00:08:51.430 --> 00:08:55.760
<00:08:51.430>All <00:08:51.604>these <00:08:51.780>are <00:08:51.954>mentions <00:08:52.130>of <00:08:52.305>structures <00:08:52.479>of <00:08:52.655>data <00:08:52.829>types.

123
00:08:56.600 --> 00:08:57.433
Actually,

124
00:08:57.630 --> 00:09:01.760
<00:08:57.630>this <00:08:57.863>syntax <00:08:58.096>creates <00:08:58.330>objects <00:08:58.563>that <00:08:58.796>are <00:08:59.030>visible

125
00:09:02.460 --> 00:09:05.920
<00:09:02.460>in <00:09:02.635>user <00:09:02.810>interface. <00:09:02.985>What <00:09:03.160>we <00:09:03.335>can <00:09:03.510>see, <00:09:03.685>in <00:09:03.860>addition,

126
00:09:07.180 --> 00:09:11.760
<00:09:07.180>we <00:09:07.413>can <00:09:07.646>see <00:09:07.880>this <00:09:08.113>syntax <00:09:08.346>with.like, <00:09:08.579>uh,

127
00:09:12.180 --> 00:09:17.160
<00:09:12.180>aspect <00:09:12.380>ratio, <00:09:12.579>like <00:09:12.780>list <00:09:12.979>style. <00:09:13.180>Uh, <00:09:13.380>these <00:09:13.579>are

128
00:09:18.700 --> 00:09:21.430
<00:09:18.700>methods <00:09:19.166>are <00:09:19.633>invoking <00:09:20.100>it,

129
00:09:21.530 --> 00:09:24.910
<00:09:21.530>it <00:09:21.704>is <00:09:21.880>about <00:09:22.055>invoking <00:09:22.230>of <00:09:22.405>methods <00:09:22.579>with <00:09:22.755>some <00:09:22.930>parameters.

130
00:09:25.010 --> 00:09:29.470
<00:09:25.010>It <00:09:25.165>is <00:09:25.321>practically <00:09:25.476>standard, <00:09:25.632>the <00:09:25.787>usage <00:09:25.943>of, <00:09:26.098>uh, <00:09:26.254>of, <00:09:26.410>uh,

131
00:09:30.030 --> 00:09:34.270
<00:09:30.030>function, <00:09:30.230>function <00:09:30.430>calls. <00:09:30.630>And, <00:09:30.829>uh, <00:09:31.030>this <00:09:31.230>is, <00:09:31.430>uh,

132
00:09:34.860 --> 00:09:35.830
<00:09:34.860>very, <00:09:35.733>uh,

133
00:09:36.060 --> 00:09:40.070
<00:09:36.060>very <00:09:36.199>important <00:09:36.339>when <00:09:36.479>we <00:09:36.619>would <00:09:36.760>like <00:09:36.900>to <00:09:37.040>create <00:09:37.180>our <00:09:37.319>own <00:09:37.459>language.

134
00:09:40.450 --> 00:09:45.230
<00:09:40.450>So <00:09:40.730>creating <00:09:41.010>language <00:09:41.290>means <00:09:41.570>creating, <00:09:41.850>um,

135
00:09:45.500 --> 00:09:47.990
<00:09:45.500>equivalence <00:09:45.850>of <00:09:46.200>nouns, <00:09:46.550>verbs, <00:09:46.900>attributes.

136
00:09:49.490 --> 00:09:52.620
<00:09:49.490>This <00:09:49.770>mentions <00:09:50.050>of <00:09:50.330>structures <00:09:50.610>of <00:09:50.890>types.

137
00:09:53.330 --> 00:09:58.020
<00:09:53.330>This <00:09:53.457>is <00:09:53.584>about <00:09:53.711>creating <00:09:53.839>objects, <00:09:53.966>which <00:09:54.093>is, <00:09:54.220>which <00:09:54.348>is <00:09:54.475>actually <00:09:54.602>known. <00:09:54.730>Uh,

138
00:09:58.610 --> 00:10:02.860
<00:09:58.610>then <00:09:58.843>this <00:09:59.076>dot <00:09:59.310>syntax <00:09:59.543>is <00:09:59.776>about <00:10:00.010>webs.

139
00:10:03.160 --> 00:10:06.660
<00:10:03.160>It <00:10:03.334>is <00:10:03.510>about <00:10:03.685>functionality. <00:10:03.860>It <00:10:04.035>is <00:10:04.209>about <00:10:04.385>calling <00:10:04.560>function,

140
00:10:06.790 --> 00:10:11.780
<00:10:06.790>doing <00:10:06.990>something <00:10:07.189>with <00:10:07.390>objects, <00:10:07.589>uh, <00:10:07.790>actually <00:10:07.990>modifying <00:10:08.189>them,

141
00:10:11.920 --> 00:10:16.500
<00:10:11.920>giving <00:10:12.060>some <00:10:12.199>parameters <00:10:12.339>and <00:10:12.479>modifying <00:10:12.620>them <00:10:12.760>according <00:10:12.900>to <00:10:13.040>values <00:10:13.180>of <00:10:13.319>these

142
00:10:16.500 --> 00:10:20.900
<00:10:16.500>parameters. <00:10:16.733>And, <00:10:16.966>uh, <00:10:17.200>you <00:10:17.433>see <00:10:17.666>this <00:10:17.900>parenthesis,

143
00:10:21.520 --> 00:10:25.900
<00:10:21.520>it <00:10:21.660>is <00:10:21.800>about <00:10:21.939>the <00:10:22.079>syntax. <00:10:22.220>It, <00:10:22.360>it <00:10:22.500>is <00:10:22.640>about <00:10:22.780>the <00:10:22.920>syntax.

144
00:10:25.960 --> 00:10:29.860
<00:10:25.960>We <00:10:26.100>are <00:10:26.240>used <00:10:26.380>to <00:10:26.520>it. <00:10:26.660>We <00:10:26.800>are <00:10:26.940>all <00:10:27.080>familiar <00:10:27.220>with, <00:10:27.360>uh,

145
00:10:30.580 --> 00:10:33.660
<00:10:30.580>c <00:10:30.755>l <00:10:30.930>i <00:10:31.105>languages, <00:10:31.280>with <00:10:31.455>this <00:10:31.630>parenthesis, <00:10:31.805>with, <00:10:31.980>uh,

146
00:10:33.810 --> 00:10:38.380
<00:10:33.810>calling <00:10:33.937>of <00:10:34.064>functions <00:10:34.191>and <00:10:34.319>similar <00:10:34.446>things. <00:10:34.573>It <00:10:34.700>is <00:10:34.828>very <00:10:34.955>important <00:10:35.082>because, <00:10:35.209>uh,

147
00:10:38.560 --> 00:10:43.060
<00:10:38.560>people <00:10:38.793>who <00:10:39.026>create <00:10:39.260>programs <00:10:39.493>are <00:10:39.726>mostly <00:10:39.959>already

148
00:10:43.370 --> 00:10:47.540
<00:10:43.370>programmers, <00:10:43.650>okay? <00:10:43.930>Usually <00:10:44.210>they're <00:10:44.490>not, <00:10:44.770>uh,

149
00:10:47.710 --> 00:10:50.940
<00:10:47.710>fully <00:10:47.910>familiar <00:10:48.110>with, <00:10:48.310>uh, <00:10:48.510>the <00:10:48.710>domain <00:10:48.910>we <00:10:49.110>address,

150
00:10:51.160 --> 00:10:54.220
<00:10:51.160>but <00:10:51.439>they're <00:10:51.719>already <00:10:52.000>developers. <00:10:52.280>So, <00:10:52.560>uh,

151
00:10:54.600 --> 00:10:58.060
<00:10:54.600>it <00:10:54.740>is <00:10:54.880>about <00:10:55.020>the <00:10:55.160>learning <00:10:55.300>curve <00:10:55.440>for <00:10:55.580>the <00:10:55.720>language. <00:10:55.860>So, <00:10:56.000>uh,

152
00:10:58.640 --> 00:11:01.780
<00:10:58.640>if <00:10:58.873>we <00:10:59.106>create <00:10:59.340>language <00:10:59.573>using <00:10:59.806>standard <00:11:00.040>syntax,

153
00:11:01.830 --> 00:11:06.540
<00:11:01.830>which <00:11:01.946>be <00:11:02.063>much <00:11:02.180>easier <00:11:02.296>to <00:11:02.413>enable <00:11:02.530>the <00:11:02.646>adoption <00:11:02.763>of <00:11:02.880>the, <00:11:02.996>of <00:11:03.113>the <00:11:03.230>language.

154
00:11:09.260 --> 00:11:13.550
<00:11:09.260>Okay, <00:11:09.435>this <00:11:09.610>is <00:11:09.785>the, <00:11:09.960>the <00:11:10.135>same, <00:11:10.310>the <00:11:10.485>same <00:11:10.660>story.

155
00:11:13.890 --> 00:11:17.230
<00:11:13.890>How <00:11:14.045>does <00:11:14.201>it <00:11:14.356>looks <00:11:14.512>like, <00:11:14.667>uh, <00:11:14.823>in <00:11:14.978>terms <00:11:15.134>of <00:11:15.290>hierarchy?

156
00:11:17.570 --> 00:11:21.830
<00:11:17.570>So <00:11:17.697>you <00:11:17.824>have <00:11:17.951>list <00:11:18.079>inside <00:11:18.206>the <00:11:18.333>list <00:11:18.460>there, <00:11:18.588>there <00:11:18.715>is <00:11:18.842>horizontal <00:11:18.970>stack,

157
00:11:22.130 --> 00:11:26.070
<00:11:22.130>inside <00:11:22.270>horizontal <00:11:22.410>stack. <00:11:22.550>It <00:11:22.689>is <00:11:22.830>one <00:11:22.970>image <00:11:23.110>and <00:11:23.250>one <00:11:23.390>vertical <00:11:23.530>stack,

158
00:11:26.400 --> 00:11:30.950
<00:11:26.400>which <00:11:26.633>contains <00:11:26.866>two <00:11:27.100>texts <00:11:27.333>with <00:11:27.566>some <00:11:27.800>modifications.

159
00:11:31.500 --> 00:11:32.333
Okay?

160
00:11:32.890 --> 00:11:37.030
<00:11:32.890>I'm <00:11:33.064>sure <00:11:33.240>you <00:11:33.415>are <00:11:33.590>already <00:11:33.765>something <00:11:33.939>similar <00:11:34.115>when, <00:11:34.290>uh,

161
00:11:37.500 --> 00:11:41.990
<00:11:37.500>when <00:11:37.587>looking <00:11:37.675>at <00:11:37.762>H <00:11:37.850>T <00:11:37.937>M <00:11:38.025>L. <00:11:38.112>I <00:11:38.200>will <00:11:38.287>demonstrate <00:11:38.375>a <00:11:38.462>little <00:11:38.550>bit <00:11:38.637>later <00:11:38.725>what <00:11:38.812>I <00:11:38.900>mean.

162
00:11:43.070 --> 00:11:43.903
Okay.

163
00:11:45.060 --> 00:11:50.000
<00:11:45.060>Now <00:11:45.260>we <00:11:45.459>are <00:11:45.660>talking <00:11:45.859>about <00:11:46.060>how <00:11:46.260>actually <00:11:46.459>Citrix

164
00:11:50.180 --> 00:11:54.240
<00:11:50.180>of <00:11:50.530>Swift <00:11:50.880>supports <00:11:51.229>creation <00:11:51.579>of,

165
00:11:55.180 --> 00:11:59.760
<00:11:55.180>of <00:11:55.380>D <00:11:55.579>Ss <00:11:55.780>L. <00:11:55.979>Uh, <00:11:56.180>actually <00:11:56.380>four <00:11:56.579>important,

166
00:12:00.100 --> 00:12:00.933
uh,

167
00:12:01.260 --> 00:12:05.440
<00:12:01.260>syntax <00:12:01.493>features <00:12:01.726>are <00:12:01.960>used <00:12:02.193>like <00:12:02.426>property <00:12:02.660>wrappers,

168
00:12:06.070 --> 00:12:10.720
<00:12:06.070>like <00:12:06.303>trailing <00:12:06.536>closures, <00:12:06.770>like, <00:12:07.003>uh, <00:12:07.236>resolve <00:12:07.470>bids,

169
00:12:11.200 --> 00:12:15.600
<00:12:11.200>builders, <00:12:11.433>and <00:12:11.666>the <00:12:11.900>modifier <00:12:12.133>style <00:12:12.366>methods. <00:12:12.600>Actually,

170
00:12:15.770 --> 00:12:19.520
<00:12:15.770>those <00:12:15.944>result <00:12:16.120>builders <00:12:16.295>as <00:12:16.470>are <00:12:16.645>the <00:12:16.819>most <00:12:16.995>important <00:12:17.170>thing,

171
00:12:19.520 --> 00:12:23.800
<00:12:19.520>which <00:12:19.694>has <00:12:19.870>been <00:12:20.045>introduced <00:12:20.220>in <00:12:20.395>Swift <00:12:20.569>in <00:12:20.745>version <00:12:20.920>5.4.

172
00:12:24.780 --> 00:12:29.240
<00:12:24.780>Uh, <00:12:24.954>before <00:12:25.130>that, <00:12:25.305>uh, <00:12:25.480>the <00:12:25.655>name <00:12:25.829>was <00:12:26.005>Functional <00:12:26.180>Builders,

173
00:12:30.100 --> 00:12:34.640
<00:12:30.100>and <00:12:30.333>actually <00:12:30.566>this <00:12:30.800>enabled <00:12:31.033>swift <00:12:31.266>UI <00:12:31.500>like

174
00:12:35.060 --> 00:12:36.960
<00:12:35.060>it <00:12:35.526>is <00:12:35.993>now. <00:12:36.459>Okay?

175
00:12:37.600 --> 00:12:41.280
<00:12:37.600>I <00:12:37.775>will <00:12:37.950>say <00:12:38.125>a <00:12:38.300>few <00:12:38.475>words <00:12:38.650>about <00:12:38.825>every <00:12:39.000>single,

176
00:12:42.740 --> 00:12:45.600
<00:12:42.740>uh, <00:12:42.973>every <00:12:43.206>single <00:12:43.440>element <00:12:43.673>of <00:12:43.906>these. <00:12:44.140>Okay?

177
00:12:47.450 --> 00:12:50.830
<00:12:47.450>So <00:12:47.730>what <00:12:48.010>are <00:12:48.290>property <00:12:48.570>wrappers? <00:12:48.850>Actually,

178
00:12:50.970 --> 00:12:54.750
<00:12:50.970>it <00:12:51.145>is <00:12:51.320>the <00:12:51.495>mechanism <00:12:51.670>that <00:12:51.845>enables <00:12:52.020>addressing <00:12:52.195>the <00:12:52.370>properties,

179
00:12:54.750 --> 00:12:59.070
<00:12:54.750>addressing <00:12:54.905>the <00:12:55.061>values <00:12:55.216>within <00:12:55.372>the, <00:12:55.527>the <00:12:55.683>objects. <00:12:55.838>It's <00:12:55.994>quite <00:12:56.150>simple,

180
00:12:59.160 --> 00:13:01.190
<00:12:59.160>quite <00:12:59.860>straight, <00:13:00.560>straightforward.

181
00:13:02.210 --> 00:13:06.990
<00:13:02.210>So <00:13:02.385>if <00:13:02.560>you <00:13:02.735>have <00:13:02.910>a <00:13:03.085>variable <00:13:03.260>and <00:13:03.435>some <00:13:03.610>object,

182
00:13:07.040 --> 00:13:10.870
<00:13:07.040>which <00:13:07.240>is, <00:13:07.439>uh, <00:13:07.640>related <00:13:07.839>to <00:13:08.040>this <00:13:08.240>variable, <00:13:08.439>uh,

183
00:13:11.350 --> 00:13:16.310
<00:13:11.350>property <00:13:11.477>rapport <00:13:11.604>will <00:13:11.731>enable <00:13:11.859>changing <00:13:11.986>the <00:13:12.113>values <00:13:12.240>within <00:13:12.368>and <00:13:12.495>getting <00:13:12.622>getters <00:13:12.750>and

184
00:13:16.310 --> 00:13:20.350
<00:13:16.310>setters <00:13:16.465>and, <00:13:16.621>uh, <00:13:16.776>how <00:13:16.932>to <00:13:17.087>access <00:13:17.243>to <00:13:17.398>this. <00:13:17.554>Yeah. <00:13:17.709>Okay.

185
00:13:21.250 --> 00:13:24.630
<00:13:21.250>The <00:13:21.425>other <00:13:21.600>important <00:13:21.775>things <00:13:21.950>is <00:13:22.125>related <00:13:22.300>to <00:13:22.475>those <00:13:22.650>parenthesis.

186
00:13:25.180 --> 00:13:29.230
<00:13:25.180>It's <00:13:25.459>about <00:13:25.739>so-called <00:13:26.020>trailing <00:13:26.300>closure <00:13:26.579>arguments.

187
00:13:29.570 --> 00:13:33.790
<00:13:29.570>If <00:13:29.725>you <00:13:29.881>see <00:13:30.036>our <00:13:30.192>first <00:13:30.347>part, <00:13:30.503>uh, <00:13:30.658>on <00:13:30.814>the <00:13:30.970>top,

188
00:13:33.840 --> 00:13:38.420
<00:13:33.840>there <00:13:33.967>is <00:13:34.094>a <00:13:34.221>function <00:13:34.349>named <00:13:34.476>some <00:13:34.603>function <00:13:34.730>that <00:13:34.858>takes, <00:13:34.985>uh, <00:13:35.112>a <00:13:35.240>closure,

189
00:13:39.270 --> 00:13:44.260
<00:13:39.270>which <00:13:39.425>is <00:13:39.581>actually <00:13:39.736>the <00:13:39.892>function <00:13:40.047>which <00:13:40.203>will <00:13:40.358>accept <00:13:40.514>another <00:13:40.670>function

190
00:13:44.880 --> 00:13:46.780
<00:13:44.880>and <00:13:45.346>use <00:13:45.813>it. <00:13:46.280>Okay?

191
00:13:46.890 --> 00:13:50.060
<00:13:46.890>It's <00:13:47.090>quite <00:13:47.290>common <00:13:47.490>pattern <00:13:47.689>using <00:13:47.890>in <00:13:48.090>software <00:13:48.290>development.

192
00:13:50.120 --> 00:13:54.020
<00:13:50.120>I'm <00:13:50.275>sure <00:13:50.431>you <00:13:50.586>are <00:13:50.742>familiar <00:13:50.897>with <00:13:51.053>that, <00:13:51.208>but <00:13:51.364>SWIFT <00:13:51.520>enables,

193
00:13:55.000 --> 00:13:59.060
<00:13:55.000>uh, <00:13:55.140>writing <00:13:55.280>of <00:13:55.420>that <00:13:55.560>in <00:13:55.700>a <00:13:55.840>a <00:13:55.980>little <00:13:56.120>bit <00:13:56.260>different <00:13:56.400>way.

194
00:13:59.560 --> 00:14:02.860
<00:13:59.560>So <00:13:59.734>if <00:13:59.910>we <00:14:00.084>have <00:14:00.260>a <00:14:00.435>closure, <00:14:00.609>which <00:14:00.785>is <00:14:00.959>a,

195
00:14:03.680 --> 00:14:05.980
<00:14:03.680>at <00:14:03.880>the <00:14:04.079>end <00:14:04.280>of <00:14:04.479>the <00:14:04.680>list <00:14:04.880>of, <00:14:05.079>uh,

196
00:14:06.870 --> 00:14:09.580
<00:14:06.870>parameters <00:14:07.336>accepting <00:14:07.803>by <00:14:08.270>function,

197
00:14:10.240 --> 00:14:13.700
<00:14:10.240>we <00:14:10.440>can <00:14:10.640>write <00:14:10.840>it <00:14:11.040>in <00:14:11.240>a <00:14:11.440>different <00:14:11.640>way,

198
00:14:14.230 --> 00:14:17.140
<00:14:14.230>which <00:14:14.405>you <00:14:14.580>can <00:14:14.755>see <00:14:14.930>like <00:14:15.105>here, <00:14:15.280>like <00:14:15.455>last <00:14:15.630>one,

199
00:14:17.400 --> 00:14:19.260
<00:14:17.400>we <00:14:17.600>do <00:14:17.800>not <00:14:18.000>have <00:14:18.199>to <00:14:18.400>mention <00:14:18.600>this <00:14:18.800>function,

200
00:14:19.330 --> 00:14:24.060
<00:14:19.330>just <00:14:19.470>to <00:14:19.610>put <00:14:19.750>it <00:14:19.890>as <00:14:20.030>a <00:14:20.170>content <00:14:20.310>of <00:14:20.450>parenthesis <00:14:20.590>after <00:14:20.730>the,

201
00:14:24.510 --> 00:14:29.220
<00:14:24.510>after <00:14:24.626>the, <00:14:24.743>the, <00:14:24.860>the <00:14:24.976>head <00:14:25.093>of <00:14:25.210>the, <00:14:25.326>of <00:14:25.443>the, <00:14:25.560>of <00:14:25.676>the <00:14:25.793>function. <00:14:25.910>And

202
00:14:30.960 --> 00:14:34.930
<00:14:30.960>it's <00:14:31.115>been <00:14:31.271>using <00:14:31.426>in <00:14:31.582>swift, <00:14:31.737>uh, <00:14:31.893>a <00:14:32.048>lot. <00:14:32.204>So, <00:14:32.360>uh,

203
00:14:35.380 --> 00:14:39.890
<00:14:35.380>let's <00:14:35.555>mention <00:14:35.730>what <00:14:35.905>are, <00:14:36.080>what <00:14:36.255>are <00:14:36.430>modifier <00:14:36.605>style <00:14:36.780>methods?

204
00:14:40.990 --> 00:14:45.570
<00:14:40.990>Uh, <00:14:41.190>so, <00:14:41.390>uh, <00:14:41.590>uh, <00:14:41.790>you <00:14:41.990>see <00:14:42.190>this, <00:14:42.390>uh,

205
00:14:46.150 --> 00:14:50.930
<00:14:46.150>dot <00:14:46.305>syntax <00:14:46.461>dot <00:14:46.616>resizable <00:14:46.772>resizable <00:14:46.927>dot <00:14:47.083>frame <00:14:47.238>with <00:14:47.394>parameter <00:14:47.550>width

206
00:14:51.090 --> 00:14:55.160
<00:14:51.090>of <00:14:51.230>50 <00:14:51.370>with <00:14:51.510>height <00:14:51.650>of <00:14:51.790>50 <00:14:51.930>and, <00:14:52.070>and <00:14:52.210>similar. <00:14:52.350>So, <00:14:52.490>uh,

207
00:14:56.580 --> 00:15:01.400
<00:14:56.580>I'm <00:14:56.680>sure <00:14:56.780>it <00:14:56.880>is <00:14:56.980>too <00:14:57.080>short <00:14:57.180>time, <00:14:57.280>but <00:14:57.380>what <00:14:57.480>you <00:14:57.580>can <00:14:57.680>see, <00:14:57.780>it's <00:14:57.880>clear, <00:14:57.980>very,

208
00:15:01.430 --> 00:15:05.200
<00:15:01.430>very <00:15:01.663>clear, <00:15:01.896>clear <00:15:02.130>syntax. <00:15:02.363>Okay? <00:15:02.596>So, <00:15:02.829>uh,

209
00:15:06.730 --> 00:15:10.480
<00:15:06.730>if <00:15:07.010>you <00:15:07.290>have <00:15:07.570>an <00:15:07.850>object, <00:15:08.130>uh,

210
00:15:10.780 --> 00:15:15.600
<00:15:10.780>the <00:15:10.896>first <00:15:11.013>part <00:15:11.130>means <00:15:11.246>how <00:15:11.363>to <00:15:11.480>create <00:15:11.596>object <00:15:11.713>like <00:15:11.829>image. <00:15:11.946>And <00:15:12.063>after <00:15:12.180>that,

211
00:15:15.820 --> 00:15:20.480
<00:15:15.820>you <00:15:15.975>are <00:15:16.131>modifying <00:15:16.286>values <00:15:16.442>by <00:15:16.597>using <00:15:16.753>modifier <00:15:16.908>style <00:15:17.064>syntax <00:15:17.220>with

212
00:15:20.860 --> 00:15:23.840
<00:15:20.860>dot, <00:15:21.035>and <00:15:21.210>the <00:15:21.385>name <00:15:21.560>of <00:15:21.735>method.name <00:15:21.910>of <00:15:22.085>the <00:15:22.260>method,

213
00:15:24.250 --> 00:15:29.040
<00:15:24.250>every <00:15:24.483>single <00:15:24.716>method <00:15:24.950>actually <00:15:25.183>returns <00:15:25.416>the <00:15:25.650>new,

214
00:15:29.660 --> 00:15:33.560
<00:15:29.660>but <00:15:29.800>a <00:15:29.939>little <00:15:30.079>bit <00:15:30.219>modified <00:15:30.360>copy <00:15:30.500>of <00:15:30.640>the <00:15:30.780>original <00:15:30.920>object, <00:15:31.060>which,

215
00:15:33.560 --> 00:15:37.200
<00:15:33.560>which <00:15:33.734>is <00:15:33.910>actually <00:15:34.084>very <00:15:34.260>good <00:15:34.435>for, <00:15:34.609>uh, <00:15:34.785>for <00:15:34.959>compiler.

216
00:15:37.520 --> 00:15:40.840
<00:15:37.520>Compiler <00:15:37.753>knows <00:15:37.986>how <00:15:38.220>to <00:15:38.453>optimize <00:15:38.686>all <00:15:38.920>this,

217
00:15:42.730 --> 00:15:44.900
<00:15:42.730>okay? <00:15:43.080>And <00:15:43.430>as <00:15:43.780>I <00:15:44.130>mentioned,

218
00:15:45.000 --> 00:15:49.940
<00:15:45.000>the <00:15:45.175>result <00:15:45.350>builders <00:15:45.525>as <00:15:45.700>the <00:15:45.875>most <00:15:46.050>important <00:15:46.225>part <00:15:46.400>of

219
00:15:50.270 --> 00:15:53.020
<00:15:50.270>everything. <00:15:50.970>Okay? <00:15:51.670>Now,

220
00:15:54.220 --> 00:15:58.700
<00:15:54.220>I <00:15:54.395>will <00:15:54.570>show <00:15:54.745>you <00:15:54.920>how <00:15:55.095>does <00:15:55.270>it <00:15:55.445>looks <00:15:55.620>like

221
00:15:59.760 --> 00:16:04.170
<00:15:59.760>in <00:16:00.226>the, <00:16:00.693>uh, <00:16:01.160>here,

222
00:16:04.190 --> 00:16:07.700
<00:16:04.190>in <00:16:04.365>the <00:16:04.540>X <00:16:04.715>code, <00:16:04.890>which <00:16:05.065>is <00:16:05.240>actually <00:16:05.415>the, <00:16:05.590>uh,

223
00:16:07.920 --> 00:16:12.460
<00:16:07.920>the <00:16:08.075>tool <00:16:08.231>we <00:16:08.386>use <00:16:08.542>to <00:16:08.697>develop <00:16:08.853>code <00:16:09.008>for, <00:16:09.164>for <00:16:09.319>swift.

224
00:16:12.840 --> 00:16:17.500
<00:16:12.840>And <00:16:13.015>let's <00:16:13.190>say <00:16:13.365>that <00:16:13.540>we <00:16:13.715>want <00:16:13.890>to <00:16:14.065>create <00:16:14.240>a

225
00:16:17.820 --> 00:16:21.620
<00:16:17.820>language. <00:16:18.020>This <00:16:18.220>will <00:16:18.420>be <00:16:18.620>the <00:16:18.820>sample <00:16:19.020>of <00:16:19.220>very,

226
00:16:22.100 --> 00:16:27.100
<00:16:22.100>a <00:16:22.275>sample <00:16:22.450>of <00:16:22.625>simple <00:16:22.800>language. <00:16:22.975>So, <00:16:23.150>uh, <00:16:23.325>I'm <00:16:23.500>an,

227
00:16:27.100 --> 00:16:30.460
<00:16:27.100>I <00:16:27.255>mentioned <00:16:27.411>result <00:16:27.566>builders. <00:16:27.722>What <00:16:27.877>is <00:16:28.033>actually <00:16:28.188>the <00:16:28.344>result <00:16:28.500>builder?

228
00:16:31.370 --> 00:16:35.400
<00:16:31.370>This <00:16:31.570>is <00:16:31.770>the <00:16:31.970>result <00:16:32.170>builder. <00:16:32.370>Okay? <00:16:32.570>So, <00:16:32.770>uh,

229
00:16:35.830 --> 00:16:39.840
<00:16:35.830>this <00:16:36.005>is <00:16:36.180>the <00:16:36.355>access. <00:16:36.530>Uh, <00:16:36.705>this <00:16:36.880>is <00:16:37.055>the <00:16:37.230>operator,

230
00:16:40.450 --> 00:16:44.800
<00:16:40.450>which <00:16:40.730>will, <00:16:41.010>uh, <00:16:41.290>called <00:16:41.570>drawing <00:16:41.850>builders,

231
00:16:45.050 --> 00:16:49.600
<00:16:45.050>where <00:16:45.329>we <00:16:45.609>actually <00:16:45.890>implement <00:16:46.170>building <00:16:46.449>blocks.

232
00:16:50.820 --> 00:16:53.320
<00:16:50.820>You <00:16:51.100>remember <00:16:51.380>when <00:16:51.660>I <00:16:51.940>show, <00:16:52.220>uh,

233
00:16:53.460 --> 00:16:57.510
<00:16:53.460>how <00:16:53.740>swift <00:16:54.020>UI <00:16:54.300>syntax <00:16:54.580>looks <00:16:54.860>like,

234
00:16:58.570 --> 00:17:01.710
<00:16:58.570>uh, <00:16:58.850>all <00:16:59.130>those <00:16:59.410>elements <00:16:59.690>has <00:16:59.970>been

235
00:17:03.260 --> 00:17:08.110
<00:17:03.260>collected <00:17:03.610>together <00:17:03.960>with <00:17:04.310>these <00:17:04.660>static

236
00:17:08.510 --> 00:17:12.350
<00:17:08.510>functions, <00:17:08.710>with <00:17:08.910>this, <00:17:09.109>uh, <00:17:09.310>functions, <00:17:09.510>which <00:17:09.710>divide, <00:17:09.910>uh,

237
00:17:12.350 --> 00:17:16.750
<00:17:12.349>which <00:17:12.550>define <00:17:12.750>how <00:17:12.949>do <00:17:13.149>we <00:17:13.349>build <00:17:13.550>our <00:17:13.750>blocks

238
00:17:17.970 --> 00:17:21.490
<00:17:17.970>in <00:17:18.170>addition. <00:17:18.370>So <00:17:18.569>if <00:17:18.770>you <00:17:18.970>create <00:17:19.170>a <00:17:19.370>language,

239
00:17:22.310 --> 00:17:26.650
<00:17:22.310>you <00:17:22.589>will <00:17:22.869>definitely <00:17:23.149>need <00:17:23.429>to <00:17:23.710>create

240
00:17:27.230 --> 00:17:31.570
<00:17:27.230>result <00:17:27.430>builder <00:17:27.630>like <00:17:27.829>this. <00:17:28.030>What <00:17:28.230>you <00:17:28.430>need <00:17:28.630>else,

241
00:17:32.590 --> 00:17:36.530
<00:17:32.590>you <00:17:32.823>will <00:17:33.056>need <00:17:33.290>to <00:17:33.523>create <00:17:33.756>the <00:17:33.990>structure,

242
00:17:36.830 --> 00:17:39.610
<00:17:36.830>the <00:17:37.296>type <00:17:37.763>for <00:17:38.230>every,

243
00:17:40.580 --> 00:17:45.010
<00:17:40.580>let's <00:17:40.720>say <00:17:40.860>language <00:17:41.000>command. <00:17:41.139>So <00:17:41.280>you <00:17:41.419>can <00:17:41.560>see <00:17:41.699>here <00:17:41.840>what <00:17:41.980>we,

244
00:17:45.040 --> 00:17:47.290
<00:17:45.040>what <00:17:45.273>we <00:17:45.506>have, <00:17:45.740>we <00:17:45.973>have <00:17:46.206>one <00:17:46.440>protocol,

245
00:17:47.540 --> 00:17:50.800
<00:17:47.540>which <00:17:47.773>we <00:17:48.006>named <00:17:48.240>Drawable <00:17:48.473>protocols. <00:17:48.706>Like, <00:17:48.940>uh,

246
00:17:51.020 --> 00:17:54.680
<00:17:51.020>if <00:17:51.195>you're <00:17:51.370>not <00:17:51.545>familiar <00:17:51.720>with <00:17:51.895>Swift <00:17:52.070>protocols, <00:17:52.245>like <00:17:52.420>interfaces,

247
00:17:55.110 --> 00:17:59.940
<00:17:55.110>it's <00:17:55.343>about <00:17:55.576>blueprints <00:17:55.810>for, <00:17:56.043>uh, <00:17:56.276>for <00:17:56.510>types,

248
00:18:00.450 --> 00:18:05.220
<00:18:00.450>okay? <00:18:00.577>And, <00:18:00.704>uh, <00:18:00.831>what <00:18:00.959>we <00:18:01.086>see, <00:18:01.213>we <00:18:01.340>have <00:18:01.468>a <00:18:01.595>structure <00:18:01.722>named <00:18:01.850>line,

249
00:18:06.090 --> 00:18:10.670
<00:18:06.090>okay? <00:18:06.217>Which <00:18:06.344>is <00:18:06.471>the, <00:18:06.599>the <00:18:06.726>on <00:18:06.853>the, <00:18:06.980>which <00:18:07.108>is <00:18:07.235>on <00:18:07.362>the <00:18:07.490>top.

250
00:18:11.050 --> 00:18:16.020
<00:18:11.050>And <00:18:11.225>then <00:18:11.399>we <00:18:11.575>have <00:18:11.750>separate <00:18:11.925>commands <00:18:12.100>like, <00:18:12.274>uh, <00:18:12.450>text,

251
00:18:16.570 --> 00:18:18.660
<00:18:16.570>like <00:18:17.036>space, <00:18:17.503>like <00:18:17.970>stars,

252
00:18:19.650 --> 00:18:23.220
<00:18:19.650>like <00:18:19.766>a <00:18:19.883>new <00:18:20.000>line <00:18:20.116>or <00:18:20.233>something <00:18:20.350>like <00:18:20.466>that. <00:18:20.583>What, <00:18:20.700>what <00:18:20.816>is <00:18:20.933>this <00:18:21.050>about?

253
00:18:23.870 --> 00:18:28.580
<00:18:23.870>Every <00:18:24.149>single <00:18:24.429>structure <00:18:24.709>is <00:18:24.989>actually <00:18:25.270>one,

254
00:18:28.870 --> 00:18:33.700
<00:18:28.870>let's <00:18:28.969>say <00:18:29.070>command <00:18:29.169>of <00:18:29.270>the <00:18:29.370>language. <00:18:29.469>It <00:18:29.570>looks <00:18:29.669>in <00:18:29.770>the <00:18:29.870>swift <00:18:29.969>UI <00:18:30.070>as <00:18:30.169>the <00:18:30.270>same.

255
00:18:34.040 --> 00:18:39.020
<00:18:34.040>So <00:18:34.147>this <00:18:34.255>is <00:18:34.363>the <00:18:34.470>simple <00:18:34.578>language <00:18:34.686>which <00:18:34.793>will <00:18:34.901>enable <00:18:35.009>us <00:18:35.116>to <00:18:35.224>create <00:18:35.332>one <00:18:35.440>line

256
00:18:39.020 --> 00:18:43.900
<00:18:39.020>of <00:18:39.136>the <00:18:39.253>text <00:18:39.370>with <00:18:39.486>some <00:18:39.603>stars, <00:18:39.720>with <00:18:39.836>some <00:18:39.953>text, <00:18:40.070>with <00:18:40.186>some <00:18:40.303>additional <00:18:40.420>modification.

257
00:18:43.920 --> 00:18:48.300
<00:18:43.920>But <00:18:44.075>it's <00:18:44.231>quite <00:18:44.386>easy <00:18:44.542>to <00:18:44.697>translate <00:18:44.853>this <00:18:45.008>simple <00:18:45.164>project <00:18:45.320>to,

258
00:18:48.760 --> 00:18:52.860
<00:18:48.760>uh, <00:18:48.993>much, <00:18:49.226>uh, <00:18:49.460>wider <00:18:49.693>applications. <00:18:49.926>So, <00:18:50.160>uh,

259
00:18:54.050 --> 00:18:58.620
<00:18:54.050>okay, <00:18:54.330>okay, <00:18:54.610>this <00:18:54.889>is <00:18:55.169>all <00:18:55.450>caps,

260
00:18:58.970 --> 00:19:02.900
<00:18:58.970>okay? <00:18:59.170>And <00:18:59.370>let's <00:18:59.570>see <00:18:59.770>how <00:18:59.970>it <00:19:00.170>would <00:19:00.370>be,

261
00:19:03.760 --> 00:19:05.860
<00:19:03.760>uh, <00:19:04.040>in <00:19:04.320>the <00:19:04.600>old <00:19:04.879>fashioned <00:19:05.160>way,

262
00:19:06.880 --> 00:19:10.860
<00:19:06.880>we <00:19:07.080>create <00:19:07.280>one <00:19:07.480>array, <00:19:07.680>which <00:19:07.880>is <00:19:08.080>a <00:19:08.280>line,

263
00:19:11.750 --> 00:19:14.480
<00:19:11.750>okay? <00:19:12.030>And <00:19:12.310>it <00:19:12.590>is <00:19:12.870>the <00:19:13.150>array,

264
00:19:15.380 --> 00:19:20.280
<00:19:15.380>but <00:19:15.496>we <00:19:15.613>are <00:19:15.730>simply <00:19:15.846>not <00:19:15.963>satisfied <00:19:16.080>with <00:19:16.196>this <00:19:16.313>syntax. <00:19:16.430>This <00:19:16.546>is <00:19:16.663>not, <00:19:16.780>uh,

265
00:19:20.780 --> 00:19:24.600
<00:19:20.780>syntax <00:19:20.955>of <00:19:21.129>a <00:19:21.305>new <00:19:21.480>language. <00:19:21.655>It <00:19:21.830>is <00:19:22.004>not, <00:19:22.180>um,

266
00:19:25.070 --> 00:19:28.960
<00:19:25.070>appropriate <00:19:25.270>for <00:19:25.470>a <00:19:25.669>language, <00:19:25.870>for <00:19:26.070>domain, <00:19:26.270>specific <00:19:26.470>language.

267
00:19:28.980 --> 00:19:30.840
<00:19:28.980>You'll <00:19:29.330>see <00:19:29.680>in <00:19:30.030>two <00:19:30.380>minutes.

268
00:19:31.300 --> 00:19:35.360
<00:19:31.300>How <00:19:31.440>does <00:19:31.580>it <00:19:31.720>looks <00:19:31.860>like <00:19:32.000>if <00:19:32.139>we <00:19:32.280>are <00:19:32.419>talking <00:19:32.560>about <00:19:32.700>language.

269
00:19:36.500 --> 00:19:39.680
<00:19:36.500>So <00:19:36.640>I <00:19:36.780>mentioned <00:19:36.920>we <00:19:37.060>are <00:19:37.200>about <00:19:37.340>to <00:19:37.480>create <00:19:37.620>a <00:19:37.760>resolve <00:19:37.900>builder,

270
00:19:41.470 --> 00:19:43.960
<00:19:41.470>okay? <00:19:41.820>This <00:19:42.170>building <00:19:42.520>blocks, <00:19:42.870>uh,

271
00:19:45.220 --> 00:19:49.120
<00:19:45.220>we <00:19:45.420>have <00:19:45.620>a <00:19:45.820>function <00:19:46.020>that <00:19:46.220>draws <00:19:46.420>content. <00:19:46.620>Uh,

272
00:19:49.260 --> 00:19:53.720
<00:19:49.260>we <00:19:49.415>have <00:19:49.571>a <00:19:49.726>function <00:19:49.882>that, <00:19:50.037>uh, <00:19:50.193>creates, <00:19:50.348>uh, <00:19:50.504>all <00:19:50.660>caps,

273
00:19:54.430 --> 00:19:55.263
okay?

274
00:19:55.700 --> 00:20:00.480
<00:19:55.700>And <00:19:55.816>let <00:19:55.933>we <00:19:56.050>see <00:19:56.166>how <00:19:56.283>does <00:19:56.400>it <00:19:56.516>looks <00:19:56.633>like <00:19:56.750>in <00:19:56.866>new <00:19:56.983>fashion <00:19:57.100>way.

275
00:20:01.360 --> 00:20:05.320
<00:20:01.360>So <00:20:01.560>make <00:20:01.760>great, <00:20:01.959>I <00:20:02.159>create <00:20:02.360>here <00:20:02.560>some <00:20:02.760>small,

276
00:20:06.090 --> 00:20:10.440
<00:20:06.090>small <00:20:06.323>program, <00:20:06.556>which <00:20:06.790>is <00:20:07.023>actually <00:20:07.256>this <00:20:07.490>part.

277
00:20:11.180 --> 00:20:15.320
<00:20:11.180>So <00:20:11.413>creating, <00:20:11.646>uh, <00:20:11.880>a <00:20:12.113>line <00:20:12.346>with <00:20:12.580>stars,

278
00:20:17.390 --> 00:20:20.570
<00:20:17.390>adding <00:20:17.590>new <00:20:17.790>building <00:20:17.990>blocks, <00:20:18.190>which <00:20:18.390>is <00:20:18.590>actually <00:20:18.790>text,

279
00:20:21.070 --> 00:20:23.410
<00:20:21.070>and <00:20:21.270>a <00:20:21.470>new <00:20:21.669>building <00:20:21.870>block, <00:20:22.070>which <00:20:22.270>is <00:20:22.470>space.

280
00:20:24.030 --> 00:20:27.690
<00:20:24.030>And <00:20:24.170>then <00:20:24.310>what <00:20:24.450>we <00:20:24.590>have <00:20:24.730>seen <00:20:24.870>is <00:20:25.010>using <00:20:25.149>a <00:20:25.290>caps, <00:20:25.430>uh,

281
00:20:28.320 --> 00:20:30.130
<00:20:28.320>what <00:20:28.600>is <00:20:28.879>important <00:20:29.159>here <00:20:29.439>to <00:20:29.720>see.

282
00:20:30.150 --> 00:20:34.970
<00:20:30.150>We <00:20:30.305>have <00:20:30.461>standard <00:20:30.616>included <00:20:30.772>standard <00:20:30.927>swift <00:20:31.083>syntax <00:20:31.238>inside <00:20:31.394>of, <00:20:31.550>uh,

283
00:20:35.320 --> 00:20:37.650
<00:20:35.320>this, <00:20:35.669>uh, <00:20:36.020>parenthesis. <00:20:36.370>And, <00:20:36.720>uh,

284
00:20:37.650 --> 00:20:41.290
<00:20:37.650>this <00:20:37.805>is <00:20:37.961>very <00:20:38.116>good <00:20:38.272>because <00:20:38.427>we <00:20:38.583>use <00:20:38.738>the <00:20:38.894>host <00:20:39.050>language.

285
00:20:41.390 --> 00:20:46.130
<00:20:41.390>We <00:20:41.530>use <00:20:41.670>features <00:20:41.810>of <00:20:41.950>host <00:20:42.090>language, <00:20:42.230>like, <00:20:42.370>uh, <00:20:42.510>standard <00:20:42.650>flow <00:20:42.790>control,

286
00:20:46.240 --> 00:20:48.560
<00:20:46.240>like <00:20:46.590>loops <00:20:46.940>and <00:20:47.290>similar <00:20:47.640>things,

287
00:20:49.340 --> 00:20:54.080
<00:20:49.340>not <00:20:49.467>only <00:20:49.594>the <00:20:49.721>D <00:20:49.849>Ss <00:20:49.976>L <00:20:50.103>thing. <00:20:50.230>So <00:20:50.358>we <00:20:50.485>will <00:20:50.612>invite, <00:20:50.740>uh,

288
00:20:54.140 --> 00:20:57.600
<00:20:54.140>we <00:20:54.340>will, <00:20:54.540>um, <00:20:54.740>invent <00:20:54.940>only <00:20:55.140>what <00:20:55.340>we <00:20:55.540>need,

289
00:20:58.970 --> 00:21:03.540
<00:20:58.970>what <00:20:59.097>we <00:20:59.224>do <00:20:59.351>not <00:20:59.479>need <00:20:59.606>to <00:20:59.733>invent, <00:20:59.860>we'll <00:20:59.988>use <00:21:00.115>as, <00:21:00.242>as <00:21:00.370>is.

290
00:21:04.170 --> 00:21:06.860
<00:21:04.170>Okay? <00:21:05.570>And

291
00:21:08.390 --> 00:21:13.210
<00:21:08.390>so <00:21:08.483>how <00:21:08.576>does <00:21:08.670>it, <00:21:08.763>uh, <00:21:08.856>how <00:21:08.950>does <00:21:09.043>it <00:21:09.136>look? <00:21:09.230>Looks <00:21:09.323>like <00:21:09.416>in <00:21:09.510>a, <00:21:09.603>in <00:21:09.696>a <00:21:09.790>usage,

292
00:21:13.790 --> 00:21:15.370
<00:21:13.790>uh, <00:21:14.256>in <00:21:14.723>standard <00:21:15.190>usage.

293
00:21:15.850 --> 00:21:18.970
<00:21:15.850>I <00:21:16.199>have <00:21:16.550>created <00:21:16.899>this <00:21:17.250>here.

294
00:21:19.750 --> 00:21:24.660
<00:21:19.750>So <00:21:19.925>we <00:21:20.100>are <00:21:20.275>creating <00:21:20.450>one <00:21:20.625>new <00:21:20.800>drawing, <00:21:20.975>creating <00:21:21.150>stars,

295
00:21:25.460 --> 00:21:29.500
<00:21:25.460>creating <00:21:25.635>text, <00:21:25.810>then <00:21:25.985>using <00:21:26.160>loop <00:21:26.335>as <00:21:26.510>swift <00:21:26.685>flow <00:21:26.860>control.

296
00:21:30.080 --> 00:21:34.660
<00:21:30.080>And <00:21:30.207>so, <00:21:30.334>uh, <00:21:30.461>I <00:21:30.589>will <00:21:30.716>show <00:21:30.843>you <00:21:30.970>what <00:21:31.098>we <00:21:31.225>are <00:21:31.352>about <00:21:31.480>to,

297
00:21:35.200 --> 00:21:38.800
<00:21:35.200>to <00:21:35.433>get <00:21:35.666>here. <00:21:35.900>Okay? <00:21:36.133>Just <00:21:36.366>a <00:21:36.600>second.

298
00:21:41.940 --> 00:21:46.840
<00:21:41.940>Now <00:21:42.095>it <00:21:42.251>seems <00:21:42.406>that <00:21:42.562>I, <00:21:42.717>oh, <00:21:42.873>yeah, <00:21:43.028>yeah, <00:21:43.184>yeah. <00:21:43.340>Okay,

299
00:21:50.170 --> 00:21:53.430
<00:21:50.170>here <00:21:50.450>it <00:21:50.730>is. <00:21:51.010>Okay, <00:21:51.290>it <00:21:51.570>is.

300
00:21:54.590 --> 00:21:58.810
<00:21:54.590>We <00:21:54.764>are <00:21:54.939>developers. <00:21:55.115>Hello <00:21:55.290>world. <00:21:55.465>Some <00:21:55.639>stars. <00:21:55.814>So, <00:21:55.990>uh,

301
00:21:59.000 --> 00:22:02.210
<00:21:59.000>here <00:21:59.280>we <00:21:59.560>have <00:21:59.840>stars. <00:22:00.120>Length <00:22:00.400>four,

302
00:22:03.440 --> 00:22:07.090
<00:22:03.440>this <00:22:03.640>is <00:22:03.840>it. <00:22:04.040>Now <00:22:04.240>we <00:22:04.440>have <00:22:04.640>text <00:22:04.840>stars,

303
00:22:07.420 --> 00:22:11.050
<00:22:07.420>which <00:22:07.595>is <00:22:07.770>this <00:22:07.945>one. <00:22:08.120>Now <00:22:08.295>we <00:22:08.470>have <00:22:08.645>a <00:22:08.820>loop.

304
00:22:13.140 --> 00:22:15.070
<00:22:13.140>Okay? <00:22:13.606>1, <00:22:14.073>2, <00:22:14.540>3,

305
00:22:15.990 --> 00:22:20.390
<00:22:15.990>creating <00:22:16.223>space <00:22:16.456>and <00:22:16.690>stars. <00:22:16.923>Okay? <00:22:17.156>Star <00:22:17.390>space,

306
00:22:20.610 --> 00:22:24.430
<00:22:20.610>two <00:22:20.750>stars, <00:22:20.889>space, <00:22:21.030>and <00:22:21.169>so <00:22:21.310>on. <00:22:21.449>If <00:22:21.590>we <00:22:21.729>would <00:22:21.870>like <00:22:22.010>to

307
00:22:26.560 --> 00:22:30.440
<00:22:26.560>continue, <00:22:26.735>we <00:22:26.909>can <00:22:27.085>create <00:22:27.260>some <00:22:27.435>program <00:22:27.610>which <00:22:27.784>will <00:22:27.960>have,

308
00:22:31.300 --> 00:22:35.430
<00:22:31.300>okay, <00:22:31.440>five <00:22:31.580>stars, <00:22:31.720>then <00:22:31.860>two <00:22:32.000>spaces, <00:22:32.139>then <00:22:32.280>stars, <00:22:32.419>then <00:22:32.560>new <00:22:32.700>line,

309
00:22:36.020 --> 00:22:39.230
<00:22:36.020>okay? <00:22:36.175>And <00:22:36.331>then <00:22:36.486>stars <00:22:36.642>and <00:22:36.797>something <00:22:36.953>like, <00:22:37.108>something <00:22:37.264>like <00:22:37.420>that.

310
00:22:40.730 --> 00:22:43.870
<00:22:40.730>And <00:22:40.905>if <00:22:41.080>we <00:22:41.255>start <00:22:41.430>a <00:22:41.605>program, <00:22:41.780>we <00:22:41.955>will <00:22:42.130>get,

311
00:22:44.930 --> 00:22:49.610
<00:22:44.930>get <00:22:45.130>these, <00:22:45.330>this. <00:22:45.530>So <00:22:45.730>this <00:22:45.930>is <00:22:46.130>the <00:22:46.330>program,

312
00:22:50.600 --> 00:22:51.433
okay?

313
00:22:52.890 --> 00:22:56.850
<00:22:52.890>I <00:22:53.170>will <00:22:53.450>try <00:22:53.730>to <00:22:54.010>finish <00:22:54.290>soon.

314
00:22:58.470 --> 00:23:03.010
<00:22:58.470>Uh, <00:22:58.645>let's <00:22:58.820>consider <00:22:58.995>scenario <00:22:59.170>like <00:22:59.345>this. <00:22:59.520>You <00:22:59.695>have <00:22:59.870>domain,

315
00:23:03.670 --> 00:23:08.170
<00:23:03.670>you <00:23:03.845>identify <00:23:04.020>the <00:23:04.195>most <00:23:04.370>important <00:23:04.545>processes <00:23:04.720>within <00:23:04.895>the <00:23:05.070>domain.

316
00:23:08.670 --> 00:23:12.450
<00:23:08.670>You <00:23:08.903>identify <00:23:09.136>the <00:23:09.370>most <00:23:09.603>important <00:23:09.836>nouns, <00:23:10.070>verbs,

317
00:23:12.950 --> 00:23:17.490
<00:23:12.950>and <00:23:13.125>attributes. <00:23:13.300>You <00:23:13.475>implement <00:23:13.650>this <00:23:13.825>in <00:23:14.000>this <00:23:14.175>way, <00:23:14.350>create,

318
00:23:17.670 --> 00:23:20.450
<00:23:17.670>create, <00:23:18.020>resolve <00:23:18.370>builder, <00:23:18.720>create, <00:23:19.070>uh,

319
00:23:21.840 --> 00:23:25.920
<00:23:21.840>structures <00:23:22.040>and <00:23:22.240>modifiers <00:23:22.439>and <00:23:22.639>so <00:23:22.840>on. <00:23:23.040>After <00:23:23.240>that,

320
00:23:26.380 --> 00:23:30.200
<00:23:26.380>you <00:23:26.507>can <00:23:26.634>use <00:23:26.761>this <00:23:26.889>as <00:23:27.016>a <00:23:27.143>library, <00:23:27.270>as <00:23:27.398>a <00:23:27.525>package, <00:23:27.652>let's <00:23:27.780>say.

321
00:23:30.700 --> 00:23:32.480
<00:23:30.700>And <00:23:31.400>after <00:23:32.100>that,

322
00:23:32.940 --> 00:23:37.200
<00:23:32.940>you <00:23:33.140>use <00:23:33.340>this <00:23:33.540>in <00:23:33.740>a <00:23:33.940>very <00:23:34.140>simple <00:23:34.340>way,

323
00:23:37.870 --> 00:23:39.560
<00:23:37.870>like <00:23:38.570>this. <00:23:39.270>Uh,

324
00:23:40.060 --> 00:23:43.520
<00:23:40.060>my <00:23:40.260>suggestion <00:23:40.460>would <00:23:40.659>be <00:23:40.860>that <00:23:41.060>you <00:23:41.260>will <00:23:41.460>never

325
00:23:45.120 --> 00:23:47.320
<00:23:45.120>consider <00:23:45.399>solving <00:23:45.679>problems <00:23:45.959>with <00:23:46.239>the <00:23:46.520>domain.

326
00:23:47.780 --> 00:23:51.680
<00:23:47.780>You <00:23:47.920>create <00:23:48.060>language <00:23:48.200>and <00:23:48.340>you <00:23:48.480>create <00:23:48.620>something <00:23:48.760>like <00:23:48.899>this. <00:23:49.040>Of <00:23:49.180>course,

327
00:23:52.240 --> 00:23:53.920
<00:23:52.240>I <00:23:52.473>work <00:23:52.706>with <00:23:52.940>Swift. <00:23:53.173>I <00:23:53.406>love <00:23:53.640>Swift,

328
00:23:53.980 --> 00:23:57.440
<00:23:53.980>and <00:23:54.107>this <00:23:54.234>is <00:23:54.361>the <00:23:54.489>reason <00:23:54.616>why <00:23:54.743>I <00:23:54.870>based <00:23:54.998>this <00:23:55.125>on <00:23:55.252>the <00:23:55.380>Swift.

329
00:23:57.660 --> 00:23:59.280
<00:23:57.660>But <00:23:58.010>you <00:23:58.360>can <00:23:58.710>use <00:23:59.060>Python,

330
00:23:59.420 --> 00:24:04.120
<00:23:59.420>you <00:23:59.560>can <00:23:59.700>use <00:23:59.840>C <00:23:59.980>Sharp <00:24:00.120>and <00:24:00.260>some <00:24:00.400>other <00:24:00.540>languages <00:24:00.680>like <00:24:00.820>host

331
00:24:04.720 --> 00:24:05.100
languages.

332
00:24:05.100 --> 00:24:09.880
<00:24:05.100>But <00:24:05.300>definitely <00:24:05.500>I <00:24:05.699>suggest <00:24:05.899>to <00:24:06.100>everyone <00:24:06.300>to <00:24:06.500>consider

333
00:24:10.330 --> 00:24:13.560
<00:24:10.330>using <00:24:10.679>domain <00:24:11.030>specific <00:24:11.379>languages. <00:24:11.730>Uh,

334
00:24:13.580 --> 00:24:17.600
<00:24:13.580>so <00:24:13.780>I <00:24:13.980>would <00:24:14.179>like <00:24:14.379>to <00:24:14.580>finalize <00:24:14.780>my <00:24:14.980>presentation.

335
00:24:17.820 --> 00:24:20.480
<00:24:17.820>If <00:24:18.100>someone <00:24:18.379>wants <00:24:18.659>to <00:24:18.939>contact <00:24:19.220>me,

336
00:24:21.700 --> 00:24:23.960
<00:24:21.700>you <00:24:22.050>can <00:24:22.400>use <00:24:22.750>LinkedIn. <00:24:23.100>Okay?

337
00:24:25.100 --> 00:24:29.900
<00:24:25.100>I <00:24:25.216>will <00:24:25.333>be <00:24:25.449>happy <00:24:25.566>to <00:24:25.683>answer <00:24:25.800>to <00:24:25.916>any <00:24:26.033>answer <00:24:26.149>to <00:24:26.266>any <00:24:26.383>question <00:24:26.500>you,

338
00:24:30.320 --> 00:24:34.220
<00:24:30.320>you <00:24:30.475>have. <00:24:30.631>So <00:24:30.786>do <00:24:30.942>you <00:24:31.097>have <00:24:31.253>any <00:24:31.408>questions <00:24:31.564>for <00:24:31.720>me?

339
00:24:36.540 --> 00:24:38.720
<00:24:36.540>Yes, <00:24:36.740>we <00:24:36.940>do <00:24:37.139>have <00:24:37.340>a <00:24:37.540>few <00:24:37.740>questions. <00:24:37.940>Remember,

340
00:24:38.740 --> 00:24:42.720
<00:24:38.740>you <00:24:38.880>can <00:24:39.020>ask <00:24:39.160>your <00:24:39.300>questions <00:24:39.440>in <00:24:39.580>the <00:24:39.720>Congress <00:24:39.860>app. <00:24:40.000>First <00:24:40.140>question,

341
00:24:43.020 --> 00:24:47.440
<00:24:43.020>do <00:24:43.147>you <00:24:43.274>support <00:24:43.401>tracking <00:24:43.529>of <00:24:43.656>changes <00:24:43.783>in <00:24:43.910>the <00:24:44.038>ui? <00:24:44.165>If <00:24:44.292>you <00:24:44.420>do,

342
00:24:47.540 --> 00:24:51.840
<00:24:47.540>do <00:24:47.680>you <00:24:47.820>have <00:24:47.960>undo <00:24:48.100>redo <00:24:48.240>options? <00:24:48.379>Do <00:24:48.520>you <00:24:48.659>support <00:24:48.800>multi-user <00:24:48.940>case?

343
00:24:51.840 --> 00:24:54.000
<00:24:51.840>There's <00:24:51.995>a <00:24:52.151>lot <00:24:52.306>of <00:24:52.462>questions <00:24:52.617>at <00:24:52.773>once. <00:24:52.928>Sorry <00:24:53.084>about <00:24:53.240>that.

344
00:24:55.140 --> 00:24:59.320
<00:24:55.140>Uh, <00:24:55.267>I'm <00:24:55.394>not <00:24:55.521>sure <00:24:55.649>that, <00:24:55.776>uh, <00:24:55.903>I <00:24:56.030>understand, <00:24:56.158>uh, <00:24:56.285>fully, <00:24:56.412>but, <00:24:56.540>uh,

345
00:24:59.870 --> 00:25:02.800
<00:24:59.870>support <00:25:00.149>track <00:25:00.429>changes <00:25:00.709>at, <00:25:00.989>at <00:25:01.270>ui.

346
00:25:03.780 --> 00:25:06.400
<00:25:03.780>The <00:25:03.980>questions <00:25:04.180>from <00:25:04.379>Tiana, <00:25:04.580>do <00:25:04.780>you <00:25:04.980>wanna <00:25:05.180>I,

347
00:25:06.480 --> 00:25:08.480
<00:25:06.480>I, <00:25:06.830>I, <00:25:07.180>yes, <00:25:07.530>yes, <00:25:07.880>please.

348
00:25:13.770 --> 00:25:17.590
<00:25:13.770>Okay. <00:25:15.170>Okay.

349
00:25:19.720 --> 00:25:23.860
<00:25:19.720>Yes, <00:25:19.895>sure. <00:25:20.070>Yes, <00:25:20.245>yes, <00:25:20.420>of <00:25:20.595>course. <00:25:20.770>Because, <00:25:20.945>because <00:25:21.120>if

350
00:25:25.840 --> 00:25:30.700
<00:25:25.840>repeat, <00:25:25.956>I <00:25:26.073>will, <00:25:26.189>I <00:25:26.306>will <00:25:26.423>repeat <00:25:26.540>question <00:25:26.656>and <00:25:26.773>I <00:25:26.889>will <00:25:27.006>give <00:25:27.123>answer, <00:25:27.240>uh,

351
00:25:30.810 --> 00:25:35.340
<00:25:30.810>more <00:25:31.010>wide. <00:25:31.210>Uh, <00:25:31.409>it <00:25:31.610>is <00:25:31.810>about <00:25:32.010>using, <00:25:32.210>uh,

352
00:25:35.740 --> 00:25:40.460
<00:25:35.740>features <00:25:35.880>of <00:25:36.020>x <00:25:36.160>code, <00:25:36.300>about <00:25:36.440>using, <00:25:36.580>uh, <00:25:36.720>uh, <00:25:36.860>the <00:25:37.000>complete <00:25:37.140>environment.

353
00:25:40.920 --> 00:25:44.060
<00:25:40.920>You <00:25:41.095>do <00:25:41.270>not, <00:25:41.445>uh, <00:25:41.620>to <00:25:41.795>invent <00:25:41.970>the <00:25:42.145>complete <00:25:42.320>environment,

354
00:25:44.200 --> 00:25:48.940
<00:25:44.200>you <00:25:44.300>need <00:25:44.400>to <00:25:44.500>focus <00:25:44.600>only <00:25:44.700>to <00:25:44.800>the <00:25:44.900>domain <00:25:45.000>of <00:25:45.100>the <00:25:45.200>problem, <00:25:45.300>okay? <00:25:45.400>You <00:25:45.500>can <00:25:45.600>use,

355
00:25:49.400 --> 00:25:52.940
<00:25:49.400>uh, <00:25:49.540>as <00:25:49.680>you, <00:25:49.820>as <00:25:49.960>you <00:25:50.100>mentioned, <00:25:50.240>you <00:25:50.380>can <00:25:50.520>use, <00:25:50.660>uh, <00:25:50.800>uh,

356
00:25:54.440 --> 00:25:58.020
<00:25:54.440>uh, <00:25:54.640>history, <00:25:54.840>you <00:25:55.040>can <00:25:55.240>use, <00:25:55.440>uh, <00:25:55.640>GitHub, <00:25:55.840>uh,

357
00:25:58.160 --> 00:26:01.980
<00:25:58.160>you <00:25:58.300>can <00:25:58.440>use <00:25:58.580>integrations <00:25:58.720>with, <00:25:58.860>with, <00:25:59.000>with, <00:25:59.140>with <00:25:59.280>any <00:25:59.420>other <00:25:59.560>things.

358
00:26:02.080 --> 00:26:03.500
<00:26:02.080>It <00:26:02.505>is <00:26:02.932>about <00:26:03.358>approach,

359
00:26:04.270 --> 00:26:08.940
<00:26:04.270>which <00:26:04.410>means <00:26:04.550>you <00:26:04.690>should <00:26:04.830>focus <00:26:04.970>to <00:26:05.110>the <00:26:05.250>problem <00:26:05.389>and <00:26:05.530>to <00:26:05.670>use

360
00:26:08.940 --> 00:26:12.940
<00:26:08.940>everything <00:26:09.140>else <00:26:09.340>as <00:26:09.540>usually, <00:26:09.740>which <00:26:09.940>is <00:26:10.140>actually <00:26:10.340>the,

361
00:26:13.080 --> 00:26:15.660
<00:26:13.080>the <00:26:13.280>package <00:26:13.480>of <00:26:13.679>the, <00:26:13.879>the <00:26:14.080>whole, <00:26:14.280>the, <00:26:14.480>the,

362
00:26:15.660 --> 00:26:19.540
<00:26:15.660>which <00:26:15.815>is <00:26:15.971>actually <00:26:16.126>packed <00:26:16.282>with <00:26:16.437>Xcode <00:26:16.593>and <00:26:16.748>development <00:26:16.904>environment. <00:26:17.060>Okay?

363
00:26:21.150 --> 00:26:21.983
<00:26:21.150>Thank <00:26:21.899>you.

364
00:26:24.180 --> 00:26:26.520
<00:26:24.180>All <00:26:24.320>right. <00:26:24.460>We <00:26:24.600>don't <00:26:24.740>have <00:26:24.880>any <00:26:25.020>other <00:26:25.160>questions <00:26:25.300>in <00:26:25.440>the <00:26:25.580>app.

365
00:26:26.700 --> 00:26:28.560
<00:26:26.700>Do <00:26:26.900>we <00:26:27.100>have <00:26:27.300>any <00:26:27.500>questions <00:26:27.700>from <00:26:27.900>the <00:26:28.100>audience?

366
00:26:31.660 --> 00:26:35.200
<00:26:31.660>Oh, <00:26:31.776>yes. <00:26:31.893>Drag <00:26:32.010>and <00:26:32.126>drag <00:26:32.243>and <00:26:32.360>drop, <00:26:32.476>uh, <00:26:32.593>functionality. <00:26:32.710>Well, <00:26:32.826>okay, <00:26:32.943>why <00:26:33.060>not?

367
00:26:35.780 --> 00:26:39.000
<00:26:35.780>The <00:26:35.955>question <00:26:36.129>is, <00:26:36.305>uh, <00:26:36.480>okay, <00:26:36.655>let <00:26:36.830>me <00:26:37.004>read. <00:26:37.180>Uh,

368
00:26:39.100 --> 00:26:42.720
<00:26:39.100>are <00:26:39.240>you <00:26:39.379>planning <00:26:39.520>to <00:26:39.659>support <00:26:39.800>some <00:26:39.939>drag <00:26:40.080>and <00:26:40.219>drop <00:26:40.360>functionality? <00:26:40.500>Uh,

369
00:26:42.820 --> 00:26:46.560
<00:26:42.820>so <00:26:42.960>you <00:26:43.100>can <00:26:43.240>preview <00:26:43.379>UI <00:26:43.520>before <00:26:43.659>generating? <00:26:43.800>Yes, <00:26:43.939>why <00:26:44.080>not? <00:26:44.220>Uh,

370
00:26:46.590 --> 00:26:51.200
<00:26:46.590>this <00:26:46.730>is <00:26:46.870>again <00:26:47.010>about <00:26:47.149>the <00:26:47.290>feature <00:26:47.429>which <00:26:47.570>we <00:26:47.709>already <00:26:47.850>have, <00:26:47.990>uh,

371
00:26:51.500 --> 00:26:53.440
<00:26:51.500>inside <00:26:51.733>of, <00:26:51.966>uh, <00:26:52.200>X <00:26:52.433>code <00:26:52.666>and, <00:26:52.900>uh,

372
00:26:53.540 --> 00:26:57.920
<00:26:53.540>inside <00:26:53.633>of <00:26:53.726>Swift <00:26:53.820>y <00:26:53.913>you <00:26:54.006>can <00:26:54.100>create <00:26:54.193>D <00:26:54.286>S <00:26:54.379>L <00:26:54.473>on <00:26:54.566>the <00:26:54.659>top <00:26:54.753>of <00:26:54.846>Swift <00:26:54.940>ui.

373
00:26:58.300 --> 00:27:03.240
<00:26:58.300>It <00:26:58.407>is <00:26:58.515>about, <00:26:58.623>uh, <00:26:58.730>higher <00:26:58.838>level <00:26:58.946>of, <00:26:59.053>of <00:26:59.161>abstraction. <00:26:59.269>So <00:26:59.376>now <00:26:59.484>you <00:26:59.592>can <00:26:59.700>focus,

374
00:27:03.620 --> 00:27:08.120
<00:27:03.620>uh, <00:27:03.760>to <00:27:03.899>use <00:27:04.040>everything <00:27:04.179>else, <00:27:04.320>which <00:27:04.459>is, <00:27:04.600>uh, <00:27:04.739>very <00:27:04.879>good, <00:27:05.020>clear,

375
00:27:08.460 --> 00:27:09.640
<00:27:08.460>and <00:27:08.991>use, <00:27:09.522>useful,

376
00:27:10.060 --> 00:27:14.440
<00:27:10.060>and <00:27:10.200>to <00:27:10.340>create <00:27:10.480>what <00:27:10.620>you <00:27:10.760>actually <00:27:10.899>specifically <00:27:11.040>need <00:27:11.179>for <00:27:11.320>specific <00:27:11.460>project.

377
00:27:15.170 --> 00:27:16.720
<00:27:15.170>Thank <00:27:15.518>you, <00:27:15.867>Milan. <00:27:16.216>Thank <00:27:16.565>you.