Slide 1

Slide 1 text

$MPTVSF*OKFDUJPOͰςετ͕ॻ͚ͨ )","5"5FTU/JHIU !1

Slide 2

Slide 2 text

1SPpMF struct Profile { let name = "Kazuya Ueoka" let twitter = "@fromkk" let github = "fromkk" let qiita = "fromkk" let company = "Timers Inc." } • !2

Slide 3

Slide 3 text

લఏ w ෳࡶͳίϯϙʔωϯτΛ࡞͍ͬͯͨ w ෳࡶͳ෺ʹ͸ςετ͕ཉ͍͠ w ෳࡶͳ෺͸ςετ͕ॻ͖ͮΒ͍ !3

Slide 4

Slide 4 text

࡞ͬͨ΋ͷ ෳ਺ͷը૾ɾಈըΛ·ͱΊͯΞοϓϩʔυ͢Δػೳ !4

Slide 5

Slide 5 text

େ·͔ͳྲྀΕ w ը૾ɾಈը͕୔ࢁ౉͞ΕΔ [PHAsset] w 4΁ͷΞοϓϩʔυ༻ʹτʔΫϯΛ"1*͔Βऔಘ w ֤ϑΝΠϧຖʹϋογϡ஋Λੜ੒ w -PDBM%# $PSF%BUB ʹ*/4&35 ϋογϡ஋ͱ1)"TTFUMPDBM*EFOUJpFSΛඥ෇͚Δ w 4ʹΞοϓϩʔυ͢ΔҝʹҰ୴ϑΝΠϧʹॻ͖ग़͠ AWSS3TransferUtility.uploadFileΛར༻͢ Δҝ w ॻ͖ग़ͨ͠ϑΝΠϧΛ4ʹΞοϓϩʔυ w ঢ়ଶΛ%#ʹ61%"5& !5

Slide 6

Slide 6 text

!6 ొ৔ਓ෺

Slide 7

Slide 7 text

ͱͯ΋ෳࡶ !7

Slide 8

Slide 8 text

ςετΛ͢ΔҝʹίϯϙʔωϯτΛࠩ͠ସ͑Մೳʹ͍ͨ͠ ͦ͜Ͱ%* %FQFOEFODZ*OKFDUJPO !8

Slide 9

Slide 9 text

༗໊ͳ%*ͷछྨ w $POTUSVDUPS*OKFDUJPO ΫϥεͷॳظԽ࣌ʹந৅ΦϒδΣΫτΛ஫ೖ͢Δ w 4FUUFS*OKFDUJPO ηολʔϝιουͰந৅ΦϒδΣΫτΛࠩ͠ସ͑Δ w 1SPQFSUZ*OKFDUJPO ϓϩύςΟͷந৅ΦϒδΣΫτΛ௚઀ࠩ͠ସ͑Δ !9

Slide 10

Slide 10 text

ςετʹ͍ͭͯߟ͑Δ w ֤ίϯϙʔωϯτͷςετ͸ग़དྷͦ͏ w શମͷྲྀΕ 6QMPBEFSࣗମ ΋ςετ͕͍ͨ͠ w ֤ίϯϙʔωϯτ͕ੜ੒ͨ͠஋Λ౉ͯ͠ผͷ0QFSBUJPOΦϒδΣΫτΛ ࡞Δ w ͦͷΦϒδΣΫτͬͯࠩ͠ସ͑ग़དྷΔͷʁ !10

Slide 11

Slide 11 text

ߟ͑ͯΈͨҊ w %*$POUBJOFSΛར༻͢Δ
 ϥΠϒϥϦ΍ผͷΫϥε͕૿͑Δͷ͸ͳΜͱͳ͘ආ͚͍ͨ
 είʔϓ͕޿͕Γ͗͢Δؾ͕͢Δ w TUBUJDʹܕ৘ใΛ࣋ͨͤͯ࢖͏ͱ͖ʹJOJU
 ࠩ͠ସ͑ࣗମ͸Մೳ͕ͩɺ0CKFDUͷࠩ͠ସ͕͑ग़དྷͳ͍ͷͰςετ͕ ग़དྷͳ͍ !11

Slide 12

Slide 12 text

ͦ͜Ͱ $MPTVSF*OKFDUJPO উखʹ໊෇͚·ͨ͠ !12

Slide 13

Slide 13 text

ϓϩμΫτίʔυ !13 var makeUrlTransfer: (UploaderToken) -> UploaderURLTransferProtocol = { (token) in return UploaderURLTransfer(token: token) } let error = UploaderError.uploadFailed uploader.makeUrlTransfer = { (token) in let urlTransfer = UploaderURLTransferStub(token: token) urlTransfer.result = false urlTransfer.error = error return urlTransfer } ςετίʔυ ίʔυͰදݱ͢Δͱ

Slide 14

Slide 14 text

ࠩ͠ସ͕͑ग़དྷͨ !14

Slide 15

Slide 15 text

4BNQMF IUUQTHJUIVCDPNGSPNLL$MPTVSF*OKFDUJPO4BNQMF !15

Slide 16

Slide 16 text

·ͱΊ 1SPT w ֊૚ߏ଄ͷςετΛߟ͑ͨ࣌ʹ$MPTVSF*OKFDUJPOΛ࢖͑͹0CKFDUࣗମͷࠩ͠ସ͕͑Մೳ ʹͳͬͨͷͰςετ͕ग़དྷΔ༷ʹͳͬͨ w ϥΠϒϥϦͷར༻΍ผͷΫϥεΛ࡞Βͳͯ͘ࡁΜͩͷͰίεύ͸ྑ͍ؾ͕͢Δ# $POT w $MPTVSFͷҾ਺͕෼͔ΓͮΒ͘ͳΔ (Int, Int, Int, Int)ͱ͔શવ༗ΓಘΔ w ύοͱݟṖͷϓϩύςΟ͕૿͑ΔͷͰείʔϓΛߜͬͨΓ͢Δ޻෉͸ඞཁͦ͏ w ෳ਺ճಉ͡Ϋϥε͕ੜ੒͞ΕΔ࣌ʹςετΛ͢Δͷ΋޻෉͕ඞཁ͔ͳͱࢥ͍·͢ !16

Slide 17

Slide 17 text

13 !17

Slide 18

Slide 18 text

!18

Slide 19

Slide 19 text

!19

Slide 20

Slide 20 text

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