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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
tinpay
September 20, 2019
Programming
680
0
Share
モバイルアプリでのFeatureFlagの導入
モバイルアプリでFeature_Flagを導入したお話
tinpay
September 20, 2019
More Decks by tinpay
See All by tinpay
レガシーなiOSアプリのSwift化 〜5年分の成功と失敗事例〜
shoheifukui
0
310
モバイルアプリ開発チームをプラットフォームチームで分割した話
shoheifukui
0
610
iOSアプリの 大きな技術的負債に立ち向かう
shoheifukui
1
1.3k
ShareExtensionをためす
shoheifukui
2
1.8k
Other Decks in Programming
See All in Programming
関係性から理解する"同一性"の型用語たち
pvcresin
2
630
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
190
ふつうのFeature Flag実践入門
irof
7
3.5k
エージェンティックRAGにAWSで入門しよう!
har1101
7
720
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
370
Copilot CLI の継戦能力を高める コンテキスト管理
nozomutu
1
1.2k
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.4k
Oxlintのカスタムルールの現況
syumai
5
990
Swiftのレキシカルスコープ管理
kntkymt
0
210
New "Type" system on PicoRuby
pocke
1
450
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
980
Stage 3 Decorators でできること / できないこと / TSKaigi 2026
susisu
1
1.5k
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
860
How to Ace a Technical Interview
jacobian
281
24k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Skip the Path - Find Your Career Trail
mkilby
1
140
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
210
The browser strikes back
jonoalderson
0
1.1k
GraphQLとの向き合い方2022年版
quramy
50
15k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Done Done
chrislema
186
16k
A Tale of Four Properties
chriscoyier
163
24k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.6k
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/ ϞόΠϧΞϓϦ ΤϯδχΞ ืूͯ͠·͢ʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠