Slide 1

Slide 1 text

Swiftͱ༇շͳ஥ؒͨͪ @akatsuki174

Slide 2

Slide 2 text

ࣗݾ঺հ • ਢ౻ຘ • גࣜձࣾZaimॴଐ • iOSΤϯδχΞ • Twitter, Qiita, SlideShare, GitHub, SpeakerDeck, ͸ͯͳϒϩά, note →akatsuki174

Slide 3

Slide 3 text

iOSDC2017,2018 ίΞελοϑ

Slide 4

Slide 4 text

એ఻

Slide 5

Slide 5 text

ɾSwiftͷ஀ੜͱมભ ɾSwiftͱObjective-Cͷؔ܎ ɾSwiftͱଞݴޠͷจ๏ൺֱ ɾ͓·͚ɿPlayground ࠓ೔ͷ಺༰

Slide 6

Slide 6 text

͜ͷࢿྉ͸ͳΜͱͳʔ͘SwiftΛ ཧղͯ͠΋Β͓͏ɺͱ͍͏͘Β͍ͷ ςϯγϣϯͰ࡞͍ͬͯΔͷͰઆ໌ෆ଍ɺ ᐆດͳ෦෼΋ଟʑ͋Δͱࢥ͍·͢ɻ ྃ͝ঝ͍ͩ͘͞ɻ

Slide 7

Slide 7 text

Swiftͷ஀ੜͱಛ௃

Slide 8

Slide 8 text

WWDC2014Ͱൃද

Slide 9

Slide 9 text

iOS, macOS, watchOS, tvOS Ͱ࢖͑Δ ɾଞϓϥοτϑΥʔϜͰ΋ ɾɾಉ͡ݴޠͰॻ͚Δ ɾɾಉ͡API͕࢖͑ͨΓ͢Δ

Slide 10

Slide 10 text

αʔόʔαΠυͰ΋࢖͑Δ ɾSwift͔͠৮ͬͨ͜ͱͳ͍ਓͰ΋ ɹαʔόαΠυʹ௅ઓ͠΍͍͢ ɾ·ͩීٴ్த ɾϝδϟʔͳϑϨʔϜϫʔΫ ɾɾPerfect ɾɾVapor ɾɾKitura

Slide 11

Slide 11 text

ܕਪ࿦͕࢖͑Δ

Slide 12

Slide 12 text

Φʔϓϯιʔε ೔ຊਓίϛολʔ΋ଘࡏ

Slide 13

Slide 13 text

όʔδϣϯΞοϓ͕ܹ͍͠ ɾ೥1ͰϝδϟʔόʔδϣϯΞοϓ ɾɾ߹ΘͤͯiOSɺXcode΋೥1Ͱ ɹɹϝδϟʔόʔδϣϯΞοϓ ɾഁյతͳมߋʹԿ౓ٽ͔͞Ε͔ͨ ɾ΋͏͍ͩͿམͪண͍͖ͯͨʢ͸ͣʣ

Slide 14

Slide 14 text

ʮϞμϯʯͳݴޠ ɾ࠷ۙͷݴޠʹ͋ΔศརػೳΛ౥ࡌ ɾɾΫϩʔδϟ ɾɾλϓϧ ɾɾδΣωϦΫε ɾɾΤΫεςϯγϣϯ ͳͲͳͲ

Slide 15

Slide 15 text

ʮ҆શʯͳݴޠ ɾݴޠ࢓༷ϨϕϧͰόά͕ൃੜ͠ʹ͍͘ ɹΑ͏ʹ͍ͯ͠Δ ɾɾOptional ɾɾϝϞϦ֬อɺղ์͕ࣗಈͰߦΘΕΔ ɾɾ੩తݴޠ ͳͲͳͲ

Slide 16

Slide 16 text

ʮ҆શʯͳݴޠ ɾݴޠ࢓༷ϨϕϧͰόά͕ൃੜ͠ʹ͍͘ ɹΑ͏ʹ͍ͯ͠Δ ɾɾOptional ɾɾϝϞϦ֬อɺղ์͕ࣗಈͰߦΘΕΔ ɾɾ੩తݴޠ ͳͲͳͲ

Slide 17

Slide 17 text

Optional ɾʮnull҆શʯͱ͔ͦ͜Β΁ΜͰΑ͘ ɹ࿩୊ʹͳΔ΍ͭ ɾnilʹͳΔՄೳੑ͕͋Δม਺͸ ɹOptionalܕʹ͢Δ ɾnilʹରͯ͠ૢ࡞Λ͠Α͏ͱͯ͠ ɹΫϥογϡɺΛ๷͙

Slide 18

Slide 18 text

Optional ʢίʔυೖΕΔʣ

Slide 19

Slide 19 text

Objective-Cͱͷؔ܎

Slide 20

Slide 20 text

Ұॹͷ͓͏ͪʹॅΊΔ ɾ1ͭͷϓϩδΣΫτʹࠞͥͯ࢖͏͜ͱ͕ ɹͰ͖Δ ɾͳͷͰ100% Obj-CϓϩδΣΫτͰ΋ɺ ɹঃʑʹSwiftʹॻ͖׵͑Δ͜ͱ͕Ͱ͖Δ ɾBridging HeaderΛ࢖ͬͯSwift͔Β ɹObjective-CɺObjectiveC͔ΒSwiftΛ ɹݺͼग़͢

Slide 21

Slide 21 text

Swift͔ΒObjective-CίʔυΛ ࢖͏ ͜Μͳ͔Μ͡ͷهड़ΛBridging Header ʹॻ͘ #import "XYZCustomCell.h" #import "XYZCustomView.h" #import "XYZCustomViewController.h"

Slide 22

Slide 22 text

Objective-C͔ΒSwiftίʔυΛ ࢖͏ ͜Μͳ͔Μ͡ͷهड़ΛBridging Header ʹॻ͘ #import "ProductModuleName-Swift.h"

Slide 23

Slide 23 text

ଞݴޠͱൺֱͯ͠ΈΑ͏

Slide 24

Slide 24 text

͓୊̍ ɾ1ʙ10·Ͱͷ਺஋Λग़ྗ͢Δ ɾ਺஋͸Intܕ

Slide 25

Slide 25 text

͓୊̍ɿSwiftͷճ౴ྫ (1...10).forEach { print($0) } Range

Slide 26

Slide 26 text

͓୊̍ɿଞݴޠͷճ౴ྫ Java Ruby Kotlin

Slide 27

Slide 27 text

͓୊̎ Enum[Orange, Apple, Lemon]ͷ஋Λ ೖΕͨม਺͕Appleͩͬͨ৔߹ɺ ʮ͋ͨΓʂʯͱग़ྗ͢Δ

Slide 28

Slide 28 text

͓୊̎ɿSwiftͷճ౴ྫ enum Fruit { case orange, apple, lemon } let fruit = Fruit.apple switch fruit { case .apple: print("͋ͨΓʂ") default: print("͸ͣΕʂ") } ઌ಄খจࣈ breakෆཁ جຊతʹ͸defaultඞਢ

Slide 29

Slide 29 text

͓୊̎ɿଞݴޠͷճ౴ྫ Java

Slide 30

Slide 30 text

͓·͚ɿPlayground

Slide 31

Slide 31 text

Playground ɾΠϯλϥΫςΟϒʹSwiftΛֶ΂Δ ɹπʔϧ

Slide 32

Slide 32 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ