Slide 1

Slide 1 text

AkkeyLab / AKIO ITAYA ࣮ϓϩμΫτΛԻ଎ϦϦʔεͨ͠࿩🚀 WED, Inc. SwiftUIͰ 1

Slide 2

Slide 2 text

ࣗݾ঺հ 2

Slide 3

Slide 3 text

ࣗݾ঺հ ໊લɿAKIO ITAYAɹ/ɹAKKEY झຯɿۭؒσβΠϯ ׆ಈɿ@AkkeyLab ̧̥ɿγϧόʔˍTγϟπεϙϯαʔ 
 ̧̥ɿݪߘ̎ίϯςϯπ߹ܭ̍̎ϖʔδ 
 
 WED, Inc. ݩ Cyberagent, Inc. 3

Slide 4

Slide 4 text

ࣗݾ঺հ ໊લɿAKIO ITAYAɹ/ɹAKKEY झຯɿۭؒσβΠϯ ׆ಈɿ@AkkeyLab ̧̥ɿγϧόʔˍTγϟπεϙϯαʔ 
 ̧̥ɿݪߘ̎ίϯςϯπ߹ܭ̍̎ϖʔδ 
 
 WED, Inc. ݩ Cyberagent, Inc. 4

Slide 5

Slide 5 text

ࣗݾ঺հ ໊લɿAKIO ITAYAɹ/ɹAKKEY झຯɿۭؒσβΠϯ ׆ಈɿ@AkkeyLab ̧̥ɿγϧόʔˍTγϟπεϙϯαʔ 
 ̧̥ɿݪߘ̎ίϯςϯπ߹ܭ̍̎ϖʔδ 
 
 WED, Inc. ݩ Cyberagent, Inc. 5

Slide 6

Slide 6 text

ࣗݾ঺հ ໊લɿAKIO ITAYAɹ/ɹAKKEY झຯɿۭؒσβΠϯ ׆ಈɿ@AkkeyLab ̧̥ɿγϧόʔˍTγϟπεϙϯαʔ 
 ̧̥ɿݪߘ̎ίϯςϯπ߹ܭ̍̎ϖʔδ 
 
 WED, Inc. ݩ Cyberagent, Inc. 6

Slide 7

Slide 7 text

ࣗݾ঺հ Check Novelty Box!! 1SPEVDFECZ"LLFZ-BC 7

Slide 8

Slide 8 text

ࣗݾ঺հ ໊લɿAKIO ITAYAɹ/ɹAKKEY झຯɿۭؒσβΠϯ ׆ಈɿ@AkkeyLab ̧̥ɿγϧόʔˍTγϟπεϙϯαʔ 
 ̧̥ɿݪߘ̎ίϯςϯπ߹ܭ̍̎ϖʔδ 
 
 WED, Inc. ݩ Cyberagent, Inc. 8

Slide 9

Slide 9 text

Agenda 1. SwiftUI Ͱ։ൃͨ͠ΞϓϦ 2. SwiftUI ࠾༻ཧ༝ 3. SwiftUI ϨΠΞ΢τςΫχοΫ 4. UIKit ΁ͷුؾ 5. SwiftUI ະରԠϥΠϒϥϦ 9

Slide 10

Slide 10 text

SwiftUI Ͱ։ൃͨ͠ΞϓϦ 10

Slide 11

Slide 11 text

د෇͕͙ͦ͢͹ʹɻ د෇ઌͷஂମͱد෇ϓϥϯΛબͿ͚ͩɻ1෼Ͱ ؆୯ʹد෇͕Ͱ͖ΔΞϓϦͰ͢ɻد෇ͷ͓ྱ ͱͯ͠ɺΦϦδφϧεςοΧʔ͕ಧ͘࢓૊Έ ʹͳ͍ͬͯ·͢ɻ 11

Slide 12

Slide 12 text

SwiftUI SwiftUI ͱ UIKit ߹ܭΛ100%ͱͯ͠ܭࢉ 95% Ҏ্ 12

Slide 13

Slide 13 text

Engineer iOS / GCF / Firebase DB 01 ਓ 13

Slide 14

Slide 14 text

։ൃظؒ େن໛࢓༷มߋ2ճ࣮ࢪ 02 ϲ݄ 14

Slide 15

Slide 15 text

SwiftUI ࠾༻ཧ༝ ॏཁʂ 15

Slide 16

Slide 16 text

1. SwiftUI Ͱͷ։ൃྺ༗Γ 2. ݱঢ়ͷ SwiftUI Ͱ࣮ݱͰ͖Δ UI 3. ։ൃ 㲗 FB ͷճసεϐʔυΛॏཁࢹ 4. SwiftUI ʹର͢Δ஌ݟΛ૿΍͢ SwiftUI ࠾༻ཧ༝ 16

Slide 17

Slide 17 text

1. SwiftUI Ͱͷ։ൃྺ༗Γ 2. ݱঢ়ͷ SwiftUI Ͱ࣮ݱͰ͖Δ UI 3. ։ൃ 㲗 FB ͷճసεϐʔυΛॏཁࢹ 4. SwiftUI ʹର͢Δ஌ݟΛ૿΍͢ SwiftUI ࠾༻ཧ༝ 17

Slide 18

Slide 18 text

SwiftUI Ͱͷ։ൃྺ༗Γ iOS13 ਖ਼ࣜϦϦʔε਺ϲ݄ޙ ݸਓͰ SwiftUI ੡ΞϓϦΛϦϦʔε 18

Slide 19

Slide 19 text

1. SwiftUI Ͱͷ։ൃྺ༗Γ 2. ݱঢ়ͷ SwiftUI Ͱ࣮ݱͰ͖Δ UI 3. ։ൃ 㲗 FB ͷճసεϐʔυΛॏཁࢹ 4. SwiftUI ʹର͢Δ஌ݟΛ૿΍͢ SwiftUI ࠾༻ཧ༝ 19

Slide 20

Slide 20 text

ݱঢ়ͷ SwiftUI Ͱ࣮ݱͰ͖Δ UI iOS14 Ҏ͕߱λʔήοτ ࡉ͔͍Ξχϝʔγϣϯ΋؆୯ʹ࣮૷Ͱ͖Δ 20

Slide 21

Slide 21 text

1. SwiftUI Ͱͷ։ൃྺ༗Γ 2. ݱঢ়ͷ SwiftUI Ͱ࣮ݱͰ͖Δ UI 3. ։ൃ 㲗 FB ͷճసεϐʔυΛॏཁࢹ 4. SwiftUI ʹର͢Δ஌ݟΛ૿΍͢ SwiftUI ࠾༻ཧ༝ 21

Slide 22

Slide 22 text

։ൃ 㲗 FB ͷճసεϐʔυΛॏཁࢹ Xcode Previews ͰଈνʔϜ΁ڞ༗ খ͞ͳεύϯͰ։ൃͱमਖ਼Λ܁Γฦ͢͜ͱ͕Մೳʂ 22

Slide 23

Slide 23 text

1. SwiftUI Ͱͷ։ൃྺ༗Γ 2. ݱঢ়ͷ SwiftUI Ͱ࣮ݱͰ͖Δ UI 3. ։ൃ 㲗 FB ͷճసεϐʔυΛॏཁࢹ 4. SwiftUI ʹର͢Δ஌ݟΛ૿΍͢ SwiftUI ࠾༻ཧ༝ 23

Slide 24

Slide 24 text

SwiftUI ʹର͢Δ஌ݟΛ૿΍͢ ۤઓՕॴΛத৺ʹΞ΢τϓοτ΋ جຊతʹ SwiftUI ͱ͍͏ڧ੍͍໿Ͱଟ͘ͷֶͼΛಘͨ 24

Slide 25

Slide 25 text

SwiftUI ϨΠΞ΢τςΫχοΫ େن໛࢓༷มߋ΋΢ΣϧΧϜʂ 25

Slide 26

Slide 26 text

1. UIKit ͱൺֱ͢ΔΧελϜϘλϯ 2. εΫϦʔϯϩάͰֶͿॲཧͷڞ௨Խ 3. Ξχϝʔγϣϯ΁ͷରԠ SwiftUI ϨΠΞ΢τςΫχοΫ 26

Slide 27

Slide 27 text

1. UIKit ͱൺֱ͢ΔΧελϜϘλϯ 2. εΫϦʔϯϩάͰֶͿॲཧͷڞ௨Խ 3. Ξχϝʔγϣϯ΁ͷରԠ SwiftUI ϨΠΞ΢τςΫχοΫ 27

Slide 28

Slide 28 text

SwiftUI ϨΠΞ΢τςΫχοΫ օ͞Μ͸ɺͲͷΑ͏ʹ࡞Γ·͔͢ʁ 28

Slide 29

Slide 29 text

UIKit ver. 29

Slide 30

Slide 30 text

SwiftUI ϨΠΞ΢τςΫχοΫ 30

Slide 31

Slide 31 text

SwiftUI ϨΠΞ΢τςΫχοΫ UIButton Λܧঝͨ͠ΧελϜΫϥεΛ࡞੒ 31

Slide 32

Slide 32 text

SwiftUI ϨΠΞ΢τςΫχοΫ ΦʔόʔϥΠυͯ͠ػೳΛΧελϚΠζ͍ͯ͘͠ 32

Slide 33

Slide 33 text

SwiftUI ϨΠΞ΢τςΫχοΫ ೚ҙͷλΠϛϯάͰ૷০ 33

Slide 34

Slide 34 text

SwiftUI ver. 34

Slide 35

Slide 35 text

SwiftUI ϨΠΞ΢τςΫχοΫ 35

Slide 36

Slide 36 text

SwiftUI ϨΠΞ΢τςΫχοΫ Button ΛؚΉΧελϜϏϡʔΛ࡞੒ 36

Slide 37

Slide 37 text

SwiftUI ϨΠΞ΢τςΫχοΫ ૷০͸ελΠϧͱͯ͠ผఆٛ Point ! 37

Slide 38

Slide 38 text

SwiftUI ϨΠΞ΢τςΫχοΫ ButtonStyle Protocol ʹ४ڌͨ͠ߏ଄ମΛఆٛ 38

Slide 39

Slide 39 text

SwiftUI ϨΠΞ΢τςΫχοΫ ButtonStyleCon fi guration ߏ଄ମΛҾ਺ʹऔΔؔ਺Λએݴ 39

Slide 40

Slide 40 text

SwiftUI ϨΠΞ΢τςΫχοΫ ButtonStyleCon fi guration ʹ͸ Button ͷ Label ؚ͕·ΕΔ 40

Slide 41

Slide 41 text

SwiftUI ϨΠΞ΢τςΫχοΫ ϝιουνΣʔϯͰ૷০΍ΞχϝʔγϣϯΛࢪ͢ 41

Slide 42

Slide 42 text

SwiftUI ϨΠΞ΢τςΫχοΫ ButtonStyleCon fi guration ʹ͸ ԡ͞Ε͍ͯΔ͔Λࣔ͢ϑϥάؚ͕·ΕΔ 42

Slide 43

Slide 43 text

SwiftUI ϨΠΞ΢τςΫχοΫ buttonStyle ϝιουʹελΠϧͷΠϯελϯεΛ౉͚ͩ͢ 43

Slide 44

Slide 44 text

1. UIKit ͱൺֱ͢ΔΧελϜϘλϯ 2. εΫϦʔϯϩάͰֶͿॲཧͷڞ௨Խ 3. Ξχϝʔγϣϯ΁ͷରԠ SwiftUI ϨΠΞ΢τςΫχοΫ 44

Slide 45

Slide 45 text

SwiftUI ϨΠΞ΢τςΫχοΫ օ͞Μ͸ɺͲͷΑ͏ʹεΫϦʔϯϩάऔΓ·͔͢ʁ 45

Slide 46

Slide 46 text

SwiftUI ϨΠΞ΢τςΫχοΫ 46

Slide 47

Slide 47 text

SwiftUI ϨΠΞ΢τςΫχοΫ ڞ௨ॲཧ͸ ViewModi fi er ͱͯ͠ผఆٛ 47 Point !

Slide 48

Slide 48 text

SwiftUI ϨΠΞ΢τςΫχοΫ 48

Slide 49

Slide 49 text

ViewModi fi er Protocol ʹ४ڌͨ͠ߏ଄ମΛఆٛ SwiftUI ϨΠΞ΢τςΫχοΫ 49

Slide 50

Slide 50 text

Modi fi er Λࢦఆͨ͠ର৅ͷ View ͕౉ͬͯ͘Δ SwiftUI ϨΠΞ΢τςΫχοΫ 50

Slide 51

Slide 51 text

ର৅ͱͳΔ View ͷ
 onAppear ͰॲཧΛ࣮ߦ SwiftUI ϨΠΞ΢τςΫχοΫ 51

Slide 52

Slide 52 text

͜͜Ͱ૷০Λߦ͑͹
 ϨΠΞ΢τͷڞ௨Խ͕Մೳʹ SwiftUI ϨΠΞ΢τςΫχοΫ 52

Slide 53

Slide 53 text

1. UIKit ͱൺֱ͢ΔΧελϜϘλϯ 2. εΫϦʔϯϩάͰֶͿॲཧͷڞ௨Խ 3. Ξχϝʔγϣϯ΁ͷରԠ SwiftUI ϨΠΞ΢τςΫχοΫ 53

Slide 54

Slide 54 text

SwiftUI ϨΠΞ΢τςΫχοΫ 54

Slide 55

Slide 55 text

AnimatableModi fi er Protocol ʹ४ڌͨ͠ߏ଄ମΛఆٛ SwiftUI ϨΠΞ΢τςΫχοΫ 55

Slide 56

Slide 56 text

͜ͷมߋ͕Ξχϝʔγϣϯ͠ͳ͕ΒదԠ͞ΕΔΑ͏ʹͳΔ SwiftUI ϨΠΞ΢τςΫχοΫ 56

Slide 57

Slide 57 text

UIKit ΁ͷුؾ ̑ˋͷ 57

Slide 58

Slide 58 text

1. ුؾ૬ख 2. ෦෼తʹ UIKit Λར༻͢Δํ๏ 3. ৄ͘͠͸ͪ͜Βʂ UIKit ΁ͷුؾ 58

Slide 59

Slide 59 text

1. ුؾ૬ख 2. ෦෼తʹ UIKit Λར༻͢Δํ๏ 3. ৄ͘͠͸ͪ͜Βʂ UIKit ΁ͷුؾ 59

Slide 60

Slide 60 text

UIKit ΁ͷුؾ TextField ͕ඞཁͳը໘͸ UIKit Ͱ։ൃ 60

Slide 61

Slide 61 text

UIKit ΁ͷුؾ 61 InputAccessoryView ؆୯ʹΩʔϘʔυϝχϡʔΛ࡞੒Մೳ

Slide 62

Slide 62 text

UIKit ΁ͷුؾ 62 BecomeFirstResponder ࣍ͷೖྗཝʹࣗಈҠಈՄೳ ※ iOS15 ͔Β SwiftUI Ͱ΋ਖ਼ࣜαϙʔτ

Slide 63

Slide 63 text

UIKit ΁ͷුؾ 63 UIScrollView.setContentOffset ೖྗͷ๦͛ʹͳΒͳ͍ҐஔʹεΫϩʔϧ

Slide 64

Slide 64 text

1. ුؾ૬ख 2. ෦෼తʹ UIKit Λར༻͢Δํ๏ 3. ৄ͘͠͸ͪ͜Βʂ UIKit ΁ͷුؾ 64

Slide 65

Slide 65 text

SwiftUI ϨΠΞ΢τςΫχοΫ 65

Slide 66

Slide 66 text

UIViewControllerRepresentable Protocol ʹ४ڌͨ͠ߏ଄ମΛఆٛ SwiftUI ϨΠΞ΢τςΫχοΫ 66

Slide 67

Slide 67 text

UIKit Ͱߏஙͨ͠ΫϥεΛॳظԽ SwiftUI ϨΠΞ΢τςΫχοΫ 67

Slide 68

Slide 68 text

SwiftUI ϨΠΞ΢τςΫχοΫ 68

Slide 69

Slide 69 text

SwiftUI ϨΠΞ΢τςΫχοΫ 69

Slide 70

Slide 70 text

SwiftUI ϨΠΞ΢τςΫχοΫ 70

Slide 71

Slide 71 text

UI ΁൓ө SwiftUI ϨΠΞ΢τςΫχοΫ 71

Slide 72

Slide 72 text

1. ුؾ૬ख 2. ෦෼తʹ UIKit Λར༻͢Δํ๏ 3. ৄ͘͠͸ͪ͜Βʂ UIKit ΁ͷුؾ 72

Slide 73

Slide 73 text

UIKit ΁ͷුؾ iOSDC ެࣜύϯϑϨοτ΁ܝࡌ UIKit ΁ුؾͤ͟ΔΛಘͳ͍͔ҰॠͰ൑அʂ 73

Slide 74

Slide 74 text

SwiftUI ະରԠϥΠϒϥϦ ༉அې෺ʂ 74

Slide 75

Slide 75 text

1. ࠇຐज़Λར༻͍ͯ͠ΔSDK 2. σόοάπʔϧ SwiftUI ະରԠϥΠϒϥϦ 75

Slide 76

Slide 76 text

1. ࠇຐज़Λར༻͍ͯ͠ΔSDK 2. σόοάπʔϧ SwiftUI ະରԠϥΠϒϥϦ 76

Slide 77

Slide 77 text

SwiftUI ະରԠϥΠϒϥϦ ࣗಈͰεΫϦʔϯϩάΛऔಘͰ͖ͳ͍ 77

Slide 78

Slide 78 text

1. ࠇຐज़Λར༻͍ͯ͠ΔSDK 2. σόοάπʔϧ SwiftUI ະରԠϥΠϒϥϦ 78

Slide 79

Slide 79 text

SwiftUI ະରԠϥΠϒϥϦ dani-gavrilov/GDPerformanceView-Swift 79

Slide 80

Slide 80 text

Summary 80

Slide 81

Slide 81 text

Summary 1. dim. ͸ SwiftUI Ͱ։ൃ͞Εͨ 2. ৚݅࣍ୈͰ SwiftUI ࠾༻Ձ஋͋Γ 3. ButtonStyle, ViewModi fi er 4. UIKit ΋͓๨Εͳ͘ 5. ֎෦ϥΠϒϥϦͷಈ࡞֬ೝ͸৻ॏʹ 81

Slide 82

Slide 82 text

Summary 1. dim. ͸ SwiftUI Ͱ։ൃ͞Εͨ 2. ৚݅࣍ୈͰ SwiftUI ࠾༻Ձ஋͋Γ 3. ButtonStyle, ViewModi fi er 4. UIKit ΋͓๨Εͳ͘ 5. ֎෦ϥΠϒϥϦͷಈ࡞֬ೝ͸৻ॏʹ 82

Slide 83

Slide 83 text

Summary 1. dim. ͸ SwiftUI Ͱ։ൃ͞Εͨ 2. ৚݅࣍ୈͰ SwiftUI ࠾༻Ձ஋͋Γ 3. ButtonStyle, ViewModi fi er 4. UIKit ΋͓๨Εͳ͘ 5. ֎෦ϥΠϒϥϦͷಈ࡞֬ೝ͸৻ॏʹ 83

Slide 84

Slide 84 text

Summary 1. dim. ͸ SwiftUI Ͱ։ൃ͞Εͨ 2. ৚݅࣍ୈͰ SwiftUI ࠾༻Ձ஋͋Γ 3. ButtonStyle, ViewModi fi er 4. UIKit ΋͓๨Εͳ͘ 5. ֎෦ϥΠϒϥϦͷಈ࡞֬ೝ͸৻ॏʹ 84

Slide 85

Slide 85 text

Summary 1. dim. ͸ SwiftUI Ͱ։ൃ͞Εͨ 2. ৚݅࣍ୈͰ SwiftUI ࠾༻Ձ஋͋Γ 3. ButtonStyle, ViewModi fi er 4. UIKit ΋͓๨Εͳ͘ 5. ֎෦ϥΠϒϥϦͷಈ࡞֬ೝ͸৻ॏʹ 85

Slide 86

Slide 86 text

@AkkeyLab 86

Slide 87

Slide 87 text

Thank you !! 87