iOSDC Japan 2016の発表資料です。 https://iosdc.jp/2016/c/node/84
Ϣʔβʔʹड͚ೖΕΒΕΛىͮ͜͠Β͍େنϦχϡʔΞϧͷਐΊํגࣜձࣾ'BCMJDTIPCZ
View Slide
ࣗݾհ
TIPCZw 4IPUB*[BLBw 'BCMJD JODw J043VCZPO3BJMTը૾ॲཧw ৭ݕࡧػೳΞϓϦͷϦχϡʔΞϧ!TIPCZTIPCZ
'BCMJDʹ͍ͭͯ
w ʹઃཱw ϑϦϚΞϓϦʮϑϦϧʯw όΠΫϑϦϚΞϓϦʮ3*%&ʯw ৼΓฦΕϢʔβʔ͕͍Δ։ൃڥ'BCMJDʹ͍ͭͯ
ຊ
ϦχϡʔΞϧͰ͋Γ͕ͪͳ͜ͱ
ͭΒ͍
ϑϦϧͷέʔε
ঁੑ͚ΞϓϦˠஉੑ༻Մ
ΦʔϧδϟϯϧˠϑΝογϣϯಛԽ
ϦχϡʔΞϧޙߴධՁΛҡ࣋ʂˑ ˑˑ ˑ"QQ"OOJFʹΑΔόʔδϣϯ͝ͱͷฏۉධՁW WW W
)BQQZ
ʜ࣮͏·͍ͬͨ͘ͷ࠷͔ۙΒ
͔ࣦͭͯഊଓ͖ʜ "QQ"OOJFʹΑΔόʔδϣϯ͝ͱͷฏۉධՁˑ ˑˑ ˑW WW W
େنϦχϡʔΞϧʹݟ͕ඞཁʂ
Ϣʔβʔʹड͚ೖΕΒΕΛىͮ͜͠Β͍େنϦχϡʔΞϧͷਐΊํ
֓ཁ
֓ཁw ϦχϡʔΞϧͷޭࣦഊw ϦχϡʔΞϧΛϢʔβʔʹड͚ೖΕͯΒ͏w ϦχϡʔΞϧϓϩδΣΫτͷਐΊํw ·ͱΊ
ϦχϡʔΞϧͷޭࣦഊ
֓ཁɿϦχϡʔΞϧͷޭࣦഊw ϦχϡʔΞϧͱʁw ࢲͷϦχϡʔΞϧͷࣦഊஊw ϦχϡʔΞϧͱϢʔβʔw ϦχϡʔΞϧΛޭͤ͞Δʹ
ϦχϡʔΞϧͱʁ
ϦχϡʔΞϧͱw Ϣʔβʔʹͱͬͯݟ͍ͨউख͕େ͖͘มΘΔΞοϓσʔτͷ͜ͱw σβΠϯมߋw ػೳՃw ػೳআ
ࢲͷϦχϡʔΞϧͷࣦഊஊ
ࢲͷϦχϡʔΞϧͷࣦഊஊw ʮ͍͢͞ʯͷ্͕ඪw ΞϓϦΛ΄΅࡞Γ͠w ϞμϯͰɺߟ͑͏ΔݶΓ࠷ߴͷ6*Λఏڙʂ
ࢲͷϦχϡʔΞϧͷࣦഊஊw ϦϦʔεޙɺϢʔβʔൃw ධՁϨϏϡʔͷཛྷw ʮ͍ͮΒ͍ʯͱݴΘΕΔ
͠Β͘མͪࠐΉʜ
ϦχϡʔΞϧͱϢʔβʔ
ϦχϡʔΞϧͱϢʔβʔw ϦχϡʔΞϧେ͖ͳετϨεΛ༩͑Δw ݟ׳ΕͨݟͨͷมԽw ͍׳ΕͨػೳͷมԽ
ϦχϡʔΞϧͱϢʔβʔw มԽ͔Βੜ͡Δʮ͍ͮΒ͞ʯw ׳Ε͍ͯΔϢʔβʔ΄ͲมԽ͕ͭΒ͍w ແҙࣝϨϕϧͷʮ͍ͭͷૢ࡞ʯΛ่͞ΕΔ
খ͞ͳมԽʹΑΔʮ͍ͮΒ͞ʯͷྫɿීஈ64ΩʔϘʔυआΓͨ1$͕ຊޠΩʔϘʔυͩͬͨ
ϦχϡʔΞϧΛޭͤ͞Δʹ
ϦχϡʔΞϧΛޭͤ͞Δʹw ظతͳϢʔβʔମݧͷѱԽఘΊΔw தظతͳϢʔβʔମݧΛ্ͤ͞ΔͷΛࢦ͢w ͦͷ͏ͪ׳ΕΔʂ
ϦχϡʔΞϧΛޭͤ͞Δʹw αʔϏεͷΛΰʔϧʹ͢Δw ϢʔβʔମݧΛ٘ਜ਼ʹͯ͠ಘ͍ͨͷ͚ͩw ͰܭଌͰ͖ΔͷͰ৺͕อͯΔ
☺
ϦχϡʔΞϧΛϢʔβʔʹड͚ೖΕͯΒ͏
Կͱ͔ͯ͠ɺԌ্Λආ͚Δ
֓ཁɿϦχϡʔΞϧΛϢʔβʔʹड͚ೖΕͯΒ͏w ϦϦʔεલʹϢʔβʔςετw มԽগͣͭ͠w ػೳͷআ৻ॏʹw ਂࠁͳόάΛઈରग़͞ͳ͍w ҙݟΛड͚ࢭΊΔ૭ޱΛ࡞Δw ϢʔβʔͱίϛϡχέʔγϣϯΛऔΔ
ϦϦʔεલʹϢʔβʔςετ
ϦϦʔεલʹϢʔβʔςετw ϢʔβʔͷԠΛϢʔβʔͰ֬ೝw اըɾϓϩτλΠϓஈ֊ˍ࣮ޙw ༧ଌ͞ΕΔʹઌʹख͕ଧͯΔ
Ϣʔβʔςετͷ༷ࢠ
ʮօ͞Μςετ͓ئ͍͠·͢ʔʯˣΤϯδχΞ͕ͨͪςετˣʮΑͬ͠ΌᘳʯˣϢʔβʔౖܹϢʔβʔςετͷࣦഊஊ
ϦϦʔεલʹϢʔβʔςετw ࣮ࡍͷϢʔβʔͰςετ͢Δw ΤϯδχΞϢʔβʔͰͳ͍w ։ൃதͷόʔδϣϯʹݟ׳Εͯ͠·͏w υοάϑʔσΟϯάόάൃݟ͕త
มԽগͣͭ͠
มԽগͣͭ͠w ϦχϡʔΞϧΛճͷΞοϓσʔτʹׂw ػೳআΞοϓσʔτw ػೳՃΞοϓσʔτw σβΠϯมߋΞοϓσʔτʢ࠷ޙʣw ϲ݄ʙ͔͚ͯϦχϡʔΞϧΛਐΊΔ
Α͋͘ΔେنϦχϡʔΞϧ৽ػೳ"৽ػೳ#ػೳআσβΠϯมߋ։ൃ։࢝ʢWʣWόάमਖ਼$όάमਖ਼#όάमਖ਼"W
ड͚ೖΕ͍͢ϦχϡʔΞϧ৽ػೳ" ػೳআ։ൃ։࢝ʢWʣWW όάमਖ਼"
ड͚ೖΕ͍͢ϦχϡʔΞϧ৽ػೳ# σβΠϯมߋWWόάमਖ਼#όάमਖ਼$W
গͣͭ͠ͳΒड͚ೖΕ͍͢
ػೳͷআ৻ॏʹ
ػೳͷআԌ্͍͢͠
ʮ͜ͷػೳɺෛ࠴ʹͳͬͯΔ͠ফ͍ͨ͠ʜʯˣṖͷਖ਼Խʢ΄ͱΜͲΘΕͯͳͦ͞͏ʜʣʢϝϯςʹίετ͕͔͔Δʜʣʢফͨ͠ํ͕γϯϓϧʹͳΔͣʜʣˣϢʔβʔౖܹػೳআͷࣦഊஊ
ػೳͷআ৻ॏʹw ফ͞ͳͯ͘ྑ͍ಓΛ୳͢w γϯϓϧͳସػೳΛఏڙw Ӆ͢͜ͱͰ6*Λγϯϓϧʹอͭ
γϯϓϧͳସ
Ӆ͢
ػೳͷআ৻ॏʹw ͦΕͰফ͢ͳΒɺϕʔεͰ࠷ऴ֬ೝw ར༻ऀ͕ҎԼͳΒফͯ͠ྑͦ͞͏
ਂࠁͳόάઈରग़͞ͳ͍
ౖΓ͕രൃ͢ΔτϦΨʔʹͳΔ
ϦϦʔε༧ఆˣʮେମಈ͍ͯͦ͏ɻεέδϡʔϧकΔʂʯˣਂࠁͳόάൃ֮ˣϢʔβʔౖܹόάͷࣦഊஊͦͷ
όάൃ֮ˣϦϦʔε༧ఆˣʮ͋ͱͰͦ͏ɻεέδϡʔϧकΔʂʯˣϢʔβʔౖܹόάͷࣦഊஊͦͷ
ਂࠁͳόάઈରग़͞ͳ͍w 2"ɺςετظؒΛεέδϡʔϧʹೖΕ͓ͯ͘w ࠷िؒ֬อw όάΛݟ͚ͭͨΒ͢·ͰϦϦʔε4501w ʮޙͰ͢ʯϦχϡʔΞϧͰېࢭ
༨༟Λ࣋ͬͯϦϦʔεΛ͠Α͏
ϢʔβʔͱίϛϡχέʔγϣϯΛऔΔ
҆৺ײΛ༩͑Α͏
ϢʔβʔͱίϛϡχέʔγϣϯΛऔΔw ϦϦʔεલw ΞϓϦͰΞοϓσʔτ༧ࠂ
Ξοϓσʔτ༰Λ༧ࠂ
ϢʔβʔͱίϛϡχέʔγϣϯΛऔΔw ϦϦʔεޙw ΞϓϦͰΞοϓσʔτࠂw ৽ػೳʹؔ͢Δ'"2ΛՃw ਓؒຯͷ͋Δ4UPSFͷΞοϓσʔτจ
ΞϓϦͰΞοϓσʔτࠂ
ਓؒຯͷ͋ΔΞοϓσʔτจ
ࣄલʹ͔͍ͬͯͨΒେৎ
ҙݟΛड͚ࢭΊΔ૭ޱΛ࡞Δ
Γͷͳౖ͍ΓΛड͚ࢭΊΔ
ϨϏϡʔʹౖΓΛͿ͚ͭΔˣ4/4ʹౖΓΛͿ͚ͭΔˣԌ্ϦχϡʔΞϧ͕ڐͤͳ͔ͬͨϢʔβʔ
ҙݟΛड͚ࢭΊΔ૭ޱΛ࡞Δw ϨϏϡʔҎ֎ͰҙݟΛड͚ࢭΊΔw ͝ҙݟɾ͝ཁʢฦ৴ෆཁʣͷ༠ಋw ͓͍߹ΘͤͰͷฏతղܾ
͝ҙݟɾ͝ཁͷ༠ಋ
ϨϏϡʔͷධՁ͕Լ͕ΓͮΒ͍
ཁΛूܭͯ͠վળͰ͖Δ
ϦχϡʔΞϧϓϩδΣΫτͷਐΊํ
ϦχϡʔΞϧ૯ྗઓ
֓ཁɿϦχϡʔΞϧϓϩδΣΫτͷਐΊํw τοϓμϯͰඪΛܾΊΑ͏w ؾ݉Ͷͳ͘ԿͰݴ͍߹͑ΔؔΛ࡞Ζ͏w ಈ͘ϓϩτλΠϓ͔Β࢝ΊΑ͏w 2"ʹಛʹྗΛೖΕΑ͏w Ϣʔβʔͷྨͯ݅͠ΛݟΑ͏
τοϓμϯͰඪΛܾΊΑ͏
ΤϯδχΞओಋͰඪઃఆˣʮෛ࠴Λղফ͠Α͏ʂʯʮҰ͔Β࡞Γͦ͏ʂʯˣϢʔβʔౖܹඪઃఆͷࣦഊஊͦͷ
σβΠφʔओಋͰඪઃఆˣʮ͍͚ͯΔ6*Λ࡞Ζ͏ʂʯʮҰ͔Β࡞Γͦ͏ʂʯˣϢʔβʔౖܹඪઃఆͷࣦഊஊͦͷ
࡞Γ͠मཏͷಓ
ϘτϜΞοϓͰඪઃఆΛ͢Δͱ࡞Γ͠ཉ͕༙͍ͯ͘Δ
τοϓμϯͰඪΛܾΊΑ͏w αʔϏε͕໘͍ͯ͠Δେ͖ͳ՝ʹߜΖ͏w ՄೳͳݶΓϛχϚϜʹղܾw ՝Λ࠷ཧղ͍ͯ͠Δਓ͕ඪΛܾΊΑ͏w ࣄۀͷऀw ࣾר͖ࠐΈ͍͢
τοϓ͕ಈ͚օಈ͘
ؾ݉Ͷͳ͘ԿͰݴ͍߹͑ΔؔΛ࡞Ζ͏
Λݴ͍ग़ͮ͠Β͍ͱࠔΔ
ԿͰؾ݉Ͷͳ͘ݴ͍߹͑ΔؔΛ࡞Ζ͏w ௐΛεϜʔζʹ͍ͨ͠w ༷ͷௐɺ6*ͷௐw ͷڞ༗Λૣ͍ͨ͘͠w ༷ͷ࿙Εɺ6*ͷζϨɺόά
ԿͰؾ݉Ͷͳ͘ݴ͍߹͑ΔؔΛ࡞Ζ͏w औΓΈͰؔΛվળ͢Δw ΩοΫΦϑϥϯνw ܴϥϯνw υϥοΧʔ෩ΤΫααΠζ
ࣗͷ͜ͱͱνʔϜͷ͜ͱʹ͍ͭͯ͠߹͏υϥοΧʔ෩ΤΫααΠζIUUQEJBSZTIVDSFBNOFUUIFESVDLFSFYFSDJTFJOHNPQFQBCPJODIUNM
গͣͭ͠าΈدΖ͏
ಈ͘ϓϩτλΠϓ͔Β࢝ΊΑ͏
ಈ͘ͷ͕ͳ͍ͱ໎͢Δ
ಈ͘ϓϩτλΠϓ͔Β࢝ΊΑ͏w ਅͬઌʹಈ͘ϓϩτλΠϓΛ࡞Ζ͏w Ϣʔβʔςετ͕Ͱ͖Δw ͕͍ٞ͢͠w ͦΕࣗମ͕༷ʹͳΔ
ಈ͘ϓϩτλΠϓ͔Β࢝ΊΑ͏w ϓϩτλΠϐϯάπʔϧΛ͓͏w ϩʔίετw σβΠφʔ͚ͩͰ࡞ΕΔw ࣮ػͰ֬ೝͰ͖Δ
'MJOUPʹΑΔಈ͘ϓϩτλΠϓ
ϓϩτλΠϓ͕͋Δͱ໎͠ͳ͍
2"ʹಛʹྗΛೖΕΑ͏
2"ʹಛʹྗΛೖΕΑ͏w ։ൃ൛Λৗతʹ͏w ςετձΛ։͘w ΤϯλʔϓϥΠζͰࣾw ϓϩϞʔγϣϯίʔυͰ࠷ऴ֬ೝ
։ൃ൛Λৗతʹ͏ΤϯδχΞ(JU)VC #JUSJTF 'BCSJD#FUBΛࣗಈԽ
ςετձΛ։͘σβΠφʔؔऀ͕ू·Γ࣮ऀ͕આ໌͠ͳ͕Βಉ࣌ʹಉ͡ςετΛ͢ΔΤϯδχΞ αϙʔτ
ΤϯλʔϓϥΠζͰࣾΤϯλʔϓϥΠζͷϏϧυΛ%FQMPZHBUFͰొෆཁɺ߹ݴ༿Λೖྗ͢Ε୭Ͱ͑Δ
ϓϩϞʔγϣϯίʔυͰ࠷ऴ֬ೝϦϦʔεલͷ৽όʔδϣϯΛ࠷ऴ֬ೝ࣮ࡍʹϢʔβʔʹಧ͘ͷͱಉ͡ΤϯδχΞ
͜Ε͚͓͚ͩͬͯ҆৺
Ϣʔβʔͷྨͯ݅͠ΛݟΑ͏
ਂࠁʹଊ͑͗͢ͳ͍
Ϣʔβʔͷྨͯ݅͠ΛݟΑ͏w ײΛͯ͠அ͠Α͏w ͷਂࠁ݅ͰѲw ݸผͷ༰Λݟ͗͢Δͱ৺͕ΒΕΔ
Ͱஅ͢Ε҆৺
·ͱΊ
·ͱΊw ϦχϡʔΞϧͷޭࣦഊw ϦχϡʔΞϧͷޭʹαʔϏεͷw ϦχϡʔΞϧΛϢʔβʔʹड͚ೖΕͯΒ͏w ػೳআͱόάʹؾΛ͚ͭͯɺׂͯ͠ϦϦʔεw ϦχϡʔΞϧϓϩδΣΫτͷਐΊํw ඪΛτοϓμϯͰܾΊͯɺ2"Λ೦ೖΓʹ