Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Codable͜ͱ͡Ί by. 2017/6/16 Otemachi.swift #01 1
Slide 2
Slide 2 text
takasek iOS Developer ϑϦʔϥϯε(΄΅FiNC) @takasek OSS ActionClosurable Notifwift 2
Slide 3
Slide 3 text
Codable introduced in WWDC2017 https://developer.apple.com/videos/play/wwdc2017/212/ 3
Slide 4
Slide 4 text
CodableϞςϞς ֤ॴWWDCৼΓฦΓձͰɺࠓ3࿈ଓͷϐοΫΞοϓهथཱத 6/14 AKIBA.swift / by fromkkɹ6/15 eureka Meetup / by Muukii ɹ!ͬ͘͟Γ֓ཁ௫ΊΔࢿྉɹɹ!DecodingErrorʹ͍ͭͯৄ͍͠ 4
Slide 5
Slide 5 text
վ CodableΠέϝϯ by. 2017/6/16 Otemachi.swift #01 5
Slide 6
Slide 6 text
6
Slide 7
Slide 7 text
Codable ͷΠέϝϯϙΠϯτ 4 جຊతʹ͍ํ ܕʹ Codable Λ͚ͭΔ͚ͩʂ 4 ͚ͩͲCustomizable 4 ͲΜͳEncoder/Decoderʹରͯ͠ (JSON, Plist, ·ͩݟ͵something...)࠶ར༻Մೳ 7
Slide 8
Slide 8 text
ʲ༨ஊʳ Decoderͱ͍͑ ࣗ࡞ CSVDecoder ͷ࡞ྫ QiitaͰެ։ͯ͠·͢! 8
Slide 9
Slide 9 text
Ͳ͏customizableͳͷ͔ جຊɺίϯύΠϥ͕ܕͷϝϯόΛࣗಈੜ ※protocol extensionΛར༻ͯ͠Δ = ্࣮ॻ͖Մೳ Ωʔ໊ΛΧελϜ͍ͨ͠ʂ ! CodingKeyΛࣗલ࣮ σίʔυϩδοΫΛΧελϜ͍ͨ͠ʂ ! initΛࣗલ࣮ 9
Slide 10
Slide 10 text
10
Slide 11
Slide 11 text
11
Slide 12
Slide 12 text
طଘͷSwiftͷΈΛ ׆༻ͯ͠·͢Ͷʂ ͘ʙʙʙʙʙͬʂ Πέϝϯʂ! 12
Slide 13
Slide 13 text
·ͩ·ͩ͋Γ·͢ CodableͷΠέϝϯϙΠϯτ 13
Slide 14
Slide 14 text
͍͍ͩͨͷܕCodable ͔ͩΒɺCodableͳܕͷू߹Ͱ͋Δ ϢʔβʔఆٛܕαΫοͱCodableΕΔ 14
Slide 15
Slide 15 text
classͷܧঝߟྀࡁ superdecoder ͰsuperclassΛσίʔυ 15
Slide 16
Slide 16 text
Date, Data ʹ͍ͭͯɺಈతʹ Encoding StrategiesΛܾΊΒΕΔ ʢ͜ΕJSONEncoder/Decoderͷ͚ͩͲʣ 16
Slide 17
Slide 17 text
Codable PhilosophyΠέϝϯ 4 Error handling built-in 4 Έࠐ·ΕͨΤϥʔ੍ޚ 4 Encapsulate encoding details 4 ΤϯίʔσΟϯάͷৄࡉΛΧϓηϧԽ 4 Abstract format from type 4 நԽ͞ΕͨϑΥʔϚοτ 17
Slide 18
Slide 18 text
Codable PhilosophyΠέϝϯ 4 Error handling built-in 4 Έࠐ·ΕͨΤϥʔ੍ޚ 4 Encapsulate encoding details 4 ΤϯίʔσΟϯάͷৄࡉΛΧϓηϧԽ 4 Abstract format from type 4 நԽ͞ΕͨϑΥʔϚοτ 18
Slide 19
Slide 19 text
Error handling built-in ᶃ ৄࡉͳΤϥʔͰσίʔυ/Τϯίʔυͷࣦഊ Λڭ͑ͯ͘ΕΔ AppleͷϓϨθϯλʔ ʮ༧ظ͠ͳ͍inputɺAPIมߋͳͲͰ࣌ʹΑͬͯى͜ Γ͏ΔɻͳͷͰFatalErrorʹ͠ͳ͍͜ͱʹܾΊͨʯ ΤϥʔͷৄࡉࡢͷMuukii͞Μͷࢿྉࢀর https://speakerdeck.com/muukii0803/ decodable-pairs-taiwan 19
Slide 20
Slide 20 text
Error handling built-in ᶄ SwiftͷܕγεςϜͰදݱ͖͠Εͳ͍ υϝΠϯݻ༗ͷόϦσʔγϣϯΛ ΠχγϟϥΠζ࣌ʹ࣮ߦՄೳ 20
Slide 21
Slide 21 text
σίʔυͷϑΣʔζ 1. σίʔυ 4 όΠτσʔλ 4 ߏΛ࣋ͭόΠτσʔλ (JSON) 4 ܕ͚͞Εͨσʔλ(Swift ͷܕ) 2. όϦσʔγϣϯ 4 Domain-specific validation 4 Graph-level validation 21
Slide 22
Slide 22 text
22
Slide 23
Slide 23 text
URLͷscheme͕ https Ͱ͋Δ͜ͱΛ ܕͱͯ͠ڧ੍Ͱ͖ͨʂ 23
Slide 24
Slide 24 text
Codable Philosophy 4 Error handling built-in 4 Έࠐ·ΕͨΤϥʔ੍ޚ 4 Encapsulate encoding details 4 ΤϯίʔσΟϯάͷৄࡉΛΧϓηϧԽ 4 Abstract format from type 4 நԽ͞ΕͨϑΥʔϚοτ 24
Slide 25
Slide 25 text
Protocol Orientedͳઃܭ͕Πέϝϯ 25
Slide 26
Slide 26 text
ͦΜͳϓϩτίϧઃܭͷΠέϝϯͬΓ ͬͱৄ͘͠ޠΓ͍ͨΜͰ͕͢… !" …·ͨผͷػձʹʂ 26