Slide 1

Slide 1 text

"QQ5SBOTQPSU4FDVSJUZͱ ϩʔΧϧωοτϫʔΩϯά @iOS Developers Conference Japan 2017

Slide 2

Slide 2 text

/PSJUBLB,BNJZB Twitter/Github @nolili Scrum Master & Software Engineer Ubiregi Inc. http://noli.li

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

"HFOEB "QQ5SBOTQPSU4FDVSJUZ "54 ͷ͓͞Β͍ ϩʔΧϧωοτϫʔΩϯάͰͷ໰୊ͱରॲͷه࿥ ϕετϓϥΫςΟεͱམͱ݀͠

Slide 5

Slide 5 text

"QQ5SBOTQPSU4FDVSJUZ "54 ͷ͓͞Β͍ l"QQ5SBOTQPSU4FDVSJUZ͸σϑΥϧτͷ઀ଓཁ ݅Λنఆ͢ΔػೳͰ͢ɻ͜ΕʹΑΓɺ$'63-·ͨ͸ /463-4FTTJPOͷ֤"1*ͷ࢖༻࣌ʹɺ"QQ͕࠷ྑ ͷํ๏Ͱ҆શͳ઀ଓΛߦ͏͜ͱ͕࣮֬ʹͳΓ·͢ɻl IUUQTJNBHFTBQQMFDPNKQCVTJOFTTEPDT J04@4FDVSJUZ@(VJEFQEG

Slide 6

Slide 6 text

"QQ5SBOTQPSU4FDVSJUZ "54 ͷ͓͞Β͍ ηΩϡΞͳϓϩτίϧҎ֎͸࢖༻Ͱ͖ͳ͍ ੬ऑͳ҉߸ΞϧΰϦζϜ͸࢖༻Ͱ͖ͳ͍

Slide 7

Slide 7 text

"QQ5SBOTQPSU4FDVSJUZ "54 ͷ͓͞Β͍ ӨڹΛड͚Δ 63-4FTTJPO $PSF'PVOEBUJPO 8FC7JFXʜ ӨڹΛड͚ͳ͍ 4USFBN #4%TPDLFU

Slide 8

Slide 8 text

௚໘ͨ͠໰୊ ϩʔΧϧωοτϫʔΫ಺ʹཱ͍ͬͯΔσόΠε )551 αʔόʔʣͱ௨৴Ͱ͖ͳ͍ʂ σόΠε͸CPOKPVSͰ୳ࡧ͠ɺϗετ໊Ͱ63-Λ࡞੒ ͠ɺ)551Ͱ௨৴

Slide 9

Slide 9 text

໰୊ʹͳΔέʔε J1IPOFͱαʔόʢσόΠεʣ͕Ͱ઀ଓ͢Δ ϗετ໊ͰΞΫηε͢Δ *1ΞυϨεͳΒ0, )551 4FSWFS -"/

Slide 10

Slide 10 text

໰୊ʹͳΒͳ͍έʔε J1IPOFͱαʔόʢσόΠεʣͷؒʹ8FCαʔϏε͕ ཱ͍ͬͯΔ 4FSWFS FYBNQMFDPN )551 $MJFOU

Slide 11

Slide 11 text

J04Ͱͷ໰୊ ϩʔΧϧωοτϫʔΫΛྫ֎ʹ͢Δํ๏͕ͳ͔ͬͨ 'PSVNͰૌ͑Δ͕࣮૷ؒʹ߹Θͣ "54Λશͯແޮʹ͢Δ/4"MMPXT"SCJUSBSZ-PBET

Slide 12

Slide 12 text

࣌͸ա͗೥ͷ88%$ ݄ "54͕"QQ4UPSFͷཁ݅ͱͳΔ͜ͱ͕Ξφ΢ϯε λΠϜϦϛοτ͸೥຤ Ͳ͏͢Δ

Slide 13

Slide 13 text

Կ΋͠ͳ͍Ͱઆಘ͢ΔҊ "QQ3FWJFXʹૌ͑Δ ʮզʑͷΞϓϦ͸ϩʔΧϧͷαʔόͱ઀ଓ͢Δඞཁ͕ ͋Δʯ

Slide 14

Slide 14 text

)551ΫϥΠΞϯτΛ࡞ΔҊ ௿ϨΠϠʔ"1*͸"54ͷӨڹΛड͚ͳ͍ 4XJGUͰ)551ΫϥΠΞϯτΛ࡞ͬͨ

Slide 15

Slide 15 text

͢Ͱʹ͋Δ)551ΫϥΠΞϯτΛ࢖͏Ҋ ࣮੷ͷ͋ΔϥΠϒϥϦ͸ͳ͍͔ MJCDVSM CJUDPEFΛग़ྗͰ͖ΔΑ͏ʹϏϧυ͢Δ
 ʢকདྷͷඞਢԽʹඋ͑Δʣ

Slide 16

Slide 16 text

ຊ໋ͷొ৔ /4"MMPXT-PDBM/FUXPSLJOH

Slide 17

Slide 17 text

/4"MMPXT-PDBM/FUXPSLJOH 5%-͕MPDBMͷυϝΠϯΛྫ֎ͱͯ͠ڐՄ J04Ҏ্Ͱ༗ޮ J04ͱͷڞଘΛ͢Δ৔߹ /4"MMPXT"SCJUSBSZ-PBETͱͷซ༻͕ඞཁ MPDBMIPTU΋"54ͷྫ֎ͱͳΔ

Slide 18

Slide 18 text

-(5.ʂ

Slide 19

Slide 19 text

/4 /FU4FSWJDF /FU4FSWJDFͱ"QQ5SBOTQPSU4FDVSJUZ

Slide 20

Slide 20 text

/4 /FU4FSWJDF /FU4FSWJDF#SPXTFS /FU4FSWJDFSFTPMWF /FU4FSWJDFIPTU/BNF

Slide 21

Slide 21 text

class Browser: NSObject, NetServiceBrowserDelegate, NetServiceDelegate { var serviceBrowser = NetServiceBrowser() var services = [NetService]() func start() { serviceBrowser.delegate = self serviceBrowser. searchForServices(ofType: "_http._tcp.", inDomain: "local") } func netServiceBrowser(_ browser: NetServiceBrowser, didFind service: NetService, moreComing: Bool) { services.append(service) service.delegate = self service.resolve(withTimeout: 1.0) } func netServiceDidResolveAddress(_ sender: NetService) { print(sender.hostName!, sender.addresses!) } }

Slide 22

Slide 22 text

class Browser: NSObject, NetServiceBrowserDelegate, NetServiceDelegate { var serviceBrowser = NetServiceBrowser() var services = [NetService]() func start() { serviceBrowser.delegate = self serviceBrowser. searchForServices(ofType: "_http._tcp.", inDomain: "local") } func netServiceBrowser(_ browser: NetServiceBrowser, didFind service: NetService, moreComing: Bool) { services.append(service) service.delegate = self service.resolve(withTimeout: 1.0) } func netServiceDidResolveAddress(_ sender: NetService) { print(sender.hostName!, sender.addresses!) } } NZEFWJDFMPDBM

Slide 23

Slide 23 text

/4 /FU4FSWJDF IPTU/BNFͷ຤ඌʹSPPUΛ͕ࣔͭ͘͢ ͕͍͍ͭͯΔ63-ͱ͸௨৴ෆՄ ྫNZEFWJDFMPDBM

Slide 24

Slide 24 text

ϕετϓϥΫςΟε J04Λαϙʔτ͢Δ৔߹ NSAppTransportSecurity NSAllowsArbitraryLoads NSAllowsLocalNetworking

Slide 25

Slide 25 text

ϩʔΧϧωοτϫʔΩϯάΛΑΓ҆શʹ͢ΔͨΊʹ ূ໌ॻͷద੾ͳ؅ཧΛߦ͍ɺηΩϡΞͳ઀ଓΛݕ౼͢Δ ࣗݾॺ໊ূ໌ॻΛൃߦͰ͖Δػث΋ొ৔͍ͯ͠Δ

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

Ԇظ "54͕"QQ4UPSFͷཁ݅ͱͳΔ͜ͱ͕Ξφ΢ϯε Ԇظʢ࣍ͷλΠϜϦϛοτ͸ະఆʣ ౰໘͸/4"MMPXT"SCJUSBSZ-PBET͕ڐ͞ΕΔ

Slide 28

Slide 28 text

88%$ͷָ͠Έํ 8IBU`TOFXJOTFDVSJUZʢඞݟʣ 1SJWBDZBOE:PVS"QQT ϥϘͰࠔ͍ͬͯΔ͜ͱΛ૬ஊ͢Δ

Slide 29

Slide 29 text

3FMBUFE4FTTJPO

Slide 30

Slide 30 text

ࢀߟจݙͳͲ *OGPSNBUJPO1SPQFSUZ-JTU,FZ3FGFSFODF IUUQTEFWFMPQFSBQQMFDPNMJCSBSZDPOUFOUEPDVNFOUBUJPO(FOFSBM3FGFSFODF *OGP1MJTU,FZ3FGFSFODF"SUJDMFT$PDPB,FZTIUNM "QQ5SBOTQPSU4FDVSJUZBOEMPDBMOFUXPSLJOH IUUQTGPSVNTEFWFMPQFSBQQMFDPNUISFBE #POKPVS0WFS7JFX IUUQTEFWFMPQFSBQQMFDPNMJCSBSZDPOUFOUEPDVNFOUBUJPO$PDPB$PODFQUVBM /FU4FSWJDFT"SUJDMFTEPNBJOOBNFTIUNMBQQMF@SFGEPDVJE5148

Slide 31

Slide 31 text

"QQ5SBOTQPSU4FDVSJUZͱ ϩʔΧϧωοτϫʔΩϯά @iOS Developers Conference Japan 2017