Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
3年連続ベストアプリ受賞のプロダクトを支える裏側/The way to Achieve Th...
Search
Masayuki Imamura
February 17, 2017
Programming
1
1.7k
3年連続ベストアプリ受賞のプロダクトを支える裏側/The way to Achieve The Best App 3 years in a row
presentation slides at "Speee Lounge #5"
VASILY,Inc CTO @kyuns
Masayuki Imamura
February 17, 2017
Tweet
Share
More Decks by Masayuki Imamura
See All by Masayuki Imamura
バイセルにおけるAI活用の取り組みについて紹介します/Generative AI at BuySell Technologies
kyuns
2
1k
経営視点から捉えた開発生産性 / Development productivity from a management perspective
kyuns
12
10k
Qiita:Teamをハックして成果をあげるための情報共有方法/Qiita:Team
kyuns
6
3.5k
機械学習とデータ分析を支えるマルチクラウドなアーキテクチャの紹介/Multi Cloud Architecture Supporting Machine Learning and Data Analysis
kyuns
4
9.9k
日本最大級のファッションDBを支える裏側/how to manage the complex web service
kyuns
4
880
iQONを支えるクローラー/iQON Crawler
kyuns
12
4.2k
iQONを支えるデータ分析基盤/iqon-bigquery
kyuns
3
10k
iQON Tools
kyuns
1
3.9k
プッシュ通知大戦争/effective push notification by iQON
kyuns
28
8.4k
Other Decks in Programming
See All in Programming
複雑なドメインに挑む.pdf
yukisakai1225
5
1.2k
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
22
5.9k
アプリの "かわいい" を支えるアニメーションツールRiveについて
uetyo
0
280
JSONataを使ってみよう Step Functionsが楽しくなる実践テクニック #devio2025
dafujii
1
640
Platformに“ちょうどいい”責務ってどこ? 関心の熱さにあわせて考える、責務分担のプラクティス
estie
1
140
そのAPI、誰のため? Androidライブラリ設計における利用者目線の実践テクニック
mkeeda
2
2.8k
速いWebフレームワークを作る
yusukebe
5
1.7k
OSS開発者という働き方
andpad
5
1.7k
ファインディ株式会社におけるMCP活用とサービス開発
starfish719
0
2.1k
詳解!defer panic recover のしくみ / Understanding defer, panic, and recover
convto
0
250
RDoc meets YARD
okuramasafumi
4
170
請來的 AI Agent 同事們在寫程式時,怎麼用 pytest 去除各種幻想與盲點
keitheis
0
130
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
4 Signs Your Business is Dying
shpigford
184
22k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
A Modern Web Designer's Workflow
chriscoyier
696
190k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Context Engineering - Making Every Token Count
addyosmani
3
62
Transcript
̏࿈ଓϕετΞϓϦडͷϓϩμΫτΛࢧ͑Δཪଆ VASILY,Inc. @kyuns 2017.2.17 / Speee Cafe Meetup #5 The
way to Achieve The Best App 3 years in a row PSJHJOBMTMJEFJTIUUQTTQFBLFSEFDLDPNIPSJFCFTVUPJGBMTFCFUFJCVBQVSJXP[IJFSVLBJGBUJ[IJ
ࠓଜխ !LZVOTΩϡϯ 7"4*-: *OD औక$50$P'PVOEFS :BIPP+"1"/ʹೖࣾɺ:BIPP'"4)*0/ 9#3"/%ͳͲͷαʔϏεͷ্ཱͪ͛ͷ։ൃΛ୲ɻ ϦίϝϯσʔγϣϯͷಛڐͳͲΛऔಘޙɺ ʹಠཱɺ7"4*-:Λۀɻऔక$50ʹबɻ झຯͰ༏ɾΞʔςΟετΠϕϯτใαΠτͳͲΛӡӦɻ
ઃཱ݄ ॴࡏ౦ژ۠ޒాδχΞεϏϧ' ैۀһ໊ ࢿຊۚԯ දऔకۚࢁ༟थ औకࠓଜխઍ༿େี 4ZOάϧʔϓ ϑΝογϣϯʷςΫϊϩδʔ ΛڧΈͱͨ͠ձࣾ
ຊதͷϑΝογϣϯ ECαΠτͷσʔλΛܝࡌ ຊ࠷େڃͷঁͷࢠͷͨΊͷ ϑΝογϣϯΞϓϦʮΞΠίϯʯ ձһ 250ສਓ Google Play ϕετɾΞϓϦ 300Ҏ্ͷ&$αΠτ͔Β
ສͷΞΠςϜܝࡌ
࿈ଓϕετΞϓϦड (PPHMF1MBZϕετΠϊϕʔςΟϒΞϓϦେड
ྑ͍ΞϓϦΛ࡞ΔͨΊͷ ɾνʔϜମ੍ͷհ ɾ։ൃϑϩʔͷհ ຊͷΞδΣϯμ
J20/Λࢧ͑Δ։ൃମ੍
ϒϥβ։ൃνʔϜ όοΫΤϯυνʔϜ Πϯϑϥ σʔλαΠΤϯε νʔϜߏ "1* Ϋϩʔϥʔ 1$ εϚϗ ΞϓϦ։ൃνʔϜ
J04 "OESPJE σβΠϯνʔϜ J04 "OESPJE 8FC J20/ΞϓϦ։ൃʹ༷ʑͳνʔϜ͕ؔΘΔ
ΞϓϦ։ൃνʔϜ ▸ J04ɺ"OESPJEΞϓϦ։ൃ ▸ J20/ΛؚΉΞϓϦ։ൃશൠΛ୲ ▸ ։ൃݴޠ ▸ J04 ▸
4XJGU 'BCSJD GBTUMBOF 5SBWJT$* ;FQMJO ▸ "OESPJE ▸ +BWB ,PUMJO 8FSDLFS ;FQMJO
σβΠϯνʔϜ ▸ 8FCɺJ04ɺ"OESPJE ͦͷଞσβΠϯ͕ؔ͢Δ෦ͯ͢Λ୲ ▸ 6*ઃܭɺϞοΫ࡞ ▸ J04ɺ"OESPJEɺ04ผͰઐͷσβΠφʔ ▸ ֤04ͷσβΠϯΨΠυϥΠϯʹ४ڌ
▸ J20/ಠࣗͷσβΠϯΨΠυϥΠϯ࡞
όοΫΤϯυ։ൃνʔϜ ▸ ج൫ͱͳΔγεςϜͷݚڀͱ։ൃ ▸ "1* ▸ Ϋϩʔϥʔ ▸ Πϯϑϥ ▸
σʔλαΠΤϯε
iQONͷٕज़ج൫ / API ▸ "1* ▸ ΞΠςϜɺίʔσɺϒϥϯυɺళฮͳ Ͳͷ͋ΒΏΔϑΝογϣϯใΛ֨ೲ ▸ .POPMJUIJDͳ3BJMTͷ"1*
▸ Ұ෦ϚΠΫϩαʔϏεʹҠߦ ▸ ݕࡧʹ4PMSɺΩϟογϡʹ3FEJT ▸ Ҏ্͋ΔΤϯτϦϙΠϯτͷฏۉ ϨεϙϯελΠϜNTҎԼͱߴ
iQONͷٕज़ج൫ / Ϋϩʔϥʔ ▸Ϋϩʔϥʔ ▸ Ҏ্ͷ&$αΠτΛΫϩʔϧ ▸ ஈɺࣸਅɺઆ໌ɺࡏݿͷ ▸ σΟʔϓϥʔχϯάʹΑΔΞΠςϜͷࣗಈΧςΰϦྨ
▸ ΞΠςϜͷը૾ఆ ▸ ฏஔ͖͔ɺਓ͕ண͍ͯΔ͔ɺτϧιʔ͔ ▸ ΞΠςϜը૾ΛࣗಈͰനൈ͖ॲཧ
iQONͷٕज़ج൫ / Πϯϑϥ ▸ Πϯϑϥ ▸ ҆ఆͨ͠αʔϏεͷఏڙ ▸ "843%4"VSPSB3FEJT%ZOBNP424 .BDLFSFM
4FOUSZ /FX3FMJDFUD ▸ σʔλੳج൫ ▸ "84ɾ($1ͷϚϧνΫϥυ #JH2VFSZ ▸ Ϋϩʔϥʔج൫ ▸ ෛՙʹԠͯ͡Φʔτεέʔϧ .FTPT%PDLFS
iQONͷٕज़ج൫ / σʔλ ▸ σʔλαΠΤϯε ▸ σʔλͷੳͱΞϧΰϦζϜͷݚڀ։ൃ ▸ ͋ΒΏΔϩάΛ#JH2VFSZʹೖΕͯɺJ20/ͷେͳσʔλͷੳΛߦ͏ ▸
ػցֶशɾσΟʔϓϥʔχϯάʹྗ GPS:PV ྨࣅը૾ݕࡧΤϯδϯͷ։ൃ ▸ ՄࢹԽɺσʔλڞ༗ʹ 5BCMFBV%FTLUPQ 5BCMFBV4FSWFSΛ׆༻
࣮ࡍͷ͢͢Ί͔ͨ ▸ ֤νʔϜͰڠྗ͠ͳ͕ΒਐΊ͍ͯ͘ ▸ ࣮ࡍͲ͏։ൃΛਐΊ͍ͯ͘ͷ͔ʁ ▸ ΞΠςϜݕࡧͷ࣮Λྫʹ։ൃϑϩʔΛݟ͍ͯ͘
J20/ͷ։ൃϑϩʔ
։ൃͷਐΊํ ▸ ࣮ࡍʹ։ൃΛͲ͏ਐΊΔͷ͔ʁ ▸ σβΠϯɺΞϓϦ։ൃɺόοΫΤϯυͰνʔϜΛ Ή ▸ ؔऀશһͰΩοΫΦϑ.5(Λߦ͍༷Λݕ౼ ▸ 2JJUBνʔϜͰϓϩδΣΫτΛ࡞
▸ ༷ɺઃܭɺεέδϡʔϧɺݟੵΓɺ֤छݕূ ▸ શͯ2JJUBʹυΩϡϝϯτΛ·ͱΊΔ ▸ ,1*͓Αͼܭଌ༷ܾఆ
6*ઃܭ ▸ ֤04ͰͷϢʔβʔମݧΛ౿·͑ͨ6*ͷઃܭ ▸ 4LFUDIͰ6*Λ։ൃ ▸ ༷͔ΒϞοΫΛ࡞͠JO7JTJPOͰνʔϜશମ ల։ ▸ ϞοΫͰڍಈ֬ೝɺϑΟʔυόοΫ
▸ ༷ͷ࿙Εෆ໌૬ஊɺमਖ਼
"1*ͷ࣮ ▸ ΞϓϦνʔϜͱόοΫΤϯυνʔϜ͕ڞಉͰ"1*Λઃܭ ▸ ΞϓϦνʔϜJO7JTPOΛݩʹඞཁͳσʔλΛચ͍ ग़͢ ▸ όοΫΤϯυνʔϜ͕"1*Λઃܭͱಉ࣌ʹ"QJBSZͰ "1*ͷϞοΫΛ࡞ NEͰ"1*Λఆٛ
▸ όοΫΤϯυνʔϜσʔλνʔϜͱ࿈ܞ͠ɺΞϧ ΰϦζϜͷબఆσʔλ༻"1*ͷ։ൃΛߦ͏ ▸ ΞϓϦଆ"QJBSZͷϞοΫΛར༻͠։ൃ ▸ "1*ͷσϓϩΠ͕ྃޙࠩ͠ସ͑ 0SBDMFʹങऩ͞Εͨ
▸ σβΠϯΨΠυϥΠϯʹԊ࣮ͬͨ ▸ J04)VNBO*OUFSGBDF(VJEFMJOFT ▸ .BUFSJBMEFTJHOHVJEFMJOFT ▸ J20/EFTJHOHVJEFMJOFT ▸ 04ผʹ࡞
▸ IUUQUFDIWBTJMZKQFOUSZEFTJHO@HVJEFMJOF ΞϓϦͷ࣮
*20/σβΠϯΨΠυϥΠϯ
*20/σβΠϯΨΠυϥΠϯ
ΞϓϦͷ࣮ "/%30*% ▸ Sketch͔ΒZeplinॻ͖ग़͠ɺσβΠϯ༷֬ೝ͠ͳ͕Β࣮ ▸ Simpliͱ໎ͬͨ݁Ռɺdpද͕ࣔͰ͖ΔZeplinΛ࠾༻ σβΠϯΛͲ͏कΔ͔
ΞϓϦͷ࣮ "/%30*% ▸ Material CueͰ֬ೝ͠ͳ͕Β࣮ ▸ iQON8dpͷGridΛϕʔεʹͨ͠ σβΠϯ ▸ 8dpͷάϦουΛΦʔόʔϨΠදࣔ
▸ σβΠϯͷ֬ೝ͕༰қʹ σβΠϯΛͲ͏कΔ͔
ࣾ2" ▸ ϦϦʔεલʹ࣮ࢪ ▸ 2"γʔτʹهೖ ▸ ४උͯ͢TMBDLܦ༝ͷCPUͰࣗಈԽࡁ IUUQUFDIWBTJMZKQFOUSZBOESPJE@RB@BVUPNBUJPO ▸ ࢦఠʹରԠ͠ͳ͚ΕϦϦʔεෆՄ
▸ 2"ޙϦϦʔε
ࢪࡦͷධՁ ▸ ϦϦʔεޙʹࢪࡦͷධՁΛߦ͏ ▸ #JH2VFSZʹอଘ͞ΕͨϩάΛ5BCMFBVΛར༻ͯ͠ܭଌ݁ՌΛ֬ೝ ▸ 2JJUBʹܭଌ;Γ͔͑ΓϖʔδΛ࡞ɺڞ༗
·ͱΊ
▸ J20/༷ʑͳཁૉ͔Β࡞ΒΕ͍ͯΔ ▸ ։ൃʹؔΘΔ֤νʔϜͷྗͱڠྗ͕ͳ͚ΕJ20/࡞Εͳ͍ ▸ ΞϓϦνʔϜͷ࣮ͷͩ͜ΘΓ ▸ σβΠφʔʹΑΔ͍͍͢ମݧͱ6*ͷઃܭ ▸ όοΫΤϯυνʔϜʹΑΔڧݻͰ҆ఆͨ͠ج൫ͷߏங
▸ σʔλνʔϜʹΑΔચ࿅͞ΕͨΞϧΰϦζϜͱࢪࡦͷੳʹΑΔ1%$" ▸ ϕετΠϊϕʔςΟϒΞϓϦେͷडશһͷྗͷ݁Ռ
ࠓޙͷJ20/
ػցֶशʢσΟʔϓϥʔχϯάʣͷࢿ ը૾͔ΒΞΠςϜݕग़ྨࣅը૾ݕࡧ IUUQUFDIWBTJMZKQFOUSZEFUFDUJPO@BOE@SFUSJFWBM
ػցֶशʢσΟʔϓϥʔχϯάʣͷࢿ 7"&ͱ("/Λར༻ͨ͠ϑΝογϣϯΞΠςϜݕࡧ *#*4 IUUQUFDIWBTJMZKQFOUSZSFUSJFWBM@VTJOH@WBF@HBO
8FSF)JSJOH SFDSVJUNFOU!WBTJMZKQ