Slide 1

Slide 1 text

SwiftΛ࣮Ҋ݅Ͱ࢖ͬͯ ΞϓϦΛϦϦʔεͨ͠࿩ 2016.6.27 ू·ΕSwift޷͖ʂSwiftѪ޷ձ vol8 Kato Jun@Classmethod, Inc

Slide 2

Slide 2 text

About Me • ໊લɿՃ౻ ५ • ձࣾɿΫϥεϝιου ϞόΠϧΞϓϦαʔϏε෦ॴଐ • ͓࢓ࣄɿiOSΞϓϦ։ൃ • ϒϩάɿhttp://dev.classmethod.jp/author/kato-jun/

Slide 3

Slide 3 text

Agenda • SwiftͰΞϓϦΛ࡞Δ͜ͱʹͳͬͨܦҢ • ࢖ͬͨπʔϧ • SwiftͰϋϚͬͨͱ͜Ζ • Swift 3ରԠ • ·ͱΊ

Slide 4

Slide 4 text

SwiftͰΞϓϦΛ࡞Δ ͜ͱʹͳͬͨܦҢ

Slide 5

Slide 5 text

࣌͸5ϲ݄΄Ͳલ…

Slide 6

Slide 6 text

ͱ͋ΔडୗҊ݅Ͱ iOSΞϓϦΛ։ൃ͢Δ͜ͱʹ…

Slide 7

Slide 7 text

ݴޠͷબ୒

Slide 8

Slide 8 text

Obj-C or Swift ?

Slide 9

Slide 9 text

Obj-C or Swift ? ϝϦοτ σϝϦοτ 0CK$ ɾʢݸਓతͳʣΞϓϦͷϦϦʔεܦݧ͋Γ ɾࣾ಺ʹϊ΢ϋ΢ɺ࣮੷͕๛෋ ɾϒϥέοτʢ<>ʣॻ͔ͳ͍ͱ͍͚ͳ͍ ɾIͱN ɾ0QUJPOBMܕͱ͔΋ͪΖΜͳ͍ 4XJGU ɾ͜Ε͔Β࡞ΔͳΒײ ɾ؆ܿͳهड़ ɾ0QUJPOBMܕ͕࢖͑Δ ɾʢݸਓతͳʣΞϓϦͷϦϦʔεܦݧແ͠ ɾʢ0CK$ʹൺ΂ͯʣࣾ಺ʹϊ΢ϋ΢ɺ࣮ ੷͕গͳ͍

Slide 10

Slide 10 text

ͳ͔ͳ͔λΠτͳεέδϡʔϧ…

Slide 11

Slide 11 text

ϓϩϚω ʮݴޠͷ໰୊ͰϋϚΓͨ͘ ͳ͍ͷͰObj-C͔ͳʯ

Slide 12

Slide 12 text

ࢲ SwiftͰେৎ෉Ͱ͠ΐ(´∀ʆ;)

Slide 13

Slide 13 text

ͦͷޙ৭ʑͳਓ͔Β ॿݴΛड͚…

Slide 14

Slide 14 text

Swift Ͱ։ൃ͢Δ͜ͱʹʂ

Slide 15

Slide 15 text

࢖ͬͨπʔϧ

Slide 16

Slide 16 text

Tailor

Slide 17

Slide 17 text

Tailor • Swift༻ͷ੩తίʔυղੳπʔϧ • ҎԼͷελΠϧΨΠυϥΠϯʹଇ͍ͬͯΔ͔ΛνΣοΫ ͯ͠ڭ͑ͯ͘ΕΔ • The Swift Programming LanguageʢAppleʣ • GitHub • Ray Wenderlich • Coursera

Slide 18

Slide 18 text

Tailor • ࠷৽όʔδϣϯ͸0.10.0ʢ6/27ݱࡏʣ • Swift 2.2ʹରԠ • ΫϩεϓϥοτϑΥʔϜʢMac͸΋ͪΖΜLinux΍ WindowsͰ΋࢖͑Δʣ • MITϥΠηϯε • Xcodeʹ૊ΈࠐΜͰϏϧυ࣌ʹ࣮ߦ͢Δ͜ͱ͕Մೳ

Slide 19

Slide 19 text

TailorΛXcodeʹ૊ΈࠐΉ • tailor --xcode

Slide 20

Slide 20 text

Tailor͕νΣοΫͯ͘͠ΕΔ͜ͱ • ྫ͑͹ɺΫϥε໊ͷنଇ

Slide 21

Slide 21 text

Tailor͕νΣοΫͯ͘͠ΕΔ͜ͱ • ྫ͑͹ɺηϛίϩϯ

Slide 22

Slide 22 text

TailorΛಋೖͯ͠ྑ͔ͬͨ఺ • ਓྗͰνΣοΫ͠Α͏ͱ͢Δͱ࿙Ε͕ൃੜͦ͠͏ͳ෦ ෼ΛػցతʹνΣοΫͰ͖ͨ • ίʔυϨϏϡʔ࣌ʹϏδωεϩδοΫʹूதͰ͖ͨ • ಛʹηϛίϩϯ͸࠷ॳͷ͏ͪObjective-CͷบͰແҙࣝ Ͱ͚ͭͯ͠·͏͜ͱ͕ଟ͔͕ͬͨɺϏϧυ࣌ʹؾ෇͍ ͯमਖ਼͢Δ͜ͱ͕Ͱ͖ͨ

Slide 23

Slide 23 text

TailorΛಋೖͯ͠Θ͔ͬͨ͜ͱ • ίʔυྔ͕૿͑ͯ͘ΔͱɺղੳʢϏϧυʣʹ͕͔͔࣌ؒ ΔΑ͏ʹͳͬͨ • ϓϩδΣΫτ࡞੒௚ޙ͸1ʙ2ඵ͕ͩͬͨɺ࠷ऴతʹ਺ ेඵ͔͔ΔΑ͏ʹͳͬͨ • Ϗϧυͷ౓ʹ࣮ߦ͢Δӡ༻͔ΒϦϦʔεͷ௚લʹ·ͱΊ ͯνΣοΫ͢Δӡ༻ʹมߋ

Slide 24

Slide 24 text

SwiftͰϋϚͬͨͱ͜Ζ

Slide 25

Slide 25 text

ZXingObjC • Objective-CͰ࡞ΒΕͨόʔίʔυϥΠϒϥϦ • https://github.com/TheLevelUp/ZXingObjC • όʔίʔυͷੜ੒ & όʔίʔυͷಡΈऔΓͰ࢖༻

Slide 26

Slide 26 text

Կ͕໰୊͔ͩͬͨ • όʔίʔυੜ੒࣌ʹNSException͕ൃੜͨ͠ • ྫ͑͹ɺҎԼͷέʔεͰൃੜ • όʔίʔυܗࣜ͸EAN-13͕ͩɺ࣮ࡍͷܻ਺͕13Ͱ͸ ͳ͔ͬͨ࣌ • SwiftͰ͸NSExceptionΛΩϟονͰ͖ͳ͍ͷͰΫϥο γϡʢhttps://forums.developer.apple.com/thread/ 7582ʣ • Ϋϥογϡͤ͞ͳ͍Α͏ʹ͢Δඞཁ͕͋ͬͨ

Slide 27

Slide 27 text

Ͳ͏ରॲ͔ͨ͠ • Obj-CͰNSExceptionΛNSErrorʹม׵ /4&YDFQUJPO͕ൃੜˠ/4&SSPSΛੜ੒

Slide 28

Slide 28 text

Ͳ͏ରॲ͔ͨ͠ • ݁ՌɺSwiftͰ΋NSErrorͱͯ͠ΩϟονͰ͖ΔΑ͏ʹ /4&SSPSͱͯ͠ΩϟονͰ͖ΔΫϥογϡ͠ͳ͍

Slide 29

Slide 29 text

ϋϚͬͨͱ͜Ζ͸͋ͬͨ΋ͷͷ ແࣄʹ༧ఆ௨ΓϦϦʔεͰ͖·ͨ͠ʂ

Slide 30

Slide 30 text

Swift 3ରԠ

Slide 31

Slide 31 text

։ൃத͔ΒSwift 3Λҙࣝ • Xcode 7.3Ͱdeprecatedͳॻ͖ํΛ͍ͯ͠Δͱࢦఠͯ͘͠Εͨ • কདྷ࢖͑ͳ͘ͳΔදݱ͸։ൃத͔Β࢖Θͳ͍Α͏ʹͨ͠  JTEFQSFDBUFEJUXJMMCF SFNPWFEJO4XJGU $TUZMFGPSTUBUFNFOUJT EFQSFDBUFEBOEXJMMCFSFNPWFE JOBGVUVSFWFSTJPOPG4XJGU

Slide 32

Slide 32 text

WWDC 2016 • What's New in Swift • Swiftͷมߋ఺ • ಺༰͸swift-evolutionͷproposal • Xcode 8 supports both Swift 2.3 and Swift 3 • ϚΠάϨʔγϣϯ࣌ʹ2.3ͱ3ͲͪΒΛ࢖༻͢Δ͔બ΂ Δ

Slide 33

Slide 33 text

Swift 3ରԠͰӨڹ͕େ͖ͦ͏ͳͱ͜Ζ • SE-0046ɿؔ਺ͷୈҰҾ਺ʹ΋ݺͼग़࣌͠ʹϥϕϧ͕ඞ ཁʹͳͬͨ • SE-0069ɿ৽͍͠struct͕௥Ճ͞Εͨ • ex.) NSDate→Date • ex.) timeIntervalSinceDate→timeIntervalSince • SE-0006ɿenumͷcase͕lower camel caseʹ

Slide 34

Slide 34 text

Xcode 8 betaͷϚΠάϨʔγϣϯΛࢼͯ͠Έͨ • Swift 2.2Ͱॻ͍ͨ؆୯ͳϓϩάϥϜ • Xcode 8 betaͰ͸ϏϧυΤϥʔ func func1(param1: Int, param2: Int) { } func func2() { func1(100, param2: 200) let date = NSDate() let interval = date.timeIntervalSinceDate(NSDate()) print(interval) } enum Fruit { case Apple case Banana case Orange } ͜ͷϓϩάϥϜʹ&EJU$POWFSU5P$VSSFOU4XJGU4ZOUBYʜΛ ࣮ߦ͢Δͱʜ 

Slide 35

Slide 35 text

Use Swift 2.3Λબ୒ͨ͠৔߹ • ιʔείʔυͷมߋແ͠ͰϏϧυ͕௨ΔΑ͏ʹͳͬͨ

Slide 36

Slide 36 text

Use Swift 3Λબ୒ͨ͠৔߹ • ؔ਺ఆٛͷୈҰҾ਺ϥϕϧʹʮ_ʯ͕௥Ճ͞Εͨʢݺͼग़͠ଆͷมߋ͸ͳ͠ʣ • ܕͷஔ׵ʢNSDate→Dateʣ • ؔ਺ͷஔ׵ʢtimeIntervalSinceDate→timeIntervalSinceʣ func func1(_ param1: Int, param2: Int) { } func func2() { func1(100, param2: 200) let date = Date() let interval = date.timeIntervalSince(Date()) print(interval) } enum Fruit { case apple case banana case orange } @͕௥Ճ͞Εͨ ݺͼग़͠ଆͷมߋ͸ͳ͠ ؔ਺ͷஔ׵ ܕͷஔ׵ DBTF͕MPXFSDBNFMDBTFʹ

Slide 37

Slide 37 text

·ͱΊ

Slide 38

Slide 38 text

·ͱΊ • SwiftࣗମʹϋϚͬͯࠔͬͨ͜ͱ͸ҙ֎ͱগͳ͔ͬͨ • Ή͠ΖOS΍ϑϨʔϜϫʔΫͷ஌ࣝͷํ͕େࣄ • ΋͏Obj-Cʹ͸໭Εͳ͍… Swift͸ॻ͖΍͍͢ʂ • TailorʹݶΒͣػցతʹνΣοΫͰ͖Δ͜ͱ͸πʔϧʹ೚ͤΑ͏ • Obj-C੡ͷOSSΛSwiftͰ࢖͏ͱ͖͸NSExceptionʹؾΛ͚ͭΑ͏ • Swift 3ରԠ͸XcodeͷϚΠάϨʔλΛ࢖͑͹ػցతʹม׵ͯ͘͠ ΕΔ • ͋͘·ͰػցతͳͷͰϓϩδΣΫτಠࣗͷϧʔϧͳͲʹରԠͤ͞ Δ৔߹͸खಈͰͷରԠ͕ඞཁ

Slide 39

Slide 39 text

࠷ޙʹ

Slide 40

Slide 40 text

Ϋϥεϝιου΋Swiftͷษڧձ΍ͬͯ·͢ʂʂ • AKIBA.swift • ݄1ϖʔεͰ։࠵ • @ΫϥεϝιουؠຊொΦϑΟε