Cookpad TechConf 2019にて「新規サービス開発を加速させる技術とデザイン」というタイトルでお話したスライドです。 https://techconf.cookpad.com/2019/
౻Ҫ ݠ࢜࿕Komercoࣄۀ෦৽نαʔϏε։ൃΛՃͤ͞Δٕज़ͱσβΠϯ
View Slide
ࣗݾհ2ɾ౻Ҫ ݠ࢜࿕(;͚͡Μ)ɾKomercoࣄۀ෦ / σβΠφʔɾ2017৽ଔೖࣾɹ @kenshir0f
3
Komerco4ɾ20186݄ʹϦϦʔεɾྉཧָ͕͘͠ͳΔ৯ࡐ͏ͭΘɺྉཧಓ۩͕ങ͑ΔαʔϏεɾݱࡏiOSΞϓϦͷΈαʔϏεΛఏڙ
5
Komercoͱ͍͏৽نࣄۀͷσβΠφʔͷऔΓΈ
ΞδΣϯμ7্ཱͪ͛ ։ൃ ϦϦʔε։ൃ࣌ͷऔΓΈΛ͠·͢
KomercoͷαʔϏε։ൃ8
࣌ͷ։ൃମ੍9ɾiOSΤϯδχΞ 4ɾσβΠφʔ 1ɾσΟϨΫλʔ 1ɾόοΫΤϯυFirebase
ٻΊΒΕΔ͜ͱεϐʔυ10ɾ༷શମͷମݧ͔Βܾ·Δ͜ͱ͋ΔɹɹɾσβΠϯ͕ͳ͍ͱ༷͕ܾΊΒΕͳ͍ɹɹɾ͖Ε͍ͳUI͋ͱɹɹɾࠓ͋ΔϦιʔεͰ͘͢࡞Δ
11100%9%41 AMkomercoΛग़͢Δγϣοϓཧϝοηʔδཧจཧཧग़தͷ͕͋Γ·ͤΜ100%9%41 AMkomerco 100%9%41 AMkomerco ʲ࣫ృΓʳ఼Ѫ༻ͷṟஔ͖ʲ࣫ృΓʳ఼Ѫ༻ͷṟஔ͖ܙൺणෑࡏݿ͋Γ#͓ṟ #ແண৭ #αονʔωͷઆ໌ˇ1,200 ΧʔτʹೖΕΔ
12100%9%41 AMkomercoΛग़͢Δγϣοϓཧϝοηʔδཧจཧཧग़தͷ͕͋Γ·ͤΜ100%9%41 AMkomerco 100%9%41 AMkomerco ʲ࣫ృΓʳ఼Ѫ༻ͷṟஔ͖ʲ࣫ృΓʳ఼Ѫ༻ͷṟஔ͖ܙൺणෑࡏݿ͋Γ#͓ṟ #ແண৭ #αονʔωͷઆ໌ˇ1,200 ΧʔτʹೖΕΔΫοΫύουͷϝΠϯΧϥʔطଘͷΞΠίϯ
13؆୯ͳશମͷಈઢͷਤ
UIσβΠϯͷ՝14ɾUI࡞ޙͷΤϯδχΞͱͷڞ༗͕େมɹɹɾσβΠϯͷཤྺΛͭͭ͠ɺɹɹɾϓϩτλΠϓߋ৽ͯ͠ɺɹɹɾมߋՕॴΛڞ༗͢Δඞཁ͕͋ͬͨɹɹɾσβΠϯ͢Δ͕࣌ؒͲΜͲΜݮΔ…
σβΠϯ͕࣮εϐʔυʹؒʹ߹͓ͬͯΒΜ…
࣮εϐʔυʹ͍ͭͨ͘Ίʹม͑ͨ͜ͱ161. ͍ͬͯΔσβΠϯπʔϧΛม͑Δ2. σβΠϯίϯϙʔωϯτΛମܥతʹཧ͢Δ
1. σβΠϯπʔϧΛม͑Δ17Sketch Abstract Zeplin Marvelཧ ڞ༗ ϓϩτλΠϓ
18σβΠϯπʔϧFigma
Figma͕ศར͗͢Δ19ɾΦϯϥΠϯ্Ͱಉ࣌ฤू͕Ͱ͖Δ → ڞ༗ָ͕ɾσβΠϯมߋͷཤྺḷΕΔ → ཧָ͕ɾϓϩτλΠϓ࡞ΕΔ → ߋ৽ָ͕ɾ ศརɾ ࠷ߴ
2. σβΠϯίϯϙʔωϯτΛମܥతʹཧ͢Δ20ɾAtomicDesignΛಋೖ
AtomicDesignͱʁ21ɾίϯϙʔωϯτΛ࠷খ୯Ґʹ۠ͬͯ࠶ར༻ੑΛ্͛ͨͭɾཧ͘͢͠ɺϝϯς͍͢͠ɹɹ→҆৺͠ͳ͕ΒίϯϙʔωϯτΛ͍͡ΕΔɾFigmaʹҠߦͯ͠Γ͘͢ͳͬͨ
SketchͰऔΓΜͩͱ͖22ɾϑΝΠϧ͕େ͖͍ɾॏ͍
SketchͰऔΓΜͩͱ͖23ɾϑΝΠϧ͕େ͖͍ɾॏ͍ɾશମͷϑΝΠϧཧ͕େมɾөʹ͕͔͔࣌ؒΔAtoms Molecules Organisms
FigmaͰऔΓΜͩͱ͖24Atoms Molecules Organisms ɾλϒͰݟ͍͢ɾͻͱͭͷΞϓϦͰ݁
25
26
࣮εϐʔυʹ͍ͭͨ͘Ίʹม͑ͨ͜ͱ·ͱΊ271. ͍ͬͯΔσβΠϯπʔϧΛม͑Δɹɹ→։ൃεϐʔυ্͕͕ͬͨ2. σβΠϯίϯϙʔωϯτΛମܥతʹཧ͢Δɹɹ→εϐʔυ্͕ͬͯਫ਼ਆతͳෛ୲ݮͬͨɹɹ→ߏஙʹ͕͔͔࣌ؒΔ
͔͜͜Βߋʹ։ൃεϐʔυΛ্͛ΔͨΊʹऔΓΜͩ͜ͱ
UIΨΠυϥΠϯͷ࡞29
UIΨΠυϥΠϯ30ɾFigma্ʹશମͰڞ௨ͷϧʔϧΛ࡞ɾ֬ೝͷίϛϡχέʔγϣϯΛݮΒ͓ͯ͠ޓ͍ͷ࡞ۀ࣌ؒΛ૿͢ɾ݁Ռͱͯ͠։ൃεϐʔυ্͕͕Δ
31
32
ΞΠίϯϑΥϯτͷ࡞33
34
ΞΠίϯը૾ͷ35ɾiOS@2x, @3xͱը૾͕ෳඞཁɹɹɾόʔδϣϯ͝ͱʹը૾Λอଘ͢Δͷ༰ྔͱཧ͕ݫ͍͠ɾཧը໘(Web)։ൃ͍ͯͨ͠ͷͰڞ௨Ϧιʔεʹ͍ͨ͠
36
ΞΠίϯϑΥϯτͷ࡞37ɾϑΥϯτʹͯ͠Ϧιʔεͻͱͭʹɹɹ→WebͱiOSͰڞ௨Ͱָ͑ͯɾมߋཤྺGitHub EnterpriseͰཧɹɹ→GitHub PagesͰར༻ՄೳͳΞΠίϯ͕ݟΕΔ
38
Ξχϝʔγϣϯͷಋೖ39
ϦονͳମݧΛٻ͢Δ40ɾؾ࣋ͪͷ͍͍ΠϯλϥΫγϣϯͱɹ։ൃτϨʔυΦϑɾͦͷͨΊʹ࣮ݱՄೳੑߟྀɾௐࠪΛؚΊͯͲ͜·Ͱ࣮ݱͰ͖Δ͔ɹݕূ
Ξχϝʔγϣϯಋೖ·ͰͷྲྀΕ411. Ξχϝʔγϣϯͷ࡞ίετ͕͍͔ʁ2. ؆୯ʹಋೖͰ͖Δ͔ʁ3. iOSɺwebͰಉҰͷΠϯλϥΫγϣϯΛ࠶ݱͰ͖Δ͔ʁ
Ξχϝʔγϣϯಋೖ·ͰͷྲྀΕ421. Ξχϝʔγϣϯͷ࡞ίετ͕͍͔ʁ2. ؆୯ʹಋೖͰ͖Δ͔ʁ3. iOSɺwebͰಉҰͷΠϯλϥΫγϣϯΛ࠶ݱͰ͖Δ͔ʁɹɹ→ Lottieͷಋೖ
Lottieͷಋೖ43ɾjsonϑΝΠϧ͔ΒΞχϝʔγϣϯΛ࣮ߦͰ͖Δɻɹɹ→AfterEffects͔Β࡞Մೳ → 1. ࡞ίετ͍ɾiOSͱwebͰ͍ճ͔ͤͯͭܰྔ → 3.ಉҰͷΠϯλϥΫγϣϯΛ࠶ݱՄೳɾखݩͰ؆୯ͳϓϩδΣΫτΛ࡞ͬͯݕূͰ͖ͨΒಋೖ͍͚ͦ͏ʁ
iOS (Swift)44import Lottieprivate let likeAnimationView = LOTAnimationView(name: "add_like.json")likeAnimationView.play { [weak self] finished inself?.update()}
Web (React, Typescript)45import Lottie from ‘react-lottie’const option = {loop: true,autoplay: true,animationData: require(‘./loading.json’)}
ݕূͰ͖ͨͷͰ࣮͢Δ46ɾ͋ͱΤϯδχΞͱ૬ஊͯ͠ॲཧΛॻ͍͍͚ͯͩ͘ɹɹ→ࠓޙΤϯδχΞίʔυϨϏϡʔͱ࣮ߦ݁Ռͷ֬ೝͷΈʹͳΔɹɹ→σβΠϯ͔Β࣮·ͰσβΠφʔͰ݁Ͱ͖ΔΈΛ༻ҙ
ίϯϙʔωϯτ47
σβΠϯίϯϙʔωϯτΛίʔυʹม͑Δ48ɾσβΠϯσʔλΛReactComponentԽɹɹɾλοϓ࣌ͷڍಈͳͲΛ࣮ࡍʹweb্Ͱ֬ೝͰ͖ΔɹɹɾσβΠϯίϯϙʔωϯτΛ͙͢ʹ࣮Ͱ͑Δɹɹɾࡉ͔͍༷ΛίʔυͰ֬ೝͰ͖Δ
49
ίϯϙʔωϯτ༷ॻͷ࡞50ɾDoczΛར༻ɾmdxϑΝΠϧΛͭ͘Δ͚ͩͭ͘ΕΔɹɹ→ϝϯςφϯείετ͕͍ɹɹ→ͲͷpropsΛड͚औΕΔ͔ͳͲ༷֬ೝͰ͖Δ
Button.mdx51import Button from './../components/Button'import { Playground, PropsTable } from ‘docz’# ButtonPrimary Button
52
σβΠϯΛίʔυԽ͢Δཧ༝53ɾ࣮ࡍʹΘΕΔڥͰಈ࡞֬ೝͰ͖ΔɾσβΠϯมߋͷ࣮ΛͰ͖Δ͚ͩσβΠφʔ͕ෛ୲ɹɹ→ΤϯδχΞػೳ։ൃମݧͷվળʹ࣌ؒΛׂ͚Δɾເ: ίϯϙʔωϯτΛͭͳ͙͚ͩͰ͍͍ײ͡ʹσβΠϯ͞ΕΔੈք
54
ٕज़Λศརʹ׆༻ͯ͠ΤϯδχΞͷෛ୲ΛݮΒ͢
·ͱΊ56ɾKomercoͷ։ൃεϐʔυΛ্͛ΔऔΓΈʹ͍ͭͯͷ͓Ͱͨ͠ɻɹɹɾσβΠϯ͚ͩͰͳٕ͘ज़Λ׆༻ͯ͠ΤϯδχΞΛαϙʔτ͢Δɹɹɾ݁Ռͱͯ͠νʔϜશମͷ։ൃͷεϐʔυ্͕͕ΔɾશͯϢʔβʔʹՁΛ͘͢ಧ͚ΔͨΊ
Thank you!