2020/9/21_iOSDC Japan 2020での、石井&元の講演資料になります
ੴҪɹ५ݩɹږपؒ͜͜ͷλϯϫʔΫJ04ΞϓϦͷΤϯδχΞͷνϟϨϯδʙݱͰͷ੍ͱͷઓ͍ʙ
View Slide
հݩɹږपΞϓϦ։ൃΧϨίϨ࠷ۙ4XJGU6*ͱ+FUQBDL$PNQPTF͕େ͖ͱΓ͋͑ͣʹͳΒͳ͍Α͏ʹؤுͬͯ·͢ੴҪɹ५৽ଔೖࣾɺJ04ྺ࠷ۙϨΨγʔγεςϜͷצॴ͕͔ͭΊ͖ͯͨʢͣʣೖࣾ࣌ͱൺͯମॏ͕LH૿͑ͨൃදऀΥϯώϣϯδϡΠγΠɹɹδϡϯ
࣍ ΤϯδχΞ͔ΒݟͨλϯϫʔΫΞϓϦͷಛ େنαʔϏεΏ͑ͷ։ൃݱͱͯ͠ͷ੍ νϟϨϯδʔ σόοάϞʔυ&&ςετπʔϧϨϯτήϯΫϥογϡͷݮ4XJGUԽίϯύΠϧͷվળ
ΤϯδχΞ͔ΒݟͨλϯϫʔΫΞϓϦͷಛ
ಛᶃɹେنαʔϏεʢλϯϫʔΫʣͷΫϥΠΞϯτʢJ04ΞϓϦʣ
ͨ͏ΜΘʔ͘ʁʮϦϘϯϞσϧʯٻ৬ऀاۀٻ৬ऀͱاۀͱΛϚονϯά͢ΔɺେنͳαʔϏε
େنαʔϏε˞Լమͷ࿏ઢਤͰ͋Γ·ͤΜhttps://speakerdeck.com/rtechkouhou/taunwaku90mo-yuan-gao-falsejie-zai-wozhi-eruregasibatutipahuomansutiyuningu-number-devsumi-number-devisumid
J04ΞϓϦͷείʔϓhttps://speakerdeck.com/rtechkouhou/taunwaku90mo-yuan-gao-falsejie-zai-wozhi-eruregasibatutipahuomansutiyuningu-number-devsumi-number-devisumid͕͜͜ΫϥΠΞϯτͷείʔϓ͜ͷJ04ͷͰ͢
ಛᶄɹΞϓϦγϯϓϧʁ
ΞϓϦͷ༷γϯϓϧݕࡧ Ұཡ ৄࡉ Ԡื
Ͱͳ͍ը໘ɿɹɹɹɹɹɹɹɹը໘શίʔυߦɿɹɹɹίʔυͷΈສߦ$PSF%BUBςʔϒϧɿɹɹɹݸखಈςετ߲ɿɹ ߲6OJU5FTUʢ9$5FTUʣɿɹ έʔε
ಛᶅɹݹ͔͘Βͷ׆ൃͳ։ൃ
Γଓ͚͍ͯΔॳΊͯϦϦʔε͔ͯ͠ΒճܧଓతʹʢिճසʣҊ݅ΛΓࠐΜͰϦϦʔε˞݄ج४
େنαʔϏεΏ͑ͷ։ൃݱͱͯ͠ͷ੍
લఏͱͳΔ੍͕ೋͭ̍ɽਐߦதͷҊ݅։ൃʹ2%ӨڹΛ༩͑ͨ͘ͳ͍ɹɹɾෳνʔϜͰฒߦ։ൃɹɹɾ֤νʔϜ͕ͦΕͧΕͷɹɹɹϏδωε,1*ʹᬏਐ̎ɽ։ൃޮԽେࣄ͕ͩɺ֎෦࣭͕࠷ॏཁɹɹɾٻ৬ऀاۀؒͷϚονϯάɹɹɹͷͨΊͷ༷ΛकΔɹɹɾJ04ͱͯ͠ͷಈ࡞ج४Ҋ͕݅ৗ࣌ฒߦࢀߟɿେنϨΨγʔڥʹཱ͔ͪ͏༗ػతͳ։ൃϑΥʔϝʔγϣϯ
ϨΨγʔͳߏ͕ҡ࣋͞ΕͯདྷͨਐߦதͷҊ݅։ൃͷ2%ʹӨڹϦεΫ͕͋ΔͨΊɺϦϑΝΫλϦϯάͰ͖ͳ͍݁Ռɺमਖ਼࣌ͷӨڹൣғ͕໌֬ʹΘ͔Βͳ͍ɹɹɹ6OJU5FTUͰ୲อͮ͠Β͍ܰ͘ ߦΛ͑Δ7$ͨͪݸΛ͑Δ$PSF%BUB&OUJUJFTຆͲ͕.7ʢ1ʣ0CKD4XJGU0CKDͱͦͷٯύλʔϯͷґଘؔ·ͩಈ͘%FQSFDBUFE"1*ͳΒී௨ʹݱ0CK$3VOUJNFͰحతʹಈ͍͍ͯΔܕͷϛεϚονॲཧΧΦεͷ··Ҋ݅։ൃଓ͘
݁Ռతʹςετ͕λΠϔϯཧతςετϐϥϛουݱ࣮͜ͷΑ͏ͳΠϝʔδ*5*5&&65*5&&໌֬ͳςετείʔϓ࠷ݶͷखಈςετ΄ͱΜͲͷػೳΛखಈςετͰ୲อ͢Δ͔͠ͳ͍65https://www.youtube.com/watch?v=VJi2vmaQe6wᐆດͳςετείʔϓ*5ͱ&&ͷखಈςετ
࠷ѱͷεύΠϥϧςετʹ͕ୣΘΕΔ։ൃ͕ѹഭ͞ΕΔϦϑΝΫλϦϯάઌૹΓϨΨγʔͷ··Ͱઃܭɾ࣮
੍ΛݟۃΊͯɺνϟϨϯδͩʂ
͍͑ͨ͜ͱվળͰେࣄͳ͜ͱҰൠతʹྑ͍ͱ͞ΕΔํ๏ΛҋӢʹऔΓೖΕΔ͕ࣗͨͪ໘͍ͯ͠Δ੍Λਖ਼͘͠ཧղͯࣗͨͪ͠ݻ༗ͷ՝ʹରͯ͠ޮՌతͳղܾࡦΛͱΔ݁Ռɺখ͞ͳྗɾظؒͰ࠷େͷ݁Ռ͕ಘΒΕΔ
͜͜ͷνϟϨϯδͷ͓औΓΈͷ۩ମతͳ༰͕ؾʹͳΔํɺΞϯέʔτʹ࣭͝Λ͓ئ͍͠·͢
ᶃσόοάϞʔυͷ։ൃ
σόοάϞʔυͱήʔϜͰྫ͑Δͱࣗ༝ʹ-WΛʹͨ͠ΓɺӅ͞ΕͨΞΠςϜΛॴ࣋Ͱ͖ΔΑ͏ʹͨ͠Γ͢ΔӅ͞Εͨػೳͷ͜ͱ
ߟ͑ํςετ͕ͲΜͲΜΛѹഭ͍ͯ͠Δˣ΄ͱΜͲखಈςετˣͱ͍͑ɺߏతʹࣗಈςετՄೳͳੈքߦ͘ʹ͍ಓͷΓˣˣˣखಈςετޮԽͳΒɺɾظͰޮՌΛಘΒΕΔʂʂ
σϞΦϑγϣΞ։ൃ͚ͷࣗಈ༁
ଞʹͨ͘͞ΜͷػೳͰखಈςετޮԽɾΞϓϦͷ͚ͩΛِʢຊମͦͷ··ʣɾखಈςετͷͨΊͷࣄલ݅ΛࣗಈͰੜɾը໘্Ͱ֬ೝͰ͖ͳ͍෦σʔλΛΞϓϦͷ7JFXʹදِࣔ σʔλੜ ϩάίϯιʔϧ "#ςετૢ࡞
खಈςετͷݮ*5*5&&65σόοάϞʔυͰׂఔͷݮखಈςετྖҬςετίʔυྖҬखಈςετྖҬ
σόοάϞʔυେώοτʂ࣮͕ೝΊΒΕɺԣల։͞Εͨɾ·ͣɺλϯϫʔΫ"OESPJEɾ࣍ʹɺϦΫϧʔτδϣϒζͷ֤ϓϩμΫτςετఔͰσόοάϞʔυඞਢԽ෦ίϯτϦϏϡʔλʔ૿ՃɾҊ݅։ൃ࣌ʹɺඞཁͳΒσόοάϞʔυΛ࣮ܰ͘͢Δ׳शλϯϫʔΫͷσόοάϞʔυͲΜͲΜਐԽதʂʂ
ᶄ&&ςετπʔϧͷ։ൃdϨϯτήϯd
ͳΜͱ͔*5ͷίετݮΒ͚ͨ͠Ͳɾɾɾ*5*5&&&&ςετ෦ߏΛม͑ͣͱࣗಈԽ͕Մೳͳͣ65 ϨΨγʔߏͰΧόϨοδݶքͦΕͰ͢Ͱʹ࣌έʔεσόοάϞʔυͰׂఔͷݮΒͨ͠ײ֮खಈςετྖҬςετίʔυྖҬखಈςετྖҬ͜͜ΛࣗಈԽ͠Α͏ʂ
͔͠͠طଘͷ&&ςετπʔϧ՝͕͋ͬͨɾεΫϦϓτૢ࡞ͷޭՄ൱ͱɺɹεΫγϣಈըܗࣜͷΞτϓοτͰݕূΛߦ͏ͨΊɺɹݟͨҎ্ͷݕূෆՄೳɹɹྫʣ7JFXͷ֊6*ʹग़ͳ͍ଐੑͳͲɾ6*෦͝ͱͷݕূͷͨΊʹૢ࡞εΫϦϓτΛՃ͢Δ͔ɺɹBTTFSUจΛॻ͔ͳ͍ͱߦ͚ͳ͍ͳ͚Ε࡞Εྑ͍৽͍͠Έͷ&&πʔϧʹνϟϨϯδʂطଘ&&ςετࣗಈԽπʔϧͷ՝
ࣾ&&πʔϧʮϨϯτήϯʯΛ։ൃʂɾJ04ͷը໘7JFX$POUSPMMFS୯Ґɾ7JFX$POUSPMMFSͷ7JFX֊Խ͞Ε͍ͯΔɾը໘͕දࣔʢඳըʣ͞ΕͨΒ֊ʹԊͬͯݕূͰ͖Δͣ։ൃͷ1PJOU7JFX֊Λు͖ग़͠ɺࠩΛൺֱ͢Δ
ϨϯτήϯͷγεςϜߏϨϯτήϯ4%,Ϩϯτήϯ"1*Ϩϯτήϯ8FC5PPM7JFX֊ͷ+40/ࣗಈૢ࡞
σϞ"QQJVNͰࣗಈૢ࡞
ཪͰ7JFX֊Λ%VNQ7JFX֊Λͯ͢%VNQ
%VNQσʔλ+40/ʹม
+40/ʹมͨ͠σʔλΛαʔόʹੵ
+40/σʔλͳͷͰ؆୯ʹࠩൺֱ͕Ͱ͖Δجຊతʹ%VNQͨ͠HJUIBTI୯ҐͰಉ͡ૢ࡞εΫϦϓτͰൺֱΛߦ͏
ੵͨ͠ը໘σʔλΛ8FCͰ࠶ݱͰ͖Δ$BOWBTʹJ04ը໘σʔλΛඳը͢ΔϞδϡʔϧ։ൃը૾σʔλ#BTFԽͯ͋͠ΔͷͰ8FCͰඳըՄೳ
σϞ8FC5PPMͰࠩͷ֬ೝ
Ϩϯτήϯ׆༻࣮ఆظ࣮ࢪͷςετɾϦϦʔεલͷॏཁػೳͷਖ਼ৗܥςετϦϑΝΫλϦϯάͷςετɾ4XJGUԽͷςετɾґଘϥΠϒϥϦมߋޙͷςετϦϑΝΫλϦϯάܥͷςετͰ͜Ε͔Β׆༻໘ΛΊͯߦ͘༧ఆࠓ··ͰෆՄೳͩͬͨΞϓϦશମʹӨڹ͢ΔΑ͏ͳվमɺՄೳʹͳͬͨʂʂʂ
ᶅΫϥογϡͷݮ
࣭Λߟ͑Δͱ͖ʹɺΫϥογϡϨʔτॏཁ͕ͩʜ
ͰΫϥογϡ͕ഒҎ্ʹ
Ϋϥογϡ૿ՃͷݪҼʁλϯϫʔΫΞϓϦͷ༷ଆ໘λϯϫʔΫ࣭ج४ʹఆٛΞϦ͜Ε͕ΞϓϦͷΫϥογϡλϯϫʔΫ࣭ج४ʹఆٛφγΫϥογϡʹؔͯ͠༏ઌ͕͔ͬͨ͜ͱੲ͔ΒλϯϫʔΫΞϓϦͰ࣭ج४͕ʮػೳʯͷΈͩͬͨͦͯ͠ΤϯδχΞओಋͰ୲อ͢Δ͖ྖҬ"QQ$PSF2VBMJUZ(PPHMFҾ༻IUUQTEFWFMPQFSBOESPJEDPNEPDTRVBMJUZHVJEFMJOFTDPSFBQQRVBMJUZ
্࣭ͷνϟϨϯδɾΫϥογϡϞχλϦϯάΛʑߦ͏ͨΊ$SBTIMZUJDTಋೖʢಋೖ͕͓ͦ͗ͨ͢ཧ༝ผͷࣾπʔϧʹґଘ͍ͯͨͨ͠ΊʣɾʑΫϥογϡʔΛѲ͢ΔɾΫϥογϡʔ͝ͱͷൃੜ֬ɺ04ɺؔ࿈͢ΔॲཧΛੳɾۓٸॱΛܾΊͯJTTVFԽ͠ॗʑରԠɾରԠͨ͠όά࣍ͷϦϦʔεʹࠞͥࠐΉৗతʹΫϥογϡΛϞχλϦϯάɾվળ͢ΔΑ͏։ൃϓϩηεʹΈࠐΜͩ
େࣄͳͷখ͍͞ΞΫγϣϯΛॗʑΔ͜ͱ1%$"αΠΫϧతͳ͜ͱͰ͢
ΫϥογϡϑϦʔϢʔβʔ͕Ҏ্ʹճ෮ͦͷޙɺλϯϫʔΫJ04$'6ͷΛҡ͍࣋ͯ͠·͢
ᶆ4XJGUԽ
0CKFDUJWF$ΑΓ4XJGU
ૣ͍λΠϛϯάͰ4XJGUΛಋೖ͚ͨ͠ͲλϯϫʔΫͰ݄͔Βঃʑʹ4XJGUΛಋೖํɿɹɾ৽نΫϥεΛ4XJGUͰ࣮ɹɹɹɹɾہॴతͳ4XJGUԽճ࣮ࢪޙ੍͕͋ΔͷͰ͔Β΄΅ಉ͡ڞଘظ͕ؒ͘ͳͬͯ৭ʑ͕ൃੜ͍ͯͨ͠
0CK$ڞଘΛఆͨ͠Ϋϥεઃܭɾ࣮ίετ$MBTTͱ4USVDUઃܭ࣌ʹ0CK$ଆ͔Βͷར༻Λલఏʹ͢Δඞཁ͕͋Δઃܭɾ࣮ఔͷ࣌ؒͷ͏͕ͪ࣌ؒڞଘؔ࿈λεΫ
ΫϥογϡͷݪҼͷ΄ͱΜͲ0CK$4XJGUڞଘՕॴίϯύΠϥʹΑΔOJMνΣοΫʹґଘͰ͖ͳ͍ͨΊϥϯλΠϜΤϥʔΛఆ࣮͕ͨ͠ඞཁʢOVMMBCMFطଘӨڹ͋ΓͷͨΊ֎ʣࣾݶ࣌ͷ5PQΫϥογϡ͕ͯ͢ڞଘՕॴ
੍ΛݟۃΊͯɺνϟϨϯδͩʂ˞ಉ࣌ਐߦதෳҊ݅։ൃʹӨڹ͍͚ͯ͠ͳ͍
λϯϫʔΫྲྀ4XJGUԽͷਐΊํ
Γͷ0CK$pMFΛͯ͢ϦετԽpMFɺສߦʢશମͷׂ̑ʣΧςΰϦԽߦͰنײΛѲ·ͣશରΛϦετԽ
։ൃঢ়گΛͯ͢Ѳͯ͠ύζϧܭըҊ݅։ൃͱ$POqJDUى͜͞ͳ͍ظؒɺߦ͔ΒͷنײͰ4XJGUԽରpMFΛબఆɻ΄ͱΜͲ੍͕ݶ࣌ؒ4XJGUԽͱฒߦͰෳҊ͕͍݅ͬͯΔ੍ʹϑΥʔΧε
՝ΛΦϑγϣΞ։ൃͰղܾ͍σϦόϦʔ੍ͱΫΦϦςΟʔ୲อͷ͠͞ΛɹຊΤϯδχΞʢ༗ࣝऀʣͱɹΦϑγϣΞ։ൃʢεέʔϥϒϧʣɹͰղܾ0CKFDUJWF$4XJGUͷ࡞ۀର'JMFબఆ͓ΑͼӨڹൣғѲίʔυϨϏϡʔ65͓Αͼ*5&&ຊΤϯδχΞʢ༗ࣝऀʣ ΦϑγϣΞ։ൃʢεέʔϥϒϧʣࢀߟɿେنϨΨγʔڥʹཱ͔ͪ͏༗ػతͳ։ൃϑΥʔϝʔγϣϯ
΄΅͕̍ϚʔδαΠΫϧબఆ࣌ʹӨڹൣғ͔ͬ͠ΓνΣοΫ͔ͯ͠ΒΦϑγϣΞ։ൃճ͢4XJGUԽ͔ΒίʔυϨϏϡʔ΄΅Ͱྃબఆ͔ͯ͠ΒཧΧϯόϯͰ
ຖॗʑ͍ͬͯ͘ظ݄ؒd݄ʢʣਐͷ֬ೝHJUIVCMJOHVJTUͰ͙͢ग़ͤΔ
ܭը௨ΓʹऴΘ͍ͬͯͨΓͷߏpMFpMFɺສߦ͕ظؒͰ݄ྃྃ
ᶇϏϧυ࣌ؒͷվળɹ࠷ۙͬͯ·͢ʂ
Ϗϧυ͕࣌ؒ՝େ͖͍ϓϩδΣΫτΏ͑ͷϏϧυ࣌ؒਂࠁͳεΫϦϓτΛΈࠐΜͰϏϧυλΠϜΛܭଌϜμʂʂ։ൃऀਓ͋ͨΓʜɹϏϧυճճ݄ɹϏϧυਓ݄Ϗϧυ࣌ؒඵճ
ҰൠతͳղܾࡦͰɹޮՌແ͠ɹɹɹɹɹɹɹɹɹɹ͙͢ޮՌΛಘΒΕͳ͍ޮՌͳ͠ʜܕਪ࣌ؒͷվળɺϏϧυઃఆͷมߋͳͲ͙͢ޮՌΛಘΒΕͳ͍ʜ'SBNFXPSLͷΓग़͠ͳͲɻӨڹ͕େ͖͕͔͔࣌ؒ͘ΔͨΊͦͦҰൠతͳঢ়ଶͰͳ͍ͨΊλϯϫʔΫಠಛͳ͕ผͷͱ͜ΖͰ͋ͬͨ
ࠩϏϧυ͕શવޮ͍͍ͯͳ͍ʜ3TXJGU͕΄΅શͯͷ7JFX7JFX$POUSPMMFSΛࢀর͍ͯͨ͜͠ͱ͕ݪҼͰɺͱͱෳࡶͳґଘ͕ؔ͞ΒʹෳࡶʹͳΓɺࠩϏϧυ͕΄ͱΜͲػೳ͠ͳ͔ͬͨ3TXJGUΛআ٫ͯ͠ɺࠩϏϧυ͕ػೳ͢ΔΑ͏ʹͳͬͨɻ݁ՌɺϏϧυ࣌ؒΛׂఔݮΒͨ͠
։ൃڥͷվળίΞҎ্ͷϚγϯʹ౷Ұ͠ɺϏϧυ࣌ؒΛʙׂݮΒͨ͜͠ͷϓϩμΫτʹదͨ͠ϚγϯεϖοΫͷج४͕ແ͔ͬͨͨΊɺεϖοΫͳϚγϯ͕ଟ͘ΘΕ͍ͯͨɻ֤εϖοΫͷϚγϯͰϏϧυ࣌ؒΛܭଌɻඞਢϚγϯεϖοΫΛ͖ͭͱΊͨ
Ҿ͖ଓ͖৭ʑ͍ͬͯ·͢ʂ
Ҋࣄ߲
औΓΈͷ۩ମతͳ༰͕ؾʹͳΔํɺͪ͜Βʹ࣭͝Λ͓ئ͍͠·͢