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
Data-driven app development
Search
Seiji Kasahara
November 22, 2016
Programming
0
570
Data-driven app development
Presented in shibuya.apk #11
https://shibuya-apk.connpass.com/event/42020/
Seiji Kasahara
November 22, 2016
Tweet
Share
Other Decks in Programming
See All in Programming
Android 16 × Jetpack Composeで縦書きテキストエディタを作ろう / Vertical Text Editor with Compose on Android 16
cc4966
2
240
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
390
testingを眺める
matumoto
1
140
AWS発のAIエディタKiroを使ってみた
iriikeita
1
190
プロパティベーステストによるUIテスト: LLMによるプロパティ定義生成でエッジケースを捉える
tetta_pdnt
0
1.7k
AI Coding Agentのセキュリティリスク:PRの自己承認とメルカリの対策
s3h
0
230
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
440
250830 IaCの選定~AWS SAMのLambdaをECSに乗り換えたときの備忘録~
east_takumi
0
390
Compose Multiplatform × AI で作る、次世代アプリ開発支援ツールの設計と実装
thagikura
0
160
為你自己學 Python - 冷知識篇
eddie
1
350
AI時代のUIはどこへ行く?
yusukebe
18
8.9k
AIコーディングAgentとの向き合い方
eycjur
0
270
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Practical Orchestrator
shlominoach
190
11k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Rails Girls Zürich Keynote
gr2m
95
14k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Balancing Empowerment & Direction
lara
3
620
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Unsuck your backbone
ammeep
671
58k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
530
We Have a Design System, Now What?
morganepeng
53
7.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Transcript
Data-driven app development Seiji Kasahara
ελʔτΞοϓͰओʹσʔλλεΫΛѻͬͯ·͢ ▸ seijik42 ▸ ελʔτΞοϓͰΤϯδχΞʢδΣωϥϦετʣ ▸ ंͰ҆શʹศརʹεϚϗΛ͏ΞϓϦΛ։ൃ͍ͯ͠·͢ ▸ σʔλΛ׆༻ͨ͠ػೳ։ൃɺΛ͛ΔϘτϧωοΫੳɺ৽ػೳͷޮՌଌఆ 2
ελʔτΞοϓͰͷσʔλੳϊϋΛڞ༗͠·͢ ▸ ͳͥσʔλυϦϒϯͳҙࢥܾఆ͕େ͔ ▸ Ͳͷࢦඪʹूத͢Δ͔ ▸ ͬͱͨ͠ݕূ݁ՌʹͳΒͳ͍ͨΊʹ ▸ ༻͍ͯ͠ΔαʔϏεɾϑϨʔϜϫʔΫ ▸
ߦ͍ͬͯΔ ▸ ϫʔΫϑϩʔྫ 3
ͳͥσʔλυϦϒϯͳҙࢥܾఆ͕େͳͷ͔ ▸ ඞཁͩͱ͓͔ͬͨΒػೳՃͯ͠Έͨͷͷɺػೳ͕ΞϓϦͷʹߩݙͯ͠ ͍Δ͔ෆ໌ɺ͔͠͠ϝϯςίετ૿େ ▸ => εϐʔυ໋͕Ͱ͋ΔελʔτΞοϓʹͱͬͯக໋ই 4
Ͳͷࢦඪʹूத͢Δ͔ ▸ ૿ՃϢʔβʔ = ֫ಘϢʔβʔ - ྲྀग़Ϣʔβʔ ▸ ֫ಘϢʔβʔվળ =>
ࣗવྲྀೖɺϚʔέςΟϯάʹΑΔྲྀೖ ▸ ྲྀग़Ϣʔβʔվળ => ϦςϯγϣϯϨʔτͷվળɺΞϯΠϯετʔϧࢭ 5
Ͳͷࢦඪʹूத͢Δ͔ ▸ ૿ՃϢʔβʔ = ֫ಘϢʔβʔ - ྲྀग़Ϣʔβʔ ▸ ֫ಘϢʔβʔվળ =>
ࣗવྲྀೖɺϚʔέςΟϯάʹΑΔྲྀೖ ▸ ྲྀग़Ϣʔβʔվળ => ϦςϯγϣϯϨʔτͷվળɺΞϯΠϯετʔϧࢭ 6 ݀ͷۭ͍ͨόέπʹਫΛ͗ଓ͚ͯҙຯ͕ແ͍ͷͰɾɾ
ςΩετ ϦςϯγϣϯͬͯͲͷʁʢܭࢉํ๏ͷҧ͍ʣ 7 Full retention Classic retention Rolling retention Ҿ༻ɿhttp://www.applift.com/blog/user-retention
ͳͲͳͲɾɾ
ϦςϯγϣϯͬͯͲͷʁʢܭࢉํ๏ͷҧ͍ʣ 8 Classic retention Ҿ༻ɿhttp://www.applift.com/blog/user-retention - γϯϓϧͰܭࢉ͍͢͠ - ଞͷαʔϏεͰΘΕ͍ͯΔࣄ͕ଟ͍ͷͰൺֱ͍͢͠
ϦςϯγϣϯͬͯͲͷʁʢظؒͷҧ͍ʣ 9 Classic retention Ҿ༻ɿhttp://www.applift.com/blog/user-retention 1 1Day? ͦΕͱ28Day?
ϦςϯγϣϯͬͯͲͷʁʢظؒͷҧ͍ʣ 10 Ҿ༻ɿhttp://andrewchen.co/new-data-shows-why-losing-80-of-your-mobile-users-is-normal-and-that-the-best-apps-do-much-better/
ϦςϯγϣϯͬͯͲͷʁʢظؒͷҧ͍ʣ 11 Ҿ༻ɿhttp://andrewchen.co/new-data-shows-why-losing-80-of-your-mobile-users-is-normal-and-that-the-best-apps-do-much-better/ - ͍ͬͯΔϢʔβʔͷੑ࣭ɺߦಈύλʔϯશ͘ҧ͏ - ظͷվળ͔Β࢝Ίͯɺ࣍ୈʹ͍ͯ͘͘͠ͷ͕ྑ͍͔
ͬͱͨ͠ݕূ݁ՌʹͳΒͳ͍ͨΊʹ 12 - Ϣʔβʔͷྨํ๏ʢࣦഊྫʣ - ظؒ : ػೳϦϦʔεલʹΠϯετʔϧɺϦϦʔεޙʹΠϯετʔϧͨ͠ϢʔβʔͰൺֱ - =>
֎෦ཁҼ͕ଟ͘ɺ໌֬ͳҙࢥܾఆͰ͖ͳ͔ͬͨ - ྫɿ݄̓ʹ৽ػೳϦϦʔε - ̑ɾ݄̒ʹ֫ಘͨ͠Ϣʔβʔͱɺ̓ɾ݄̔ʹ֫ಘͨ͠Ϣʔβʔͷ ϦςϯγϣϯϨʔτΛൺֱͨ͠ͱ͜Ζɺ1%ͷվળ͕͋ͬͨʂ - ̓ɾ݄̔ʹυϥΠϒʹߦ͘ਓ͕ଟ͍͚ͩͰʁ - ݄̓Πϯυ͔Βͷྲྀೖ͕ଟ͔ͬͨɻࠃʹΑΔࠩͷӨڹʁ - etc.
ͬͱͨ͠ݕূ݁ՌʹͳΒͳ͍ͨΊʹ 13 - Ϣʔβʔͷྨํ๏ - ϥϯμϜͰͷػೳग़͚͠ʢABςετʣ - ظؒɺσϞάϥͳͲ͋ΒΏΔόΠΞεͷӨڹΛഉআͰ͖Δ - ػೳࣗମΛABςετͰग़͚͠
- ҙ - ࣄલʹग़͚͠ɾੳ͢Δ෦Λܭը͠ɺਖ਼࣮͘͠͠ͳ͚Ε͍͚ͳ͍ - εέδϡʔϧܭըେɻಉ͡KPIվળΛࢦ͢ػೳΛෳಉ࣌ʹςετ͠ ͯ͠·͏ͱɺൺֱՄೳͳϢʔβʔ͕ݮগͯ͠͠·͏
༻͍ͯ͠ΔαʔϏε ▸ Mixpanel ▸ ϑΝωϧੳ͕ࣄલੳʹศར ▸ ૉૣ͘େ·͔ͳࣈΛ͔ͭΈ͍ͨͱ͖ʹ׆༻ ▸ BigQuery &
Google Sheets & Google Sheet add-on(OWOX BI) ▸ ΑΓ۩ମతͳ݅ͰੳՄೳ ▸ ෳͷσʔλιʔεΛΈ߹Θͤͨੳʹར༻ ▸ Firebase Analytics ▸ ΞϯΠϯετʔϧΠϕϯτͷऔಘ͕Մೳ 14
ϑϨʔϜϫʔΫ ▸ ABςετϑϨʔϜϫʔΫ 15 ॳճىಈ࣌ ϢʔβʔͷৼΓ͚࣌ʹαʔόʔʹΞΫηε͢Δඞཁ͕ͳ͘ ϑΝʔετεΫϦʔϯ͔ΒϥΠϑλΠϜΛ௨ͯ͠ςετՄೳ seed = hash(UUID)
% 100; set_seed(seed); If (seed < rollout_rate)ɹ{ return FEATURE_ON; } else { return FEATURE_OFF; } ػೳग़͚͠ɾΠϕϯτૹ৴
ߦ͍ͬͯΔ ▸ ϓϩύςΟ໊ͷѹॖ ▸ ϩάͷΦʔόʔϨΠදࣔ 16
17 CLIENT ϓϩύςΟ໊ͷѹॖ SERVER event_name: 1 visit_from: 2 … 1:
event_name 2: visit_from … event_name: ViewedProfileScreen visit_from: MainScreen … 1: ViewedProfileScreen 2: MainScreen … Πϕϯτσʔλ ѹॖσʔλ Event dataΛ෮ݩ
18 CLIENT ϓϩύςΟ໊ͷѹॖ SERVER event_name: 1 visit_from: 2 … 1:
event_name 2: visit_from … event_name: ViewedProfileScreen visit_from: MainScreen … 1: ViewedProfileScreen 2: MainScreen … Πϕϯτσʔλ ѹॖσʔλ Event dataΛ෮ݩ ϐʔΫ࣌ͷτϥϑΟοΫΛ1/2 - 1/3 ఔʹݮ
19 ϩάͷΦʔόʔϨΠදࣔ ࣾϝϯόʔͷΈදࣔ τϥοΫͰ͖͍ͯͳ͍Πϕϯτ͕ͳ͍͔ɺ ΤϯδχΞҎ֎ͰQA͕Մೳ
ϫʔΫϑϩʔྫ ▸ ͷѲ ▸ ͜͜Ͱࣄલͷσʔλੳ͕ඞཁ ▸ ԾઆΛઃఆ ▸ ΞΫγϣϯ͕औΕΔԾઆΛઃఆ͢Δ͜ͱ͕େ ▸
ԾઆΛݕূ͢ΔͨΊͷػೳΛߟҊɾ༷ࡦఆ ▸ ݕূ࣌ʹඞཁͱͳΔΠϕϯτɾϓϩύςΟ໌֬ʹ͓ͯ͘͠ ▸ ςετ࣮ࢪɾԾઆݕূ ▸ ౷ܭత༗ҙͳ໌֬ͳ͕͑ಘΒΕΔͱݶΒͳ͍ 20
ϫʔΫϑϩʔྫ ▸ ͷѲ ▸ ͜͜Ͱࣄલͷσʔλੳ͕ඞཁ ▸ ԾઆΛઃఆ ▸ ΞΫγϣϯ͕औΕΔԾઆΛઃఆ͢Δ͜ͱ͕େ ▸
ԾઆΛݕূ͢ΔͨΊͷػೳΛߟҊɾ༷ࡦఆ ▸ ݕূ࣌ʹඞཁͱͳΔΠϕϯτɾϓϩύςΟ໌֬ʹ͓ͯ͘͠ ▸ ςετ࣮ࢪɾԾઆݕূ ▸ ౷ܭత༗ҙͳ໌֬ͳ͕͑ಘΒΕΔͱݶΒͳ͍ 21 ྫɿॳͷϝοηʔδػೳͷར༻සͷ͍Ϣʔβʔͷ̏ޙϦςϯγϣϯ͕͍
ϫʔΫϑϩʔྫ ▸ ͷѲ ▸ ͜͜Ͱࣄલͷσʔλੳ͕ඞཁ ▸ ԾઆΛઃఆ ▸ ΞΫγϣϯ͕औΕΔԾઆΛઃఆ͢Δ͜ͱ͕େ ▸
ԾઆΛݕূ͢ΔͨΊͷػೳΛߟҊɾ༷ࡦఆ ▸ ݕূ࣌ʹඞཁͱͳΔΠϕϯτɾϓϩύςΟ໌֬ʹ͓ͯ͘͠ ▸ ςετ࣮ࢪɾԾઆݕূ ▸ ౷ܭత༗ҙͳ໌֬ͳ͕͑ಘΒΕΔͱݶΒͳ͍ 22 ˚Ϣʔβʔʹͨ͘͞ΜϝοηʔδΛૹ৴ͤ͞Εվળ͢ΔͩΖ͏ ̋ϝοηʔδͷศར͞Λ͑ΔνϡʔτϦΞϧΛՃ͑Εվળ͢ΔͩΖ͏ ྫɿॳͷϝοηʔδػೳͷར༻සͷ͍Ϣʔβʔͷ̏ޙϦςϯγϣϯ͕͍
ϫʔΫϑϩʔྫ ▸ ͷѲ ▸ ͜͜Ͱࣄલͷσʔλੳ͕ඞཁ ▸ ԾઆΛઃఆ ▸ ΞΫγϣϯ͕औΕΔԾઆΛઃఆ͢Δ͜ͱ͕େ ▸
ԾઆΛݕূ͢ΔͨΊͷػೳΛߟҊɾ༷ࡦఆ ▸ ݕূ࣌ʹඞཁͱͳΔΠϕϯτɾϓϩύςΟ໌֬ʹ͓ͯ͘͠ ▸ ςετ࣮ࢪɾԾઆݕূ ▸ ౷ܭత༗ҙͳ໌֬ͳ͕͑ಘΒΕΔͱݶΒͳ͍ 23 ར༻։࢝ϑϩʔͷதͰɺBot͔ΒςετϝοηʔδΛड͚औΓɺ ฦ৴ͤ͞ΔνϡʔτϦΞϧΛઃܭ ˚Ϣʔβʔʹͨ͘͞ΜϝοηʔδΛૹ৴ͤ͞Εվળ͢ΔͩΖ͏ ̋ϝοηʔδͷศར͞Λ͑ΔνϡʔτϦΞϧΛՃ͑Εվળ͢ΔͩΖ͏ ྫɿॳͷϝοηʔδػೳͷར༻සͷ͍Ϣʔβʔͷ̏ޙϦςϯγϣϯ͕͍
ϫʔΫϑϩʔྫ ▸ ͷѲ ▸ ͜͜Ͱࣄલͷσʔλੳ͕ඞཁ ▸ ԾઆΛઃఆ ▸ ΞΫγϣϯ͕औΕΔԾઆΛઃఆ͢Δ͜ͱ͕େ ▸
ԾઆΛݕূ͢ΔͨΊͷػೳΛߟҊɾ༷ࡦఆ ▸ ݕূ࣌ʹඞཁͱͳΔΠϕϯτɾϓϩύςΟ໌֬ʹ͓ͯ͘͠ ▸ ςετ࣮ࢪɾԾઆݕূ ▸ ౷ܭత༗ҙͳ໌֬ͳ͕͑ಘΒΕΔͱݶΒͳ͍ 24 ABςετΛ࣮ࢪɺϦςϯγϣϯϨʔτΛൺֱɾݕఆ ར༻։࢝ϑϩʔͷதͰɺBot͔ΒςετϝοηʔδΛड͚औΓɺ ฦ৴ͤ͞ΔνϡʔτϦΞϧΛઃܭ ˚Ϣʔβʔʹͨ͘͞ΜϝοηʔδΛૹ৴ͤ͞Εվળ͢ΔͩΖ͏ ̋ϝοηʔδͷศར͞Λ͑ΔνϡʔτϦΞϧΛՃ͑Εվળ͢ΔͩΖ͏ ྫɿॳͷϝοηʔδػೳͷར༻සͷ͍Ϣʔβʔͷ̏ޙϦςϯγϣϯ͕͍
ϫʔΫϑϩʔྫ ▸ ͷѲ ▸ ͜͜Ͱࣄલͷσʔλੳ͕ඞཁ ▸ ԾઆΛઃఆ ▸ ΞΫγϣϯ͕औΕΔԾઆΛઃఆ͢Δ͜ͱ͕େ ▸
ԾઆΛݕূ͢ΔͨΊͷػೳΛߟҊɾ༷ࡦఆ ▸ ݕূ࣌ʹඞཁͱͳΔΠϕϯτɾϓϩύςΟ໌֬ʹ͓ͯ͘͠ ▸ ςετ࣮ࢪɾԾઆݕূ ▸ ౷ܭత༗ҙͳ໌֬ͳ͕͑ಘΒΕΔͱݶΒͳ͍ 25 ରػೳΛશϢʔβʔʹϦϦʔεɺ͋Δ͍আ ABςετΛ࣮ࢪɺϦςϯγϣϯϨʔτΛൺֱɾݕఆ ར༻։࢝ϑϩʔͷதͰɺBot͔ΒςετϝοηʔδΛड͚औΓɺ ฦ৴ͤ͞ΔνϡʔτϦΞϧΛઃܭ ˚Ϣʔβʔʹͨ͘͞ΜϝοηʔδΛૹ৴ͤ͞Εվળ͢ΔͩΖ͏ ̋ϝοηʔδͷศར͞Λ͑ΔνϡʔτϦΞϧΛՃ͑Εվળ͢ΔͩΖ͏ ྫɿॳͷϝοηʔδػೳͷར༻සͷ͍Ϣʔβʔͷ̏ޙϦςϯγϣϯ͕͍
26 ΤϯδχΞੵۃ࠾༻தʂ
[email protected]