Slide 1

Slide 1 text

ϩʔσΟϯά࣌ͷ ΑΓྑ͍UIͷ࣮૷ Hiroki Matsue גࣜձࣾ Housmart CIO Dec 14, 2016 shibuya.swift #6

Slide 2

Slide 2 text

• @macs_6 • iOS / Ruby / Scrum • ECΞϓϦ΍Χ΢ϧͷ։ൃ • ࠷ۙخ͔ͬͨ͠XcodeͷΞοϓσʔτ “Constrain to margins”ʹ νΣοΫ͕͔ͭͳ͍ Constraints͕ফͤΔ

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Five states (5ͭͷঢ়ଶ) 1. Ideal State (ཧ૝ঢ়ଶ) 2. Empty State (ۭঢ়ଶ) 3. Error State (Τϥʔঢ়ଶ) 4. Partial State (෦෼తͳঢ়ଶ) 5. Loading State (ಡࠐঢ়ଶ) http://scotthurff.com/posts/why-your-user-interface-is-awkward-youre-ignoring-the-ui-stack

Slide 5

Slide 5 text

ಡࠐঢ়ଶͷ࿩

Slide 6

Slide 6 text

ಡࠐதͷίϯϙʔωϯτ • ϓϩάϨεόʔ • εϐφʔ

Slide 7

Slide 7 text

Facebook΍Slackͷಡࠐը໘

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

཭୤͠ͳͦ͏

Slide 10

Slide 10 text

“νΧνΧͯ͠ ࣍ͷঢ়ଶ͕෼͔Δಡࠐঢ়ଶ”

Slide 11

Slide 11 text

໊લ͕෼͔Βͳ͍ɾɾ

Slide 12

Slide 12 text

SlackͷOSSҰཡΛ ݟͯΈΔ

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Shimmer(γϚʔ) • ʮ͖ΒΊ͖ʯ • ؆୯ʹγϚʔΤϑΣΫτΛ࣮૷Ͱ͖Δ • จࣈҎ֎ʹ΋࢖͑Δ • ੲͷiOSͷϩοΫը໘ͷ"swipe to unlock"ͱ͔

Slide 15

Slide 15 text

ShimmerͰ ߋʹௐ΂Δ

Slide 16

Slide 16 text

εέϧτϯεΫϦʔϯ

Slide 17

Slide 17 text

εέϧτϯεΫϦʔϯ • ࣍ʹදࣔ͞ΕΔviewʹࣅͤͨϓϨʔεϗϧμʔ • ࣍ͷදࣔͷݟӫ͑΁ͷظ଴ײΛߴΊΔ • Ϣʔβͷظ଴஋ͷݮগΛ࿨Β͛Δ

Slide 18

Slide 18 text

ಡࠐதͷίϯϙʔωϯτ • ϓϩάϨεόʔ • εϐφʔ • εέϧτϯεΫϦʔϯ

Slide 19

Slide 19 text

νΧνΧ => γϚʔޮՌ ࣍ͷঢ়ଶ͕෼͔Δಡࠐঢ়ଶ => εέϧτϯεΫϦʔϯ

Slide 20

Slide 20 text

࡞ͬͯΈͨ

Slide 21

Slide 21 text

σϞ

Slide 22

Slide 22 text

import Shimmer ... shimmeringView.isShimmering = true shimmeringView.shimmeringBeginFadeDuration = 0.3 shimmeringView.shimmeringOpacity = 0.3 shimmeringView.contentView = contentView

Slide 23

Slide 23 text

γϯϓϧ

Slide 24

Slide 24 text

ʮ͜ͷΞϓϦ஗͍ʯ

Slide 25

Slide 25 text

ʮ͜ͷΞϓϦ஗͍ʯ • ࣮ࡍʹϨεϙϯε΍ඳը͕஗͍ • ମײతʹ஗͍

Slide 26

Slide 26 text

εέϧτϯεΫϦʔϯͱ ShimmerͰվળ͢Δ͔΋ʂ

Slide 27

Slide 27 text

·ͱΊ • ϓϩάϨεόʔɾεϐφʔҎ֎ͷεέϧτϯεΫϦʔ ϯͱ͍͏બ୒ࢶ͕͋Δ • ͋ͷνΧνΧ͸γϚʔޮՌͱݺͿ • εέϧτϯεΫϦʔϯʹShimmerΛ࢖͏ͱಡࠐதΆ ͕͞૿͢ • ମݧ͕޲্͢Δ͔΋ʂ

Slide 28

Slide 28 text

We are hiring! ϋ΢εϚʔτ@wantedly