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
モバイルアプリでのFeatureFlagの導入
Search
tinpay
September 20, 2019
Programming
0
610
モバイルアプリでのFeatureFlagの導入
モバイルアプリでFeature_Flagを導入したお話
tinpay
September 20, 2019
Tweet
Share
More Decks by tinpay
See All by tinpay
レガシーなiOSアプリのSwift化 〜5年分の成功と失敗事例〜
shoheifukui
0
240
モバイルアプリ開発チームをプラットフォームチームで分割した話
shoheifukui
0
530
iOSアプリの 大きな技術的負債に立ち向かう
shoheifukui
1
1.2k
ShareExtensionをためす
shoheifukui
2
1.8k
Other Decks in Programming
See All in Programming
Web技術を最大限活用してRAW画像を現像する / Developing RAW Images on the Web
ssssota
2
1.1k
Playwrightはどのようにクロスブラウザをサポートしているのか
yotahada3
7
2.2k
Django Ninja による API 開発効率化とリプレースの実践
kashewnuts
0
870
Learn CPU architecture with Assembly
akkeylab
1
1.3k
詳しくない分野でのVibe Codingで困ったことと学び/vibe-coding-in-unfamiliar-area
shibayu36
3
2.9k
ネイティブ製ガントチャートUIを作って学ぶUICollectionViewLayoutの威力
jrsaruo
0
120
dynamic!
moro
9
5.5k
defer f()とdefer fの挙動を 誤解していた話
kogamochiduki
2
160
Let's Write a Train Tracking Algorithm
twocentstudios
0
220
どの様にAIエージェントと 協業すべきだったのか?
takefumiyoshii
1
570
GraphQL×Railsアプリのデータベース負荷分散 - 月間3,000万人利用サービスを無停止で
koxya
1
1k
タスクの特性や不確実性に応じた最適な作業スタイルの選択(ペアプロ・モブプロ・ソロプロ)と実践 / Optimal Work Style Selection: Pair, Mob, or Solo Programming.
honyanya
2
120
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
45
7.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
51k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The World Runs on Bad Software
bkeepers
PRO
71
11k
Agile that works and the tools we love
rasmusluckow
331
21k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
BBQ
matthewcrist
89
9.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
610
How STYLIGHT went responsive
nonsquared
100
5.8k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Transcript
ϞόΠϧΞϓϦͰͷ'FBUVSF'MBHಋೖ 4FQ .PCJMF"DU04","
© Chatwork ࣗݾհ !2 $IBUXPSLגࣜձࣾ ΫϥΠΞϯτΞϓϦέʔγϣϯ։ൃ෦ Ҫɹষฏ J04ΞϓϦॻ͍ͨΓͯ͠·͢ UX!UJOQBZ
େࡕΦϑΟε കాʹҾͬӽ͠·ͨ͠
ౡͷ͋ͨΓ ص
ϞόΠϧΞϓϦͰ 'FBUVSF'MBHΛಋೖ͢Δ·Ͱ
© Chatwork 'FBUVSF'MBHʢ'FBUVSF5PHHMFʣͱ !6 ܧଓతϦϦʔεͱܧଓతσϓϩΠɺίʔσΟϯάʹ͍ͭͯͷϑΟʔυόοΫΛ։ൃऀͨͪʹ සൟʹఏڙͯ͘͠ΕΔɻ͜ΕΛ࣮ݱ͢Δʹɺෳͷ։ൃऀͨͪͷίʔυΛՄೳͳݶΓૣظʹ ౷߹͢Δ͜ͱ͕ඞཁʹͳΔɻ ػೳϒϥϯν͜ͷաఔʹൈ͚ಓΛ࡞ͬͯ͠·͏ɻػೳτάϧΛར༻͢Εɺ։ൃऀͨͪϝ ΠϯͷτϥοΫʹසൟʹιʔεΛ౷߹ͭͭ͠ɺ։ൃதͷػೳೖ͍͚ͬͯΔ࣮ߦܦ࿏ͷτά ϧΛʮ0''ʯʹ͓͚ͯ͠ɺͦͷػೳʮࢮΜͩʯঢ়ଶʹͳΔɻ৽͍࣮͠ߦܦ࿏Λ༗ޮʹ͢Δ
ͨΊͷ࿑ྗɺ୯ʹτάϧΛʮ0/ʯʹઃఆ͢Δ͚ͩͳͷͰɺेʹখ͍͞ɻ Ҿ༻ݩ8JLJQFEJB IUUQTKBXJLJQFEJBPSHXJLJϑΟʔνϟʔτάϧ
© Chatwork 'FBUVSF'MBHʢ'FBUVSF5PHHMFʣͱ !7 ݸผͷػೳͷ༗ޮແޮΛϑϥάΛར༻ͯ͠ཧ ͢ΔΈ wػೳΛ0''ʹͨ͠ঢ়ଶͰ͋Ε͍ͭͰϦϦʔεͰ͖ ΔͷͰɺػೳϒϥϯνͷੜଘظ͕ؒ͘ͳΔ
© Chatwork ࣮Πϝʔδ͜Μͳײ͡ !8 struct Feature { var isEnabled: Bool
var name: String } public final class FeatureFlag { static let shared = FeatureFlag() let featureA = Feature(isEnabled: true, name: "ػೳA") let featureB = Feature(isEnabled: true, name: "ػೳB") let featureC = Feature(isEnabled: true, name: "ػೳC") } class DemoViewModel { var message: Message? func delete(){ if FeatureFlag.shared.featureA.isEnabled { // ػೳA͕༗ޮͳ߹ displayAlert { self.message?.delete() } } else { self.message?.delete() } } }
Α͋͘Δέʔε
ෳਓͰ։ൃΛ͓͜ͳ͍ͬͯΔͱ ৽ػೳͷ։ൃ͕ ฒߦͰಈ͘έʔε
େ͖Ίͷػೳ"Ճ ͦͦ͜͜ͷػೳ#Ճ ͦͦ͜͜ͷػೳ$Ճ ਓͰ৽ػೳΛ։ൃ͍ͯ͠Δέʔε
'FBUVSF'MBHΛಋೖ͢Δલ
ػೳ͝ͱʹϒϥϯνΛ࡞Γ ͦͷϒϥϯνʹϚʔδ͍ͯ͘͠։ൃϑϩʔ ػೳ" ػೳ# ػೳ$
© Chatwork ՝ !14 ڊେͳ13ʹͳͬͯ͠·͏ ίϯϑϦΫτ͕େྔʹൃੜͯ͠ɺϚʔδ࡞ۀ͕େมʂ ֤ػೳͷ։ൃऀಉ࢜ͷίϛϡχέʔγϣϯίετ͕૿Ճʂ
ίϯϑϦΫτ͕େྔʹൃੜͯ͠ɺ Ϛʔδ࡞ۀ͕େมʂ ػೳ" ػೳ# ػೳ$ ͜͜ͷϚʔδ͕ ͘͢͝େมʂ
֤ػೳͷ։ൃऀಉ࢜ͷίϛϡχέʔγϣ ϯίετ͕૿Ճʂ ػೳ"ɿλΠϜϥΠϯػೳɺमਖ਼͍ͯͬͯ͠ΔΑɻ ػೳ#ɿͦͷमਖ਼ೖ͔ͬͯΒͷํ͕ػೳ#ରԠ͚͢͠Ͳɺ ػೳ"ͷϦϦʔε͍ͩͿઌͩΑͳ͊ɻͲ͏͠Α͏͔ɻ ػೳ$ɿλΠϜϥΠϯɺ͔ͨ͠͠Βमਖ਼ඞཁ͔ʜ ڞ༗͓͍ͯͨ͠΄͏͕͍͍͔ͳɻ
'FBUVSF'MBHΛಋೖͨ͠ޙ
13͕͙͢ʹϚʔδ͞ΕΔͷͰ ίϯϑϦΫτ͕ൃੜ͠ʹ͘͘ͳΔ ػೳ" ػೳ# ػೳ$ Ϛʔδָ͕ʂ
© Chatwork ࣮ࡍʹͬͯΈͨײ !19 w ৽ػೳͷ࣮͕ͲΜͲΜϚʔδ͞ΕΔΑ͏ʹͳͬͨ w ଞͷػೳ࣮ͷϦϦʔεΛͭඞཁ͕ͳ͘ͳͬͨ w 13͕খ͘͞ͳͬͨ
w ίϯϑϦΫτ͕ൃੜ͠ʹ͘͘ͳͬͨ w ػೳϦϦʔεΛίϯτϩʔϧͰ͖ΔΑ͏ʹͳͬͨ w ࣾϝϯόʔʹ͚ͩػೳΛ༗ޮʹ͢Δͱ͍͏Α͏ͳϑϩʔ͕؆୯ʹ࣮ݱͰ͖Δ w Γ͗͢ΔͱϦδΣΫτରʹͳΔͷͰؾΛ͚ͭΔඞཁ͋Γ
© Chatwork ࣮ࡍʹͬͯΈͨײ !20 w 4UPSZCPBSE্ͰͷذෆՄೳ w 4UPSZCPBSEͰQSPQFSUZΛ৭ʑઃఆ͍ͯ͠Δ߹qBHʹΑΔذ͕͍͠ ͕ɺ7JFX$POUSPMMFSͰͷذՄೳͳͷͰɺ͋Δఔ6*ͷذͰ͖Δ w
"#ςετͷج൫ͮ͘ΓʹͳΔ w ϑϥάʹΑͬͯػೳΛΓସ͑ΔͷͰɺ"#ςετ։ൃͷ࣮ʹࣅ͍ͯΔ
·ͱΊ
© Chatwork ·ͱΊ !22 'FBUVSF'MBHͷϝϦοτ w ͍ͭͰEFWFMPQʹ13ΛϚʔδͰ͖ΔΑ͏ʹͳͬͨ w ϦϦʔε൛ΞϓϦΛར༻ͯ͠ɺ৽ػೳΛૣ͘ఏڙͰ͖Δ 'FBUVSF'MBHΛͬͯࢥͬͨ͜ͱ
w 4UPSZCPBSEͰͷར༻͍͠ɺେ͖͗͢Δमਖ਼ʹ͍ͯͳ͍ w ϑϥάʹΑΔذͷ࣮Ҋ֎γϯϓϧͳͷͰɺ·ͣͬͯ ΈͯΑ͔ͬͨ
https://corp.chatwork.com/ja/recruit/engineer/ ϞόΠϧΞϓϦ ΤϯδχΞ ืूͯ͠·͢ʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠