Slide 1

Slide 1 text

©2022 Wantedly, Inc. UI σβΠϯγεςϜ J04࣮૷ͷ͸ͳ͠ iOSDC Japan 2022 εϙϯαʔηογϣϯ ΢ΥϯςουϦʔגࣜձࣾ / @kashihararara

Slide 2

Slide 2 text

©2022 Wantedly, Inc. 4IPUB,BTIJIBSB 4PGUXBSF&OHJOFFSBU8BOUFEMZ *OD HJUIVCDPN4IPUB,BTIJIBSB UXJUUFSDPNLBTIJIBSBSBSB ೥݄͔ΒϏδωε4/4ʮ8BOUFEMZʯͷ։ൃʹࢀըɻ J04ΞϓϦͷ࣮૷ɺάϩʔεࢪࡦ࣮ࢪɺ඼࣭վળͷͨΊͷ࿮૊ Έͮ͘ΓʹܞΘΔɻ࠷ۙ͸νʔϜͷ՝୊ൃݟ΍ϦϦʔεϑϩʔ ͷݟ௚͠Λ୲౰ɻ

Slide 3

Slide 3 text

©2022 Wantedly, Inc.

Slide 4

Slide 4 text

©2022 Wantedly, Inc. 👆

Slide 5

Slide 5 text

©2022 Wantedly, Inc. #VUUPOͷߏ੒ཁૉ

Slide 6

Slide 6 text

©2022 Wantedly, Inc. #VUUPOͷߏ੒ཁૉ

Slide 7

Slide 7 text

©2022 Wantedly, Inc. ଞͷίϯϙʔωϯτ΋ಉ༷ʹ

Slide 8

Slide 8 text

ίϯϙʔωϯτͷ࡞ΓํʹҰ؏ͨ͠ϧʔϧ͕͋Δ

Slide 9

Slide 9 text

©2022 Wantedly, Inc. ࠓ೔఻͍͑ͨ͜ͱ 8BOUFEMZͰ͸6*σβΠϯγεςϜΛӡ༻͍ͯ͠·͢ w 8BOUFEMZΒ͍͠6*σβΠϯΛޮ཰తʹ࡞Γग़ͨ͢Ίͷϧʔϧ w ΤϯδχΞͱσβΠφʔͷίϥϘϨʔγϣϯʹඞཁͳڞ௨ݴޠ 6*σβΠϯγεςϜJ04࣮૷͸͡Ί·ͨ͠ w 6*σβΠϯγεςϜͷϧʔϧΛJ04ϓϥοτϑΥʔϜʹద༻͢ΔͨΊͷ 6*ϑϨʔϜϫʔΫϥΠϒϥϦ

Slide 10

Slide 10 text

©2022 Wantedly, Inc. 8BOUFEMZͷ6*σβΠϯγεςϜ

Slide 11

Slide 11 text

©2022 Wantedly, Inc. 8BOUFEMZͷ6*σβΠϯγεςϜ (SBQIJD4UBOEBSE w Ձ஋؍ͱݪଇ w ϏδϡΞϧΨΠυϥΠϯ 6*σβΠϯγεςϜ w ελΠϧΨΠυ w 'PVOEBUJPO σβΠϯτʔΫϯɺύϥϝλ w $PNQPOFOU ϘλϯɺςΩετϑΟʔϧυ ίʔυʹΑΔ࣮૷ 'JHNB 3FBDU J04 "OESPJE

Slide 12

Slide 12 text

©2022 Wantedly, Inc. Ձ஋؍ͱݪଇ

Slide 13

Slide 13 text

©2022 Wantedly, Inc. 8BOUFEMZͷ6*σβΠϯγεςϜ Ҿ༻ݩ: σβΠϯγεςϜ͕Ճ଎ͤ͞ΔϓϩμΫτ։ൃ https://speakerdeck.com/kawasy/design-system-and-scalable-product-development?slide=11

Slide 14

Slide 14 text

©2022 Wantedly, Inc. 8BOUFEMZͷ6*σβΠϯγεςϜ Ҿ༻ݩ: σβΠϯγεςϜ͕Ճ଎ͤ͞ΔϓϩμΫτ։ൃ https://speakerdeck.com/kawasy/design-system-and-scalable-product-development?slide=12

Slide 15

Slide 15 text

©2022 Wantedly, Inc. ϏδϡΞϧΨΠυϥΠϯ

Slide 16

Slide 16 text

Ҿ༻ݩ: σβΠϯγεςϜ͕Ճ଎ͤ͞ΔϓϩμΫτ։ൃ speakerdeck.com/kawasy/design-system-and-scalable-product-development

Slide 17

Slide 17 text

Ҿ༻ݩ: σβΠϯγεςϜ͕Ճ଎ͤ͞ΔϓϩμΫτ։ൃ speakerdeck.com/kawasy/design-system-and-scalable-product-development

Slide 18

Slide 18 text

Ҿ༻ݩ: σβΠϯγεςϜ͕Ճ଎ͤ͞ΔϓϩμΫτ։ൃ speakerdeck.com/kawasy/design-system-and-scalable-product-development

Slide 19

Slide 19 text

©2022 Wantedly, Inc. 6*σβΠϯγεςϜ

Slide 20

Slide 20 text

©2022 Wantedly, Inc. 4LJQ

Slide 21

Slide 21 text

©2022 Wantedly, Inc. ෳ਺ͷϨΠϠʔʹͯߏ੒

Slide 22

Slide 22 text

©2022 Wantedly, Inc. 'PVOEBUJPO σβΠϯύϥϝʔλ

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

©2022 Wantedly, Inc. 4VSGBDF ͋ΒΏΔίϯϙʔωϯτͷجૅ

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

©2022 Wantedly, Inc. #BTJD$PNQPOFOU

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

©2022 Wantedly, Inc. 1BUUFSO

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

'JHNBίϛϡχςΟʹͯެ։͍ͯ͠·͢ ʮFigma WantedlyʯͰݕࡧ

Slide 34

Slide 34 text

©2022 Wantedly, Inc. J04࣮૷

Slide 35

Slide 35 text

©2022 Wantedly, Inc. 6*σβΠϯγεςϜͷ༻ޠΛม͑ͳ͍ ৼΔ෣͍ͷৄࡉΛ஌Βͳͯ͘΋ར༻Ͱ͖Δ ΠϨΪϡϥʔΛߟྀ͢Δ ཁ݅

Slide 36

Slide 36 text

©2022 Wantedly, Inc. 6*σβΠϯγεςϜͷ༻ޠΛม͑ͳ͍

Slide 37

Slide 37 text

©2022 Wantedly, Inc. લఏͱͯ͠ɺ6*σβΠϯγεςϜ͸ΤϯδχΞͱσβΠφʔͷڞ௨ݴޠͰ͢ɻ ͭͷ֓೦΍ϧʔϧΛɺ֤ʑ͕ҟͳΔ໊લͰݺΜͰ͠·͏ͱҙࢥૄ௨͕ਤΕͳ͔ͬͨΓɺ ݁Ռͱͯ͠ҟͳΔ࣮૷ʹͳͬͯ͠·͏ͱ͍͏໰୊͕ى͜ΔͰ͠ΐ͏ɻ 6*σβΠϯγεςϜͷݴ༿Λ࢖͏

Slide 38

Slide 38 text

©2022 Wantedly, Inc. public enum Shape: CGFloat { case r0 = 0 case r2 = 2 case r4 = 4 case r16 = 16 case r100 = 999 } 6*σβΠϯγεςϜ J04࣮૷

Slide 39

Slide 39 text

©2022 Wantedly, Inc. ࣮૷్தͰະఆٛͷཁૉ΍ݻ·͍ͬͯͳ͍֓೦ʹૺ۰͢Δ͜ͱ΋͋Δͱࢥ͍·͢ɻ ΤϯδχΞͰউखʹ໋໊Λ͢ΔͷͰ͸ͳ͘ɺσβΠφʔͱ૬ஊΛ͠ɺ ڞ௨ݴޠͱ͢Δ͜ͱΛ৺͕͚·͠ΐ͏ɻ 6*σβΠϯγεςϜͷݴ༿Λ࢖͏

Slide 40

Slide 40 text

©2022 Wantedly, Inc. ৼΔ෣͍ͷৄࡉΛ஌Βͳͯ͘΋ར༻Ͱ͖Δ

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

6*σβΠϯγεςϜ J04࣮૷ static func reactionByColorAndElevation( shape: Shape, overlayType: Reactioned, backgroundColor: Reactioned, normalStateElevation: BlackOrWhite ) -> SurfaceProps { .init( shape: shape, overlay: .init( normal: .clear, pressed: overlayType.pressed.alpha100, focused: overlayType.focused.alpha50, disabled: overlayType.disabled.alpha100 ), backgroundColor: backgroundColor, elevation: normalStateElevation.overriding(... normal: normalStateElevation.value + 0, pressed: normalStateElevation.value + 4, focused: normalStateElevation.value + 4, disabled: nil ))

Slide 43

Slide 43 text

©2022 Wantedly, Inc. ΠϨΪϡϥʔΛߟྀ͢Δ

Slide 44

Slide 44 text

©2022 Wantedly, Inc. ҰൠԽ͞Ε͍ͯͳ͍ϧʔϧ΋ଘࡏ͢Δ

Slide 45

Slide 45 text

©2022 Wantedly, Inc. w 6*σβΠϯγεςϜ͸Ұݟ͢΂ͯͷϧʔϧ͕ΧονϦܾ·͍ͬͯͯ׬ᘳͳΑ͏ʹݟ͑Δ͕ɺ શͯͷγνϡΤʔγϣϯʹରͯ͠ద੾ͳղ͕ग़ͤΔΘ͚Ͱ͸ͳ͍ w ະͩ੒௕ஈ֊ʹ͋Γɺ׬੒͞ΕͨγεςϜͰ͸ͳ͍ͱ͍͏લఏΛ࣋ͭ͜ͱ͕େ੾ w ৽͍͠๏ଇΛݟ͚ͭͨࡍ͸ίϯτϦϏϡʔγϣϯ͕ඞཁ ͓࣋ͬͯ͘΂͖લఏ

Slide 46

Slide 46 text

©2022 Wantedly, Inc. ·ͱΊͱ͜Ε͔Β

Slide 47

Slide 47 text

©2022 Wantedly, Inc. ·ͱΊ w ΤϯδχΞͱσβΠφʔͷؒͰڞ௨ݴޠ͕͋ΔͨΊίϥϘϨʔγϣϯ͕ͳΊΒ͔ʹ w 6*σβΠϯγεςϜJ04࣮૷͕͋Δ͜ͱͰҰ؏ੑͷ͋Δ6*ίϯϙʔωϯτͷ࡞੒͕Մೳ ͜Ε͔Β w ϝϯόʔ͕πʔϧΛ࢖͍͜ͳ͢͜ͱ͕Ͱ͖ΔΑ͏ֶशϥΠϯͷ੔උ w ࠶ར༻Մೳͳίϯϙʔωϯτͷ֦ॆ w ΞΫηγϏϦςΟ 4VNNBSZ'VUVSFXPSL

Slide 48

Slide 48 text

©2022 Wantedly, Inc.