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
510
モバイルアプリでのFeatureFlagの導入
モバイルアプリでFeature_Flagを導入したお話
tinpay
September 20, 2019
Tweet
Share
More Decks by tinpay
See All by tinpay
レガシーなiOSアプリのSwift化 〜5年分の成功と失敗事例〜
shoheifukui
0
170
モバイルアプリ開発チームをプラットフォームチームで分割した話
shoheifukui
0
450
iOSアプリの 大きな技術的負債に立ち向かう
shoheifukui
1
1.2k
ShareExtensionをためす
shoheifukui
2
1.7k
Other Decks in Programming
See All in Programming
ゼロからの、レトロゲームエンジンの作り方
tokujiros
3
1k
良いユニットテストを書こう
mototakatsu
11
3.6k
為你自己學 Python
eddie
0
520
Fibonacci Function Gallery - Part 2
philipschwarz
PRO
0
210
盆栽転じて家具となる / Bonsai and Furnitures
aereal
0
1.8k
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
590
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
1.3k
Внедряем бюджетирование, или Как сделать хорошо?
lamodatech
0
940
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
2.1k
PHPカンファレンス 2024|共創を加速するための若手の技術挑戦
weddingpark
0
140
PicoRubyと暮らす、シェアハウスハック
ryosk7
0
220
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
6
700
Featured
See All Featured
Thoughts on Productivity
jonyablonski
68
4.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Mobile First: as difficult as doing things right
swwweet
222
9k
It's Worth the Effort
3n
183
28k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.4k
Into the Great Unknown - MozCon
thekraken
34
1.6k
Facilitating Awesome Meetings
lara
51
6.2k
Building Your Own Lightsaber
phodgson
104
6.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
Writing Fast Ruby
sferik
628
61k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
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/ ϞόΠϧΞϓϦ ΤϯδχΞ ืूͯ͠·͢ʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠