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
590
モバイルアプリでのFeatureFlagの導入
モバイルアプリでFeature_Flagを導入したお話
tinpay
September 20, 2019
Tweet
Share
More Decks by tinpay
See All by tinpay
レガシーなiOSアプリのSwift化 〜5年分の成功と失敗事例〜
shoheifukui
0
230
モバイルアプリ開発チームをプラットフォームチームで分割した話
shoheifukui
0
510
iOSアプリの 大きな技術的負債に立ち向かう
shoheifukui
1
1.2k
ShareExtensionをためす
shoheifukui
2
1.7k
Other Decks in Programming
See All in Programming
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
goyoki
5
1.2k
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
0
300
20250708_JAWS_opscdk
takuyay0ne
2
130
初学者でも今すぐできる、Claude Codeの生産性を10倍上げるTips
s4yuba
16
13k
テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / Agentic Coding starts with testing
rkaga
16
5.7k
ご注文の差分はこちらですか? 〜 AWS CDK のいろいろな差分検出と安全なデプロイ
konokenj
4
600
階層化自動テストで開発に機動力を
ickx
0
250
可変変数との向き合い方 $$変数名が踊り出す$$ / php conference Variable variables
gunji
0
190
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
1
310
副作用と戦う PHP リファクタリング ─ ドメインイベントでビジネスロジックを解きほぐす
kajitack
2
170
AI コーディングエージェントの時代へ:JetBrains が描く開発の未来
masaruhr
1
210
Python型ヒント完全ガイド 初心者でも分かる、現代的で実践的な使い方
mickey_kubo
1
240
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
246
12k
Visualization
eitanlees
146
16k
Raft: Consensus for Rubyists
vanstee
140
7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Site-Speed That Sticks
csswizardry
10
700
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Fireside Chat
paigeccino
37
3.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Navigating Team Friction
lara
187
15k
Documentation Writing (for coders)
carmenintech
72
4.9k
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/ ϞόΠϧΞϓϦ ΤϯδχΞ ืूͯ͠·͢ʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠