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
Red or Green? Let us test
Search
Dmytro Khmelenko
April 13, 2019
Programming
0
43
Red or Green? Let us test
Talk at GDG DevFest Pisa 2019
Dmytro Khmelenko
April 13, 2019
Tweet
Share
More Decks by Dmytro Khmelenko
See All by Dmytro Khmelenko
Securing Python Web Applications
dkhmelenko
0
20
Best of login experience
dkhmelenko
0
110
Best of sign in experience @ Droidcon Lisbon
dkhmelenko
0
80
A journey to smaller APK size
dkhmelenko
1
120
A journey to smaller apk size
dkhmelenko
0
60
How Git helps us with localization
dkhmelenko
0
97
Dagger.Android module
dkhmelenko
0
64
MVVM vs. MVP
dkhmelenko
0
47
Unit testing
dkhmelenko
0
39
Other Decks in Programming
See All in Programming
Lottieアニメーションをカスタマイズしてみた
tahia910
0
120
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
1
670
ISUCON14公式反省会LT: 社内ISUCONの話
astj
PRO
0
190
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
950
もう僕は OpenAPI を書きたくない
sgash708
3
990
Domain-Driven Transformation
hschwentner
2
1.9k
WebDriver BiDiとは何なのか
yotahada3
1
140
Bedrock Agentsレスポンス解析によるAgentのOps
licux
3
820
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
120
パスキーのすべて ── 導入・UX設計・実装の紹介 / 20250213 パスキー開発者の集い
kuralab
3
730
ソフトウェアエンジニアの成長
masuda220
PRO
10
920
ファインディの テックブログ爆誕までの軌跡
starfish719
2
1.1k
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.5k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
How to train your dragon (web standard)
notwaldorf
91
5.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Being A Developer After 40
akosma
89
590k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
A Philosophy of Restraint
colly
203
16k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Building Applications with DynamoDB
mza
93
6.2k
Transcript
Green or red? Let us test Dmytro Khmelenko Software Engineer
@ Freeletics
A/B test What is that? !2
!3
Original !4
Original Variation !5
Original Variation All users 50% 50% !6
Original Variation All users 50% 50% Winner !7
Production example 8
# 1 Purchase screen 9
Original Variation 10
Original Variation +30% Conversion rate 11
# 2 Main app screen 12
Original Variation 13
Original Variation +18% Conversion rate 14
# 3 Dark vs Light theme 15
Original Variation 16
Original Variation 17 -6% Conversion rate
A/B testing is good for your product 18
Know how 19
Remote Config 20
Remote config 21
Conditions 22
Conditions 23
Conditions 24
Conditions 25
Conditions 26
Remote config 27
Parameters 28
Feature flag 29
Feature flag 30
Feature flag 31
Firebase Remote Config App configuration 32
App configuration fun initRemoteConfig() { val remoteConfig = FirebaseRemoteConfig.getInstance() remoteConfig.fetch()
.addOnSuccessListener { remoteConfig.activateFetched() } } 33
App configuration fun initRemoteConfig() { val remoteConfig = FirebaseRemoteConfig.getInstance() val
configSettings = FirebaseRemoteConfigSettings.Builder() .setDeveloperModeEnabled(BuildConfig.DEBUG) .build() remoteConfig.setConfigSettings(configSettings) remoteConfig.setDefaults(R.xml.remote_config_defaults) remoteConfig.fetch() .addOnSuccessListener { remoteConfig.activateFetched() } } 34
App configuration fun isFeatureEnabled(name: String): Boolean { return remoteConfig.getBoolean(name) }
35
App configuration fun isFeatureEnabled(name: String): Boolean { return remoteConfig.getBoolean(name) }
... if (isFeatureEnabled(“new_purchase_screen”)) { ... } 36
37
Firebase A/B Testing (beta) 38
Firebase A/B Testing 39
@dkhmelenko