Slide 1

Slide 1 text

Love Swift 2018 @hirothings

Slide 2

Slide 2 text

10෼Ͱ࿩͢͜ͱ • Swiftͱ͸ʁ • Swiftͷັྗ • ࠷ۙͷSwift • ͜Ε͔ΒͷSwift • Hello Swift!

Slide 3

Slide 3 text

ࣗݾ঺հ • @hirothings (Objective-ͻΖC) • ݩϥʔϝϯ԰ళ௕ • ৭ʑ͋ͬͯݱࡏiOSσϕϩούʔ

Slide 4

Slide 4 text

Swiftͱͷग़ձ͍ • ΤϯδχΞͱͯ͠ΩϟϦΞΛελʔτͨ͠2015೥ ౙ..ɻ • ͦΕ·ͰJS, PHPΛগʑ͚ͩͬͨͲઓྗʹͳΒͣɺ Ҋ݅ͷSwiftࢼͯ͠ΈΔ୲౰ʹͳΓSwiftͱग़ձ͏͜ ͱʹ

Slide 5

Slide 5 text

Swiftͱ͸ • Apple͕2014೥ʹൃදͨ͠ϓϩάϥϛϯάݴޠ • ͷͪΦʔϓϯιʔεԽ https://github.com/apple/swift • ࣮ߦ଎౓͕଎͍, Ϟμϯ, ҆શ • ΞΠίϯ͸ΞϚπόϝ https://www.apple.com/jp/swift/ ΑΓ

Slide 6

Slide 6 text

Swiftͷັྗ • ݫ֨ͳܕγεςϜ • Ϟμϯͳจ๏ • null҆શͳݴޠ • ஋ܕத৺ͷݴޠ • GenericsΛ༻͍ͨॊೈ͞

Slide 7

Slide 7 text

ݫ֨ͳܕγεςϜ • ੩తܕ෇͚ݴޠ • ίϯύΠϥ͕ίʔυͷ҆શੑΛ୲อͯ͘͠ΕΔ • ҉໧తͳίʔυ͕গͳ͘ͳΔ • ܕʹରͯ͠ݫࣗ͘͠વͱλΠϓηʔϑͳॻ͖ํ Λ਎ʹ͚ͭΒΕΔ

Slide 8

Slide 8 text

Ϟμϯͳจ๏ • ܕਪ࿦ • Ϋϩʔδϟ • ߴ֊ؔ਺ (map, flatMap, filter, reduce..) • ϓϩτίϧ / ϓϩτίϧ֦ு • δΣωϦΫε • λϓϧ / ෳ਺ͷ໭Γ஋ • ϝϞϦͷࣗಈ؅ཧ(ARC)

Slide 9

Slide 9 text

null҆શͳݴޠ null҆શͱ͸: null͕ݪҼͰ࣮ߦ࣌ΤϥʔʹͳΒͳ͍࢓૊Έ OVMM҆શͰͳ͍ݴޠ͸ɺ΋͸΍ϨΨγʔݴޠͩIUUQTRJJUBDPNLPIFSJUFNT FCECBCΑΓ

Slide 10

Slide 10 text

null҆શͳݴޠ • nullνΣοΫΛίϯύΠϧ࣌ʹνΣοΫͰ͖Δ • मਖ਼͠ͳ͍ͱͦ΋ͦ΋Ϗϧυ͕௨Βͳ͍

Slide 11

Slide 11 text

஋ܕத৺ͷݴޠ ࢀরܕͷ໰୊఺ • ίʔυΛ௥Θͳ͍ͱɺͲ͜·ͰΠϯελϯε͕ ڞ༗͞Ε͍ͯΔͷ͔ෆ໌ +BWBTDSJQUͷ"SSBZ ࢀরܕ ͷྫ

Slide 12

Slide 12 text

ඪ४ϥΠϒϥϦͷ΄ͱΜͲ͕ ஋ܕ • String • Array • Dictionary • Bool • Int • Double • Float

Slide 13

Slide 13 text

ίϐʔ͝ͱʹίετ͕͔͔Δ ͷͰ͸ʁ

Slide 14

Slide 14 text

Copy on Write • ୅ೖ࣌఺Ͱ͸ίϐʔ͕ൃੜ͠ͳ͍ • ஋Λมߋ࣌ɺॳΊͯΠϯελϯε͕࡞ΒΕΔ࢓૊ Έ • ͜ͷ࢓૊Έͷ͓͔͛ͰArrayͳͲͰ΋஋ܕΛ࣮ݱ

Slide 15

Slide 15 text

GenericsΛ༻͍ͨॊೈ͞ • 2ͭͷҾ਺Λswap͢Δؔ਺ • IntܕͷҾ਺ͷΈαϙʔτ • ৼΔ෣͍͸ಉ͕ͩ͡ɺ͋ΒΏΔܕΛαϙʔτͨ͠ ͍..

Slide 16

Slide 16 text

• GenericsͰղܾ • ܕύϥϝʔλ • ؔ਺, δΣωϦοΫܕ(Class, Struct)ɺ͋ΒΏΔ৔ ໘Ͱ࢖͑Δ IUUQTEPDTTXJGUPSHTXJGUCPPL-BOHVBHF(VJEF(FOFSJDTIUNM

Slide 17

Slide 17 text

࠷ۙͷSwift • όʔδϣϯΞοϓ͕ΊΜͲ͏ʁ • Φʔϓϯιʔεͱͯ͠ͷػೳڧԽ

Slide 18

Slide 18 text

• Swift2 to 3ͷΑ͏ͳ஍ࠈ͸ͳ͍ • Swift3ͰObj-CʹҾͬுΒΕͨ࢓༷ΛόοαϦ੾ͬͯ҆ఆ͖ͯͨ͠ • Swift4.1 to 4.2ͷMigration͸਺࣌ؒͰऴΘͬͨɻ • XcodeͷMigrationػೳ + ͪΐͬͱͨ͠मਖ਼ͰDone • Ξοϓσʔτͷ஗͍ϥΠϒϥϦ͸Swift3ͰίϯύΠϧ όʔδϣϯΞοϓ͕ΊΜͲ͏ʁ

Slide 19

Slide 19 text

• จࣈྻͷڧԽ • StringͷCollection TypeԽ • ෳ਺ߦจࣈྻϦςϥϧͷαϙʔτ • Randomؔ਺ͷ࣮૷ • ࠓ·ͰCͷؔ਺arc4random_uniform Λ࢖͍͕ͬͯͨɺLinux؀ڥͰ αϙʔτ͞Εͯͳ͍ͨΊ໘౗ͩͬͨ • Dynamic Member Lookup Φʔϓϯιʔεͱͯ͠ͷػೳڧԽ

Slide 20

Slide 20 text

͜Ε͔ΒͷSwift • ABI҆ఆԽ • async / await

Slide 21

Slide 21 text

ABI҆ఆԽ • (ͣͬͱ༏ઌ՝୊͚ͩͲ)Swift5ͷϦϦʔεཁ݅ • ෳ਺ͷSwiftόʔδϣϯͷڞଘ • Ҡߦͷπϥϛ΋ݮΔ • ϥΠϒϥϦ੍࡞ऀ΋خ͍͠ • ݱࡏϞδϡʔϧ୯ҐͰSwift3 or 4Λࢦఆͯࠞ͠ࡏͤ͞ Δ͜ͱ͸Մೳ

Slide 22

Slide 22 text

async / await • ඇಉظॲཧΛಉظॲཧతʹॻ͚Δ • ࠓ·ͰRxSwiftͳͲؔ਺ܕϓϩάϥϛϯάͷΞϓϩʔν ΛಋೖͤͶ͹ͳΒͣ؆୯Ͱ͸ͳ͔ͬͨ • ࣮૷࣌ظ͸·ͩະ֬ఆ • KotlinͰ͸͢ͰʹίϧʔνϯಋೖࡁΈ • SwiftͷੜΈͷ਌ΫϦεϥτφʔ͕proposalग़ͨ͠

Slide 23

Slide 23 text

Before async / await

Slide 24

Slide 24 text

After (Proposalͷྫ) async / await

Slide 25

Slide 25 text

Hello! Swift

Slide 26

Slide 26 text

Swift Playgrounds • iPadͰήʔϜײ֮ͰSwiftΛ৮ΕΔެࣜΞϓϦ IUUQTXXXBQQMFDPNKQTXJGUQMBZHSPVOET

Slide 27

Slide 27 text

Playground • ϦΞϧλΠϜͰ࣮ߦ͞ΕΔΤσΟλ • ཁXcode

Slide 28

Slide 28 text

Server Side Swift • UIKitʹڵຯͳ͍ํʹΦεεϝ • Ϗϧυ଎͍͠ɺ؆୯ͳAPIͳΒϗεςΟϯά·Ͱ Ͱ͖ΔϑϨʔϜϫʔΫ΋(ݸਓΞϓϦͷAPI͸SSSͰ࣮૷ͯ͠·͢)

Slide 29

Slide 29 text

One more things..

Slide 30

Slide 30 text

࠷ۙͷXcodeʹ͍ͭͯ

Slide 31

Slide 31 text

ෳ਺γϛϡϨʔλΛ࢖ͬͨฒྻςετ

Slide 32

Slide 32 text

Diffʹ৭͕ͭ͘Α͏ʹͳͬͨ!!

Slide 33

Slide 33 text

Xcode10Ͱ͍ͭʹϚϧνΧʔιϧରԠ!!

Slide 34

Slide 34 text

Fin