みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift

>100 Views

April 14, 18

スライド概要

福岡で 2018/04/14 に開催した『みんなで Swift 復習会GO! in 福岡』で使ったオープニングと本編の資料です。

※ Docswell での公開に移行する直前の Slideshare での閲覧数は 412 でした。

profile-image

正統派趣味人プログラマー。プログラミングとは幼馴染です。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

ΈΜͳͰ 4XJGU ෮शձ (0JO෱Ԭ rUI⒌ #minna_de_swift ΧδϡΞϧ 4XJGU ϓϩάϥϛϯά

2.

‫۽‬୩༑޺ 5PNPIJSP,VNBHBJ ⾣ 4XJGU‫͕ޠݴ‬େ޷͖Ͱ͢ʂ ⾣ ΈΜͳͰָ͠Ήษ‫ڧ‬ձ͕େ޷͖Ͱ͢ʂ ⾣ ϓϩάϥϛϯάͷָ͠͞Λ఻͍͖͍͑ͯͨɻ w ωοτϥδΦ w ษ‫ڧ‬ձͷ஍ํ։࠵ w ಉਓࢽଈചձ

3.

NPPLNPPLSBEJP NPPL ‫۽‬୩ͱ៸໘͕ϓϩάϥϛϯάίʔυͷ಺͔Β ௌ͑ͯ͘͜Δ੠ʹࣖΛ܏ָ͚ͯ͠ΉϥδΦ ຖ݄ୈ̎ɾୈ̐ ݄༵೔ ʹ഑৴ IUUQLFQDNPPLNPPLSBEJPDPN ⾣ ୈ࿩  ύϥμΠϜ ⾣ ୈ࿩  σʔλϕʔε ⾣ ୈ࿩  Τϥʔͱ‫ڐࠂܯ‬༰ͷ‫ڥ‬ ⾣ ୈ࿩  ӈล஋ͱࠨล஋ ⾣ ୈ࿩  ษ‫ڧ‬ձΛว͘৔ॴʹɻཱྀ͢Δओ࠵ऀɺ‫۽‬୩͞Μͷඳ͘ษ‫ڧ‬ձͷະདྷ ⾣ ୈ࿩  ॱ൪୳ఁ ⾣ ୈ࿩  0CKFDUJWF$#SJEHF ⾣ ୈ࿩  Ϟμϯͳ‫ͳͯͬޠݴ‬ΜͩΖ͏

4.

‫̍گۙ‬

5.

ٕज़‫ܥ‬ಉਓࢽ ࣗඅग़൛ͱಉਓࢽଈചձ

6.

ٕज़ॻయ̐நબམͪ ΞΩόɾεΫΤΞ ΋͘΋ࣥ͘චձͷ‫࠵ڞ‬ͷ ື઒͞Μʹरͬͯ΋Βͬͯ ͓ख఻͍ࢀՃܾఆ ㊗ ʲ͍ʳ

7.

ίϛοΫϚʔέοτநબ଴ͪʢ౰མ௨஌ʣ  ʙ !౦‫ژ‬ϏοάαΠτ

8.

ίϛοΫϚʔέοτग़ల ౦‫ژ‬ϏοάαΠτ

9.

ٕज़ॻయ̎ग़ల ΞΩόɾεΫΤΞ

10.

௒ٕज़ॻయग़ల ઍ༿ɾນுϝοη

11.

ίϛοΫϚʔέοτग़ల ౦‫ژ‬ϏοάαΠτ

12.

J04%$+"1"/ϒʔεग़ల  ʙ !ૣҴాେֶ

13.

ٕज़ॻయ̏ग़ల ΞΩόɾεΫΤΞ

14.

ίϛοΫϚʔέοτग़ల ౦‫ژ‬ϏοάαΠτ

15.

΋͘΋ࣥ͘චձ ʙٕज़‫ܥ‬ಉਓࢽʗ঎‫ࢽۀ‬ɾൃදࢿྉɾϒϩάʙ IUUQTUFDICPPLNFFUVQDPOOQBTTDPN ⾣ ˑग़ு൛3&7!౦‫ژ‬࿡ຊ໦ ⾣ ˑग़ு൛3&7!ਆాਆอொ

16.

‫̎گۙ‬

17.

J04$POJO-POEPO d

18.

-POEPO

19.

-POEPOͷ֗ฒΈ

20.

#VDLJOHIBN1BMBDF

21.

4U+BNFT`T1BSL

22.

,JOH`T$SPTT4UBUJPO

23.

:PSL :PSL -POEPO,JOH`T$SPTT4UBUJPO͔Β ྻंͰ࣌ؒ΄Ͳ๺ʹ͋Δ֗

24.

:PSLJO/PSUI&OHMBOE

25.

:PSLͷ֗ฒΈ

26.

:PSLͷ֗ฒΈ

27.

:PSL.JOTUFSJO:PSL

28.

/BUJPOBM3BJMXBZ.VTFVNJO:PSL

29.

4USFFU-JWFJO:PSL

30.

ΈΜͳͰ 4XJGU ෮शձ(0

31.

ΈΜͳͰ4XJGU෮शձ ෮शձ(0ͱ͸ ⾣ ΈΜͳͰ4XJGU෮शձ w ͔ͤͬ͘ͳΒΈΜͳͱҰॹʹ෮श͍ͨ͠ ͦ͏ࢥͬͯ౦‫ژ‬ɾौ୩Ͱ࢝Ίͨษ‫ڧ‬ձ ⾣ ΈΜͳͰ4XJGU෮शձ(0͸ɺͦͷग़ு൛ w ौ୩ͷ֎ʹ΋ษ‫ڧ‬ձͷָ͠͞Λ޿Ί͍ͨ w ༑ਓͷ఻खΛཔΓʹ೔ຊ֤஍Ͱ։࠵த

32.

ΈΜͳͰ4XJGU෮शձ(0 ͜Ε·Ͱͷ։࠵ ʜΈΜͳͰ4XJGU෮शձ(0JOࡳຈr TU⒌ ʜΈΜͳͰ4XJGU෮शձ(0JOԭೄr OE⒌ 4XJGU%BZ  ʜΈΜͳͰ4XJGU෮शձ(0JOઋ୆r SE⒌ ʜΈΜͳͰ4XJGU෮शձ(0JO෱Ԭr UI⒌ ʜΈΜͳͰ4XJGU෮शձ(0JO෱Ԭr UI⒌ ʜΈΜͳͰ4XJGU෮शձ(0JO‫౎ژ‬r UI⒌ ʜΈΜͳͰ4XJGU෮शձ(0JO௕໺r UI⒌ 4XJGU%BZ 

33.

ΈΜͳͰ4XJGU෮शձ(0 ͜Ε͔Βͷ։࠵ʁ ʜΈΜͳͰ4XJGU෮शձ(0JO‫౎ژ‬r UI⒌ 4XJGU%BZ  ʜΈΜͳͰ4XJGU෮शձ(0JO‫ؠ‬खr UI⒌ 4XJGU%BZ  ͏ͪͷ஍‫Ͱݩ‬΋։͖͍ͨʂΈ͍ͨͳ੠ɺେ‫͢Ͱܴ׻‬ ౔஍‫͍ͳ͕צ‬ͷͰɺ։࠵৔ॴͱ͔ॿ͚ͯ΋Β͑Δͱ‫͍͠خ‬

34.

 ΈΜͳͰ4XJGU෮शձ (0JO෱Ԭ rUI⒌ ཱ໾ऀాத޹໌͞Μ

35.

ΈΜͳͰ4XJGU෮शձ ஊস‫ࣜܗ‬ ⾣ ΈΜͳͱ4XJGUΛ෮श͍ͨ͠ ⾣ ͔ͤͬ͘ͳͷͰஊস͠ͳ͕Β ⾣ ͍ͭͰ΋࿩͔͚ͯ͘͠Εͯ0,

36.

ΈΜͳͰ4XJGU෮शձ ৺͕͚ ⾣ ΈΜͳ஌ͬͯΔɺ͸ࢥ͍ࠐΈ ⾣ ࣗ৴΍֬ূ͸ɺແͯ͘େৎ෉ ⾣ ͳΜͱͳͦ͘͏ࢥ͏ɺେ‫ܴ׻‬

37.

ΈΜͳͰ4XJGU෮शձ(0 "4XJGU5PVS  ΈΜͳͰ4XJGU෮शձ ‫۽‬୩༑޺ IUUQF[OFUKQ 4XJGU

38.

੍‫ߏޚ‬จ

39.

੍‫ߏޚ‬จ XIJMF ⾣ ৚͕݅ਅͷؒɺ‫܁‬Γฦ͢ ⾣ CSFBLͰ΋ϧʔϓΛൈ͚ΒΕΔ while condition { }

40.

੍‫ߏޚ‬จ SFQFBUʜXIJMF ⾣ ৚͕݅ਅͷؒɺ‫܁‬Γฦ͢ ⾣ ॲཧΛऴ͑ͨ‫ʹޙ‬৚݅൑ఆ͢Δ repeat { } while condition

41.

੍‫ߏޚ‬จ ෼‫Ͱྩ໋ذ‬ͷύλʔϯϚονϯά ⾣ ஋͕ύλʔϯʹҰக͢Δ͔Λ൑ఆ͢Δ ⾣ DBTFΩʔϫʔυʹଓ͚ͯύλʔϯΛࢦఆ͢Δ // switch での分岐はパターンマッチを使っている switch x { case 1 ..< 10: } // if 文でもパターンマッチが使える if case 1 ..< 10 = x { }

42.

੍‫ߏޚ‬จ ‫܁‬ฦ໋ྩͰͷύλʔϯϚονϯά ⾣ Ϛον͢Δ΋ͷ͚ͩΛ‫܁‬Γฦ͠ॲཧ͢Δ ⾣ Ұൠʹɺม਺୅ೖΛ൐͏ύλʔϯϚονΛ࢖͏ // nil を除く全ての値を順番に処理する for case let x? in optionalValues { } // 値が取得できなくなるまで、繰り返す。 while case let x? = iterator.next() { }

43.

੍‫ߏޚ‬จ ෼‫Ͱྩ໋ذ‬ͷ৚݅ࢦఆ ⾣ JG͸ΧϯϚ۠੾ΓͰ৚݅Λ௥ՃͰ͖Δ ⾣ TXJUDI͸XIFSFͰ৚݅Λ௥ՃͰ͖Δ // if で、オプショナルから値を取って判定 if let number = Int(string), number > 10 { } // switch で、オプショナルから値を取って判定 switch Int(string) { case let number? where number > 10: }

44.

੍‫ߏޚ‬จ ‫܁‬ฦ໋ྩͰͷ৚݅ࢦఆ ⾣ GPS͸ɺશͯͷཁૉͷ͏ͪ৚݅Λຬͨ͢΋ͷΛॲཧ͢Δ ⾣ XIJMF͸ɺશͯͷ৚͕݅ຬͨ͞Ε͍ͯΔؒ͸ॲཧ͢Δ // 要素を順番に処理する。ただし条件を満たすものだけ。 for value in values where value < 10 { } // 両方の条件が満たされる間、処理する。 while let value = iterator.next(), value < 10 { }

45.

੍‫ߏޚ‬จ GPSʜJOͰࣙॻΛॲཧ͢Δ ⾣ ࣙॻͷཁૉ͸ ,FZ 7BMVF ͷλϓϧͰऔಘͰ͖Δ ⾣ GPSจͰλϓϧͷ֤ཁૉΛผม਺ʹऔಘͰ͖Δ // item は (Key, Value) 型のタプルで取得 for item in dictionary { } // Key と Value を、それぞれ key と value に分けて取得 for (key, value) in dictionary { }

46.

&OKPZ4XJGU 5IBOLZPV ΈΜͳͰ4XJGU෮शձ(0  "4XJGU5PVS  $POUSPM'MPX 'VODUJPOTBOE$MPTVSFT ‫۽‬୩༑޺ IUUQF[OFUKQ ⾣ ੍‫ߏޚ‬จ ⾣ 0QUJPOBM#JOEJOHT ⾣ /JM݁߹ԋࢉࢠ ⾣ ύλʔϯϚον