iOSDC JAPAN 2021
AkkeyLab / AKIO ITAYA࣮ϓϩμΫτΛԻϦϦʔεͨ͠🚀WED, Inc.SwiftUIͰ1
View Slide
ࣗݾհ2
ࣗݾհ໊લɿAKIO ITAYAɹ/ɹAKKEYझຯɿۭؒσβΠϯ׆ಈɿ@AkkeyLab̧̥ɿγϧόʔˍTγϟπεϙϯαʔ ̧̥ɿݪߘ̎ίϯςϯπ߹ܭ̍̎ϖʔδ WED, Inc.ݩ Cyberagent, Inc.3
ࣗݾհ໊લɿAKIO ITAYAɹ/ɹAKKEYझຯɿۭؒσβΠϯ׆ಈɿ@AkkeyLab̧̥ɿγϧόʔˍTγϟπεϙϯαʔ ̧̥ɿݪߘ̎ίϯςϯπ߹ܭ̍̎ϖʔδ WED, Inc.ݩ Cyberagent, Inc.4
ࣗݾհ໊લɿAKIO ITAYAɹ/ɹAKKEYझຯɿۭؒσβΠϯ׆ಈɿ@AkkeyLab̧̥ɿγϧόʔˍTγϟπεϙϯαʔ ̧̥ɿݪߘ̎ίϯςϯπ߹ܭ̍̎ϖʔδ WED, Inc.ݩ Cyberagent, Inc.5
ࣗݾհ໊લɿAKIO ITAYAɹ/ɹAKKEYझຯɿۭؒσβΠϯ׆ಈɿ@AkkeyLab̧̥ɿγϧόʔˍTγϟπεϙϯαʔ ̧̥ɿݪߘ̎ίϯςϯπ߹ܭ̍̎ϖʔδ WED, Inc.ݩ Cyberagent, Inc.6
ࣗݾհCheck Novelty Box!!1SPEVDFECZ"LLFZ-BC7
ࣗݾհ໊લɿAKIO ITAYAɹ/ɹAKKEYझຯɿۭؒσβΠϯ׆ಈɿ@AkkeyLab̧̥ɿγϧόʔˍTγϟπεϙϯαʔ ̧̥ɿݪߘ̎ίϯςϯπ߹ܭ̍̎ϖʔδ WED, Inc.ݩ Cyberagent, Inc.8
Agenda1. SwiftUI Ͱ։ൃͨ͠ΞϓϦ2. SwiftUI ࠾༻ཧ༝3. SwiftUI ϨΠΞτςΫχοΫ4. UIKit ͷුؾ5. SwiftUI ະରԠϥΠϒϥϦ9
SwiftUI Ͱ։ൃͨ͠ΞϓϦ10
د͕͙ͦ͢ʹɻدઌͷஂମͱدϓϥϯΛબͿ͚ͩɻ1Ͱ؆୯ʹد͕Ͱ͖ΔΞϓϦͰ͢ɻدͷ͓ྱͱͯ͠ɺΦϦδφϧεςοΧʔ͕ಧ͘Έʹͳ͍ͬͯ·͢ɻ11
SwiftUISwiftUI ͱ UIKit ߹ܭΛ100%ͱͯ͠ܭࢉ95%Ҏ্12
EngineeriOS / GCF / Firebase DB01ਓ13
։ൃظؒେن༷มߋ2ճ࣮ࢪ02ϲ݄14
SwiftUI ࠾༻ཧ༝ॏཁʂ15
1. SwiftUI Ͱͷ։ൃྺ༗Γ2. ݱঢ়ͷ SwiftUI Ͱ࣮ݱͰ͖Δ UI3. ։ൃ 㲗 FB ͷճసεϐʔυΛॏཁࢹ4. SwiftUI ʹର͢ΔݟΛ૿͢SwiftUI ࠾༻ཧ༝16
1. SwiftUI Ͱͷ։ൃྺ༗Γ2. ݱঢ়ͷ SwiftUI Ͱ࣮ݱͰ͖Δ UI3. ։ൃ 㲗 FB ͷճసεϐʔυΛॏཁࢹ4. SwiftUI ʹର͢ΔݟΛ૿͢SwiftUI ࠾༻ཧ༝17
SwiftUI Ͱͷ։ൃྺ༗ΓiOS13 ਖ਼ࣜϦϦʔεϲ݄ޙݸਓͰ SwiftUI ΞϓϦΛϦϦʔε18
1. SwiftUI Ͱͷ։ൃྺ༗Γ2. ݱঢ়ͷ SwiftUI Ͱ࣮ݱͰ͖Δ UI3. ։ൃ 㲗 FB ͷճసεϐʔυΛॏཁࢹ4. SwiftUI ʹର͢ΔݟΛ૿͢SwiftUI ࠾༻ཧ༝19
ݱঢ়ͷ SwiftUI Ͱ࣮ݱͰ͖Δ UIiOS14 Ҏ͕߱λʔήοτࡉ͔͍Ξχϝʔγϣϯ؆୯ʹ࣮Ͱ͖Δ20
1. SwiftUI Ͱͷ։ൃྺ༗Γ2. ݱঢ়ͷ SwiftUI Ͱ࣮ݱͰ͖Δ UI3. ։ൃ 㲗 FB ͷճసεϐʔυΛॏཁࢹ4. SwiftUI ʹର͢ΔݟΛ૿͢SwiftUI ࠾༻ཧ༝21
։ൃ 㲗 FB ͷճసεϐʔυΛॏཁࢹXcode Previews ͰଈνʔϜڞ༗খ͞ͳεύϯͰ։ൃͱमਖ਼Λ܁Γฦ͢͜ͱ͕Մೳʂ22
1. SwiftUI Ͱͷ։ൃྺ༗Γ2. ݱঢ়ͷ SwiftUI Ͱ࣮ݱͰ͖Δ UI3. ։ൃ 㲗 FB ͷճసεϐʔυΛॏཁࢹ4. SwiftUI ʹର͢ΔݟΛ૿͢SwiftUI ࠾༻ཧ༝23
SwiftUI ʹର͢ΔݟΛ૿ۤ͢ઓՕॴΛத৺ʹΞτϓοτجຊతʹ SwiftUI ͱ͍͏ڧ੍͍Ͱଟ͘ͷֶͼΛಘͨ24
SwiftUI ϨΠΞτςΫχοΫେن༷มߋΣϧΧϜʂ25
1. UIKit ͱൺֱ͢ΔΧελϜϘλϯ2. εΫϦʔϯϩάͰֶͿॲཧͷڞ௨Խ3. ΞχϝʔγϣϯͷରԠSwiftUI ϨΠΞτςΫχοΫ26
1. UIKit ͱൺֱ͢ΔΧελϜϘλϯ2. εΫϦʔϯϩάͰֶͿॲཧͷڞ௨Խ3. ΞχϝʔγϣϯͷରԠSwiftUI ϨΠΞτςΫχοΫ27
SwiftUI ϨΠΞτςΫχοΫօ͞ΜɺͲͷΑ͏ʹ࡞Γ·͔͢ʁ28
UIKit ver.29
SwiftUI ϨΠΞτςΫχοΫ30
SwiftUI ϨΠΞτςΫχοΫUIButton Λܧঝͨ͠ΧελϜΫϥεΛ࡞31
SwiftUI ϨΠΞτςΫχοΫΦʔόʔϥΠυͯ͠ػೳΛΧελϚΠζ͍ͯ͘͠32
SwiftUI ϨΠΞτςΫχοΫҙͷλΠϛϯάͰ০33
SwiftUI ver.34
SwiftUI ϨΠΞτςΫχοΫ35
SwiftUI ϨΠΞτςΫχοΫButton ΛؚΉΧελϜϏϡʔΛ࡞36
SwiftUI ϨΠΞτςΫχοΫ০ελΠϧͱͯ͠ผఆٛPoint !37
SwiftUI ϨΠΞτςΫχοΫButtonStyle Protocol ʹ४ڌͨ͠ߏମΛఆٛ38
SwiftUI ϨΠΞτςΫχοΫButtonStyleConfiguration ߏମΛҾʹऔΔؔΛએݴ39
SwiftUI ϨΠΞτςΫχοΫButtonStyleConfiguration ʹ Button ͷ Label ؚ͕·ΕΔ40
SwiftUI ϨΠΞτςΫχοΫϝιουνΣʔϯͰ০ΞχϝʔγϣϯΛࢪ͢41
SwiftUI ϨΠΞτςΫχοΫButtonStyleConfiguration ʹ ԡ͞Ε͍ͯΔ͔Λࣔ͢ϑϥάؚ͕·ΕΔ42
SwiftUI ϨΠΞτςΫχοΫbuttonStyle ϝιουʹελΠϧͷΠϯελϯεΛ͚ͩ͢43
1. UIKit ͱൺֱ͢ΔΧελϜϘλϯ2. εΫϦʔϯϩάͰֶͿॲཧͷڞ௨Խ3. ΞχϝʔγϣϯͷରԠSwiftUI ϨΠΞτςΫχοΫ44
SwiftUI ϨΠΞτςΫχοΫօ͞ΜɺͲͷΑ͏ʹεΫϦʔϯϩάऔΓ·͔͢ʁ45
SwiftUI ϨΠΞτςΫχοΫ46
SwiftUI ϨΠΞτςΫχοΫڞ௨ॲཧ ViewModifier ͱͯ͠ผఆٛ47Point !
SwiftUI ϨΠΞτςΫχοΫ48
ViewModifier Protocol ʹ४ڌͨ͠ߏମΛఆٛSwiftUI ϨΠΞτςΫχοΫ49
Modifier Λࢦఆͨ͠ରͷ View ͕ͬͯ͘ΔSwiftUI ϨΠΞτςΫχοΫ50
ରͱͳΔ View ͷ onAppear ͰॲཧΛ࣮ߦSwiftUI ϨΠΞτςΫχοΫ51
͜͜Ͱ০Λߦ͑ ϨΠΞτͷڞ௨Խ͕ՄೳʹSwiftUI ϨΠΞτςΫχοΫ52
1. UIKit ͱൺֱ͢ΔΧελϜϘλϯ2. εΫϦʔϯϩάͰֶͿॲཧͷڞ௨Խ3. ΞχϝʔγϣϯͷରԠSwiftUI ϨΠΞτςΫχοΫ53
SwiftUI ϨΠΞτςΫχοΫ54
AnimatableModifier Protocol ʹ४ڌͨ͠ߏମΛఆٛSwiftUI ϨΠΞτςΫχοΫ55
͜ͷมߋ͕Ξχϝʔγϣϯ͠ͳ͕ΒదԠ͞ΕΔΑ͏ʹͳΔSwiftUI ϨΠΞτςΫχοΫ56
UIKit ͷුؾ̑ˋͷ57
1. ුؾ૬ख2. ෦తʹ UIKit Λར༻͢Δํ๏3. ৄͪ͘͜͠ΒʂUIKit ͷුؾ58
1. ුؾ૬ख2. ෦తʹ UIKit Λར༻͢Δํ๏3. ৄͪ͘͜͠ΒʂUIKit ͷුؾ59
UIKit ͷුؾTextField ͕ඞཁͳը໘ UIKit Ͱ։ൃ60
UIKit ͷුؾ61InputAccessoryView؆୯ʹΩʔϘʔυϝχϡʔΛ࡞Մೳ
UIKit ͷුؾ62BecomeFirstResponder࣍ͷೖྗཝʹࣗಈҠಈՄೳ※ iOS15 ͔Β SwiftUI Ͱਖ਼ࣜαϙʔτ
UIKit ͷුؾ63UIScrollView.setContentOffsetೖྗͷ͛ʹͳΒͳ͍ҐஔʹεΫϩʔϧ
1. ුؾ૬ख2. ෦తʹ UIKit Λར༻͢Δํ๏3. ৄͪ͘͜͠ΒʂUIKit ͷුؾ64
SwiftUI ϨΠΞτςΫχοΫ65
UIViewControllerRepresentable Protocol ʹ४ڌͨ͠ߏମΛఆٛSwiftUI ϨΠΞτςΫχοΫ66
UIKit Ͱߏஙͨ͠ΫϥεΛॳظԽSwiftUI ϨΠΞτςΫχοΫ67
SwiftUI ϨΠΞτςΫχοΫ68
SwiftUI ϨΠΞτςΫχοΫ69
SwiftUI ϨΠΞτςΫχοΫ70
UI өSwiftUI ϨΠΞτςΫχοΫ71
1. ුؾ૬ख2. ෦తʹ UIKit Λར༻͢Δํ๏3. ৄͪ͘͜͠ΒʂUIKit ͷුؾ72
UIKit ͷුؾiOSDC ެࣜύϯϑϨοτܝࡌUIKit ුؾͤ͟ΔΛಘͳ͍͔ҰॠͰஅʂ73
SwiftUI ະରԠϥΠϒϥϦ༉அېʂ74
1. ࠇຐज़Λར༻͍ͯ͠ΔSDK2. σόοάπʔϧSwiftUI ະରԠϥΠϒϥϦ75
1. ࠇຐज़Λར༻͍ͯ͠ΔSDK2. σόοάπʔϧSwiftUI ະରԠϥΠϒϥϦ76
SwiftUI ະରԠϥΠϒϥϦࣗಈͰεΫϦʔϯϩάΛऔಘͰ͖ͳ͍77
1. ࠇຐज़Λར༻͍ͯ͠ΔSDK2. σόοάπʔϧSwiftUI ະରԠϥΠϒϥϦ78
SwiftUI ະରԠϥΠϒϥϦdani-gavrilov/GDPerformanceView-Swift79
Summary80
Summary1. dim. SwiftUI Ͱ։ൃ͞Εͨ2. ݅࣍ୈͰ SwiftUI ࠾༻Ձ͋Γ3. ButtonStyle, ViewModifier4. UIKit ͓Εͳ͘5. ֎෦ϥΠϒϥϦͷಈ࡞֬ೝ৻ॏʹ81
Summary1. dim. SwiftUI Ͱ։ൃ͞Εͨ2. ݅࣍ୈͰ SwiftUI ࠾༻Ձ͋Γ3. ButtonStyle, ViewModifier4. UIKit ͓Εͳ͘5. ֎෦ϥΠϒϥϦͷಈ࡞֬ೝ৻ॏʹ82
Summary1. dim. SwiftUI Ͱ։ൃ͞Εͨ2. ݅࣍ୈͰ SwiftUI ࠾༻Ձ͋Γ3. ButtonStyle, ViewModifier4. UIKit ͓Εͳ͘5. ֎෦ϥΠϒϥϦͷಈ࡞֬ೝ৻ॏʹ83
Summary1. dim. SwiftUI Ͱ։ൃ͞Εͨ2. ݅࣍ୈͰ SwiftUI ࠾༻Ձ͋Γ3. ButtonStyle, ViewModifier4. UIKit ͓Εͳ͘5. ֎෦ϥΠϒϥϦͷಈ࡞֬ೝ৻ॏʹ84
Summary1. dim. SwiftUI Ͱ։ൃ͞Εͨ2. ݅࣍ୈͰ SwiftUI ࠾༻Ձ͋Γ3. ButtonStyle, ViewModifier4. UIKit ͓Εͳ͘5. ֎෦ϥΠϒϥϦͷಈ࡞֬ೝ৻ॏʹ85
@AkkeyLab86
Thank you !!87