Slide 1

Slide 1 text

4XJGU6*ͰมΘΔJ04։ൃ ਫ J04"OESPJE%FWFMPQFST/JHIUXJUI)","5"TXJGU Ϋϥεϝιουɺ)","5"TXJGUాத޹໌

Slide 2

Slide 2 text

ࣗݾ঺հ wΫϥεϝιουגࣜձࣾ w෱ԬΦϑΟεॴଐ w$9ࣄۀຊ෦ wϞόΠϧΞϓϦΤϯδχΞ wαʔόʔαΠυΞϓϦΤϯδχΞ ాத޹໌ @kongmingtrap

Slide 3

Slide 3 text

HAKATA.swift wझຯ࢓ࣄͰ4XJGUʹ৮Ε͍ͯΔํ w4XJGUΛ༻͍ͨJ04։ൃʹܞΘ͍ͬͯΔํ w͜Ε͔Β4XJGUͷษڧΛ͸͡ΊΔͱ͍͏ํ wͳΜ͔4XJGU͕޷͖ͩͱ͍͏ํ

Slide 4

Slide 4 text

ࠓճ࿩͢͜ͱ • SwiftUI ͕ग़Δલͷ࿩ • SwiftUI ʹ͍ͭͯ • SwiftUI ͱ Property Wrappers • ݱ؀ڥͱͷڞଘ

Slide 5

Slide 5 text

SwiftUI ͕ग़Δલͷ࿩

Slide 6

Slide 6 text

SwiftUI ͕ग़Δલͷ࿩ ʙAuto LayoutΛऔΓר͘؀ڥͷ࿩ʙ

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Auto Layoutͷੈք͸޿͍

Slide 10

Slide 10 text

https://qiita.com/inamiy/items/a6f73438b32896ffa81e

Slide 11

Slide 11 text

http://elhoshino.hatenablog.com/

Slide 12

Slide 12 text

ਓྨʹAuto Layout͸ૣ͗ͨ͢ ※ݸਓͷҙݟͰ͢

Slide 13

Slide 13 text

SwiftUIʹ͍ͭͯ

Slide 14

Slide 14 text

SwiftUIΛֶͿʹ͸ • ެࣜͷνϡʔτϦΞϧΛ৮ͬͯΈΔͷ͕ۙಓ https://developer.apple.com/tutorials/swiftui/creating-and-combining-views

Slide 15

Slide 15 text

SwiftUI • WWDC19 Ͱൃද͞Εͨɺ InterfaceBuilder -> Storyboard ʹ͙࣍ɺUIΛߏங͢ΔͨΊͷframework • ViewControllerΛհࡏͤ͞ͳ͍৽͍֓͠೦ • ϨΠΞ΢τΛίʔυͰදݱͰ͖ΔͨΊɺAutolayoutͳͲͷ ෳࡶͳ֓೦Λ࢖Θͳ͍Ͱը໘ΛߏஙͰ͖Δ • ϓϨϏϡʔػೳͰίʔσΟϯά͠ͳ͕Βɺ࡞੒தͷը໘ͷ ֬ೝ͕Ͱ͖ΔʢmacOS / CatalinaҎ߱ʣ • DarkMode͕σϑΥϧτͰରԠ

Slide 16

Slide 16 text

SwiftUIͱطଘ෦඼ͷରԠ [Swift] SwiftUIͷνʔτγʔτ

Slide 17

Slide 17 text

SwiftUIͱطଘ෦඼ͷରԠ [Swift] SwiftUIͷνʔτγʔτ

Slide 18

Slide 18 text

SwiftUIͱطଘ෦඼ͷରԠ [Swift] SwiftUIͷνʔτγʔτ • ॻ͍ͨίʔυͷ಺ ༰͕ϦΞϧλΠϜ ͰϓϨϏϡʔʹඳ ը͞ΕΔ • ϥΠϒϓϨϏϡʔ ͸macOS / CatalinaҎ߱

Slide 19

Slide 19 text

SwiftUIͱطଘ෦඼ͷରԠ [Swift] SwiftUIͷνʔτγʔτ

Slide 20

Slide 20 text

SwiftUIͱطଘ෦඼ͷରԠ [Swift] SwiftUIͷνʔτγʔτ

Slide 21

Slide 21 text

SwiftUIͱطଘ෦඼ͷରԠ [Swift] SwiftUIͷνʔτγʔτ

Slide 22

Slide 22 text

SwiftUIͱطଘ෦඼ͷରԠ [Swift] SwiftUIͷνʔτγʔτ

Slide 23

Slide 23 text

SwiftUI ͱ Property Wrappers

Slide 24

Slide 24 text

SwiftUI ͱ Property Wrappers • Property Wrappers ͱ͍͏ػߏΛ࢖ͬͯɺඳըʹӨڹ͋Δ σʔλͷ΍ΓऔΓΛεϚʔτʹߦ͏ https://developer.apple.com/videos/play/wwdc2019/226/

Slide 25

Slide 25 text

SwiftUI ͱ Property Wrappers • @State • @Binding • ObservableObject • ObservableObject • ˏObservedObject • Environment • @EnvironmentObject • @Environment • ˏGestureState

Slide 26

Slide 26 text

SwiftUI ͱ Property Wrappers (@State) • @State • UIͷঢ়ଶͱεςʔτม਺Λࣗಈతʹಉظ͢Δ࢓૊Έ • εςʔτม਺Λมߋ͢ΔͱUI͕ߋ৽͞Εɺ·ͨUIΛมߋ ͢Δͱεςʔτม਺͕ߋ৽͞ΕΔ https://developer.apple.com/videos/play/wwdc2019/226/

Slide 27

Slide 27 text

SwiftUI ͱ Property Wrappers (@State) https://medium.com/@martinlasek/swiftui-understanding-binding-8e20269a76bc

Slide 28

Slide 28 text

SwiftUI ͱ Property Wrappers (@State) https://medium.com/@martinlasek/swiftui-understanding-binding-8e20269a76bc • Ϙλϯૢ࡞Ͱτάϧͨ͠ showDetailsม਺ͷ಺༰ʹ Ԡͯ͡ɺςΩετʹදࣔ͢ Δ಺༰Λมߋ͢Δ

Slide 29

Slide 29 text

SwiftUI ͱ Property Wrappers (@Binding) • @Binding • ஋Λࢀর͢ΔଆͷViewͷϓϩύςΟʹએݴ͢Δ͜ͱͰɺ ผͷViewͷ @State ͳͲͷ஋ͷߋ৽௨஌Λड͚औΕΔ https://developer.apple.com/videos/play/wwdc2019/226/

Slide 30

Slide 30 text

SwiftUI ͱ Property Wrappers (@Binding) https://medium.com/@martinlasek/swiftui-understanding-binding-8e20269a76bc

Slide 31

Slide 31 text

SwiftUI ͱ Property Wrappers (@Binding) https://medium.com/@martinlasek/swiftui-understanding-binding-8e20269a76bc • ToggleTextButton಺ͷॲཧʹΑ Δɺ isOn ͷมԽΛ showDetails Ͱड͚ɺͦͷ಺༰ʹԠͯ͡ɺςΩ ετʹදࣔ͢Δ಺༰Λมߋ͢Δ

Slide 32

Slide 32 text

SwiftUI ͱ Property Wrappers (ObservableObject) • ObservableObject ͱ ˏObservedObject • ஋ͷߋ৽Λ௨஌͢ΔΫϥεΛ ObservableObject ϓϩτ ίϧʹద߹ͤ͞Δͱɺ ˏObservedObject Λએݴͨ͠ϓ ϩύςΟ΁ߋ৽௨஌Λߦ͏Α͏ʹͳΔ https://developer.apple.com/videos/play/wwdc2019/226/

Slide 33

Slide 33 text

SwiftUI ͱ Property Wrappers (ObservableObject) https://developer.apple.com/videos/play/wwdc2019/226/

Slide 34

Slide 34 text

SwiftUI ͱ Property Wrappers (ObservableObject) https://developer.apple.com/videos/play/wwdc2019/226/ • ObservableObjectΛ ద߹ͨ͠ΦϒδΣΫτ ͷมߋ಺༰Λ @ObservedObject Ͱ ఆٛͨ͠ΦϒδΣΫτ ʹରͯ͠ɺมߋ௨஌Λ ૹΕΔ

Slide 35

Slide 35 text

SwiftUI ͱ Property Wrappers (Environment) • Environment • Viewͷ֊૚શମʹ·͕ͨΔΑ͏ͳઃఆΛڞ༗͢Δ࢓૊Έ https://developer.apple.com/videos/play/wwdc2019/226/

Slide 36

Slide 36 text

SwiftUI ͱ Property Wrappers (@EnvironmentObject) • @EnvironmentObject • Environment ͷதʹΧελϜͳ஋ΛઃఆͰ͖Δ • ࢠView΁σʔλΛ౉͢ͷʹViewͷ֊૚Λḷ͍ͬͯ͘ඞཁ ͕ͳ͘ͳΔ https://developer.apple.com/videos/play/wwdc2019/226/

Slide 37

Slide 37 text

SwiftUI ͱ Property Wrappers (@EnvironmentObject) https://developer.apple.com/videos/play/wwdc2019/226/

Slide 38

Slide 38 text

SwiftUI ͱ Property Wrappers (@EnvironmentObject) https://developer.apple.com/videos/play/wwdc2019/226/ • ObservableObjectΛద߹ͨ͠Φ ϒδΣΫτͷมߋ಺༰Λ @EnvironmentObject Ͱఆٛ͠ ͨΦϒδΣΫτʹରͯ͠ɺ֤ Viewʹରͯ͠ɺมߋ௨஌ΛૹΕ Δ

Slide 39

Slide 39 text

SwiftUI ͱ Property Wrappers (@Environment) • @Environment • EnvironmentValues ʹࣄલʹఆٛ͞Ε͍ͯΔ஋Λ࢖͍ɺ Environment શମʹ·͕ͨΔઃఆͷऔಘɺߋ৽͕Ͱ͖Δ https://developer.apple.com/videos/play/wwdc2019/226/

Slide 40

Slide 40 text

SwiftUI ͱ Property Wrappers (@GestureState) • @GestureState • ಛఆͷViewʹର͢Δ௕ԡ͠΍ճసͳͲͷط஌ͷδΣε νϟʔύλʔϯΛೝࣝ͢Δ • ύλʔϯ͕Ұகͨ࣌͠ʹSwiftUI͸Ϗϡʔͷঢ়ଶΛߋ৽͠ ͨΓɺΞΫγϣϯΛ࣮ߦͨ͠Γ͢ΔͨΊͷίʔϧόοΫΛ ࣮ߦ͢Δ • ৄ͘͠͸ Adding Interactivity with Gestures ΛΈͯͶʂ https://developer.apple.com/documentation/swiftui/gestures/adding_interactivity_with_gestures

Slide 41

Slide 41 text

SwiftUI ͱ Combine framework

Slide 42

Slide 42 text

SwiftUI ͱ Combine framework ※͘͝Ұ෦͚ͩ঺հ

Slide 43

Slide 43 text

SwiftUI ͱ Combine framework • Combine framework • ඇಉظͳσʔλΛॲཧ͢ΔͨΊͷframeworkͰPub / Sub ͳ࢓૊ΈΛఏڙ

Slide 44

Slide 44 text

SwiftUI ͱ Combine framework https://developer.apple.com/documentation/combine

Slide 45

Slide 45 text

SwiftUI ͱ Combine framework https://developer.apple.com/documentation/combine

Slide 46

Slide 46 text

ݱ؀ڥͱͷڞଘ

Slide 47

Slide 47 text

UIHostingController • طଘͷ UIViewController ʹ SwiftUI Λ૊ΈࠐΉͨΊͷ Controller https://developer.apple.com/documentation/swiftui/uihostingcontroller

Slide 48

Slide 48 text

UIViewRepresentable • SwiftUI ʹطଘͷ UIView෦඼ Λ૊ΈࠐΉͨΊͷ࢓૊Έ https://developer.apple.com/documentation/swiftui/uiviewrepresentable

Slide 49

Slide 49 text

͍͞͝ʹ

Slide 50

Slide 50 text

iOS 13ະຬͷ։ൃ͸͙͢ʹ΍ΊΔ΂͖ ※ݸਓͷҙݟͰ͢

Slide 51

Slide 51 text

͍͞͝ʹ • SwiftUI ͸ग़ͨ͹͔ΓͷػೳͳͷͰɺ૝ఆ௨ΓʹϨΠΞ΢τ Ͱ͖ͳ͔ͬͨΓ͢Δ • ͲΜͲΜϑΟʔυόοΫ͠Α͏ • AutolayoutΛ࢖Θ͟ΔΛಘͳ͍ঢ়گ͸ൃੜ͢Δ • ೲظ͕ݫ͍͠৔߹͸ Storyboard ͷ΄͏͕ແ೉ • طଘͷ։ൃ؀ڥͱͷڞଘ͸Մೳ • (….͋·Γ΍Γͨ͘͸ͳ͍….)

Slide 52

Slide 52 text

ͱ͍͏Θ͚ͰHAKATA.swiftͰ͓଴ͪͯ͠·͢ʂ wझຯ࢓ࣄͰ4XJGUʹ৮Ε͍ͯΔํ w4XJGUΛ༻͍ͨJ04։ൃʹܞΘ͍ͬͯΔํ w͜Ε͔Β4XJGUͷษڧΛ͸͡ΊΔͱ͍͏ํ wͳΜ͔4XJGU͕޷͖ͩͱ͍͏ํ