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