SwiftUI Freed From ViewController
by
USAMI Kosuke
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
SwiftUI ʹΑΔ ViewController ͔Β ͷղ์ USAMI Kosuke Fenrir Inc.
Slide 2
Slide 2 text
SwiftUI ͱ
Slide 3
Slide 3 text
SwiftUI • 6݄ͷWWDCͰൃද͞Εͨ৽͍͠UIϑϨʔϜϫʔΫ • ݱࡏϕʔλ൛ɺ9݄ʹਖ਼ࣜϦϦʔεͷݟࠐΈ • ࠓճͷɺݱࡏ Apple Developer αΠτͰҰൠެ։͞ Ε͍ͯΔ༰Λݩʹ͍ͯ͠·͢
Slide 4
Slide 4 text
SwiftUI ͷಛ • એݴܕγϯλοΫε • σβΠϯπʔϧ • ͯ͢ͷAppleϓϥοτϑΥʔϜͰωΠςΟϒʹ
Slide 5
Slide 5 text
એݴܕγϯλοΫε • UIΛγϯϓϧͳهड़Ͱ࣮ݱ • σʔλόΠϯσΟϯά
Slide 6
Slide 6 text
σβΠϯπʔϧ • ίʔυͱϓϨϏϡʔͷಉظ • ίʔυͰϓϨϏϡʔͰฤूͰ͖Δ • ෳͷϓϨϏϡʔΛಉ࣌ʹ֬ೝͰ͖Δ
Slide 7
Slide 7 text
ͯ͢ͷAppleϓϥοτϑΥʔϜͰ • ैདྷ iOS / watchOS / tvOS / macOS ͰҟͳΔϑϨʔ ϜϫʔΫͩͬͨ • ࠓޙ SwiftUI Λ֮͑Εશ෦࡞ΕΔ
Slide 8
Slide 8 text
SwiftUI ͱ ViewController
Slide 9
Slide 9 text
UIKit ͔Βݟͨ SwiftUI ͷಛ • ViewController ͕ͳ͍ • Storyboard ͕ͳ͍
Slide 10
Slide 10 text
ViewController • ViewController ॏཁͳׂͷଘࡏͩͬͨ • ͔͠͠ҰํͰɺѻ͍͕͍͠հͳଘࡏͩͬͨ • ࣮͕;͘Ε͕͋Δ͕ڧ͔ͬͨ • ֤छΞʔΩςΫνϟઃܭʢMVCɺMVVMɺClean ArchitectureɺFlux ͳͲʣΛ͏ࡍʹɺ ViewController ΛͲͷཱͪҐஔͰѻ͏ͷ͔͕͔ͬͨ͠
Slide 11
Slide 11 text
ղ์ • ͏ ViewController Ͱ·ͳ͍͍ͯ͘
Slide 12
Slide 12 text
ViewController ͷׂ • ը໘ͷཧ • UIύʔπͷϨΠΞτ • ը໘ͷϥΠϑαΠΫϧॲཧ • ը໘ͱσʔλͱͷ࿈ܞ • Ϣʔβ͔ΒͷೖྗΛड͚͚Δ • σʔλͷมߋΛը໘ʹग़ྗ͢Δ
Slide 13
Slide 13 text
SwiftUI Ͱ • View • UIύʔπͷϨΠΞτ • ը໘ͷϥΠϑαΠΫϧॲཧ • Combine • Ϣʔβ͔ΒͷೖྗΛड͚͚Δ • σʔλͷมߋΛը໘ʹग़ྗ͢Δ
Slide 14
Slide 14 text
ׂͷ • ΞʔΩςΫνϟઃܭͰ View ͱ Model ͷ͕େࣄ • ͦͷͨΊʹ View ͱσʔλόΠϯσΟϯάͱͷ͕େࣄ • ViewController ͦͷΛ͕͛ͪͩͬͨ • SwiftUI View ͱ Combine ͱʹͨ͠
Slide 15
Slide 15 text
֤छΞʔΩςΫνϟͷ࣮ͷ࠶ߟ • MVCɺMVVMɺClean ArchitectureɺFlux ͳͲͰɺ ViewController ΛͲ͜ʹҐஔ͚ͮΔ͔͍͠ • View ͳͷ͔ Controller ͳͷ͔ Presenter ͳͷ͔ɺ ͋Δ͍ผͷԿ͔͔ • SwiftUI ͰͦͷΈ͔Βղ์͞ΕΔ • ͨͩ͠σʔλόΠϯσΟϯάͷѻ͍ํࠓޙͷ՝
Slide 16
Slide 16 text
SwiftUI ͱ UIKit
Slide 17
Slide 17 text
UIKit Λར༻͢Δ • ݱঢ়ͰɺUIKit ͰͰ͖͍ͯͨ͜ͱ͕ SwiftUI ͰͰ͖ͳ͍ έʔε͕͋Δ • UIίϯϙʔωϯτ͕Γͳ͍ʢࠓޙՃ͞ΕΔ͔Ͳ͏͔ͳ Μͱݴ͑ͳ͍ʣ • ͦͷͨΊɺ෦తʹ UIView UIViewController ͷॿ ͚ΛआΓΔඞཁ͕ग़ͯ͘Δ
Slide 18
Slide 18 text
UIView ͷར༻ • UIViewRepresentable protocol • ެࣜνϡʔτϦΞϧͰɺMapKit ͷ MKMapView Λ SwiftUI ͷ View ͱͯ͠ѻ͏ྫ͕հ͞Ε͍ͯΔ
Slide 19
Slide 19 text
UIViewController ͷར༻ • UIViewControllerRepresentable protocol • ެࣜνϡʔτϦΞϧͰɺUIPageViewController Λ SwiftUI ͷ View ͱͯ͠ѻ͏ྫ͕հ͞Ε͍ͯΔ
Slide 20
Slide 20 text
݁ہ ViewController ͬͯΔ Ͷʁ • ͱ͍͑ɺSwiftUI ͷ View ͷΈʹ͓͞·͍ͬͯΔ • ΞʔΩςΫνϟઃܭͱͯ͠ɺViewController Λҙࣝ͠ͳ ͯ͘ྑ͘ͳͬͨ͜ͱʹมΘΓͳ͍
Slide 21
Slide 21 text
·ͱΊ
Slide 22
Slide 22 text
·ͱΊ • SwiftUI ͷಋೖʹΑͬͯɺΞʔΩςΫνϟઃܭͷࡍʹ ViewController ʹ͍ͭͯ಄Λ·ͤΔඞཁͳ͘ͳͬͨ • γϯϓϧͳ࣮Ͱ UI ͕࡞ΕΔΑ͏ʹͳͬͨ • ৽͍͠σʔλόΠϯσΟϯάͷΈʢSwiftUI + CombineʣΛͲͷΑ͏ʹΞʔΩςΫνϟઃܭͱ༥ͤ͞Δ͔ ࠓޙͷ՝
Slide 23
Slide 23 text
ࢀߟࢿྉ • SwiftUI (https://developer.apple.com/xcode/ swiftui/) • SwiftUI Tutorials (https://developer.apple.com/ tutorials/swiftui/) • SwiftUI References (https:// developer.apple.com/documentation/swiftui/) • WWDC19 Videos