Slide 1

Slide 1 text

WWDCʹֶͿϥΠϒίʔ σΟϯά (+CoreNFC) WWDC - Developer's Living 2017/06/30 1

Slide 2

Slide 2 text

Profile Kazuya Ueoka Timers inc.ͷiOSΤϯδχΞ Twitter: @fromkk Github: fromkk Qiita: fromkk 2

Slide 3

Slide 3 text

օ͞Μ΋͏WWDCͰൃද ͞Εͨ৽ػೳ͸νΣοΫ ͯ͠·͢ΑͶʁ 3

Slide 4

Slide 4 text

طʹ೔ຊޠͰͷࢿྉ΋͔ ͳΓଟ͍ͷͰԿൃද͢Ε ͹ྑ͍Μͩ໰୊ 4

Slide 5

Slide 5 text

๻΋͍͔ͭ͘ൃද͖ͯ͠·ͨ͠ 4 Swift 4͔Β࣮૷͞ΕΔCodable at AKIBA.swift 4 # Type ʹDrag and Dropͷ࣮૷Λͯ͠Έͨ at WWDC After Party @Ebisu 4 Depth APIͰ؆қΫϩϚΩʔ߹੒ at GEEK GARAGE iOS vol3 5

Slide 6

Slide 6 text

͕ 6

Slide 7

Slide 7 text

ϥΠϒίʔσΟϯάͬͯ ϋʔυϧߴ͍ 7

Slide 8

Slide 8 text

۩ମతʹ͸ 4 ొஃͬͯۓு͢Δ 4 ϛε͸͖ͭ΋ͷ 4 ൃද͢Δ͔Βʹ͸͏·͘΍Γ͍ͨ 8

Slide 9

Slide 9 text

ϥΠϒίʔσΟϯά͢Δ࣌ͬͯ 4 Ұ୴खݩͷXcodeͰ׬੒ͤ͞Δ 4 ࿩͍ͨ͠಺༰ʹԊͬͯଞͷςΩετΤσΟλʹΧοτˍ ϖʔετ 4 ొஃ͢Δ࣌ʹॱ൪ʹίϐϖ Έ͍ͨͳΠϝʔδʢ໪࿦θϩ͔Βॻ͍͍ͯΔํ΍ଞͷํ๏ͷํ ΋ͨ͘͞Μ͍Βͬ͠Ό͍·͢ʣ 9

Slide 10

Slide 10 text

WWDC͸ϥΠϒίʔσΟϯάͰͷൃදͷๅݿ Ή͠Ζ͜ΜͳʹϥΠϒίʔσΟϯάͷൃද͕ଟ͍ΧϯϑΝϨϯ ε΋௝͍͠ؾ͕͢Δ 10

Slide 11

Slide 11 text

ͦͷதͰ΋ 227 Data Delivery with Drag and Drop ͷTanu Singhal͞ΜͷϥΠϒίʔσΟϯάͷํ๏ʹײ໏Λड ͚ͨͷͰ঺հ͠·͢ 11

Slide 12

Slide 12 text

ख๏͸؆୯ 12

Slide 13

Slide 13 text

ίϝϯτʹ൪߸ΛৼͬͯίʔυεχϖοτͷγϣʔτΧοτʹ΋ಉ͡൪߸Λৼ͓͚ͬͯͩ͘ 13

Slide 14

Slide 14 text

Xcodeͷίʔυεχϖοτͷొ࿥ํ ๏ 4 ͍͔ͭ͋͘Δ͕ઌʹίʔυΛॻ͍ͯίʔυεχϖοτͷ৔ ॴʹυϥοά&υϩοϓ͕؆୯ 4 Completion shortcut Λઃఆ͢Ε͹ݺͼग़͠΋؆୯ 14

Slide 15

Slide 15 text

͓·͚ 15

Slide 16

Slide 16 text

CoreNFC 4 WWDCظؒதεέδϡʔϧʹ͸ະܝࡌ͕ͩηογϣϯಈը ͷΈެ։ 4 iOS 11͔Βղ์͞ΕͨಡΈऔΓͷػೳͷΈͷframework 4 ରԠܗࣜ: NDEF 4 λά͸1ʙ5ʹରԠ 4 ݱ࣌఺ͰiPhone 7ͱ7 PlusͷΈରԠ 16

Slide 17

Slide 17 text

ར༻ํ๏ 4 iTunes ConnectͰAppIDͷNFC Tag ReadingΛONʹ͢ Δ 17

Slide 18

Slide 18 text

ར༻ํ๏ 4 EntitlementsʹҎԼΛ௥Ճ com.apple.developer.nfc.readersession.formats NDEF 18

Slide 19

Slide 19 text

ར༻ํ๏ 4 Info.plistʹҎԼΛ௥Ճͯ͠ϢʔβʔʹڐՄΛಘΔ NFCReaderUsageDescription Scan NFC tags message! 19

Slide 20

Slide 20 text

ར༻ํ๏ import CoreNFC let session = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: true) session.begin() 20

Slide 21

Slide 21 text

ར༻ํ๏ extension NFCViewController: NFCNDEFReaderSessionDelegate { func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) { messages.forEach { (message) in message.records.forEach { let payload: String = String(data: $0.payload, encoding: .utf8) ?? "" print("payload", payload) } } } func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) { print(error) } } 21

Slide 22

Slide 22 text

Recap 4 ϥΠϒίʔσΟϯάʹ͸XcodeͷίʔυεχϖοτΛ׆༻ ! 4 ίϝϯτʹॱ൪Λهࡌͯ͠ίʔυεχϖοτͷγϣʔτ Χοτͱ߹ΘͤΔͱϛε͠ʹ͍͘" 4 ίϝϯτΛಡΉ͚ͩͰ؆୯ͳઆ໌͕ग़དྷΔ# 4 CoreNFC͸λάΛಡΉ͚ͩͳΒ؆୯$ 22

Slide 23

Slide 23 text

͜ΕͰϥΠϒίʔσΟϯά΋ා͘ͳ͍! 23

Slide 24

Slide 24 text

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