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
47
0
Share
Red or Green? Let us test
Talk at GDG DevFest Pisa 2019
Dmytro Khmelenko
April 13, 2019
More Decks by Dmytro Khmelenko
See All by Dmytro Khmelenko
Securing Python Web Applications
dkhmelenko
0
37
Best of login experience
dkhmelenko
0
120
Best of sign in experience @ Droidcon Lisbon
dkhmelenko
0
120
A journey to smaller APK size
dkhmelenko
1
120
A journey to smaller apk size
dkhmelenko
0
70
How Git helps us with localization
dkhmelenko
0
110
Dagger.Android module
dkhmelenko
0
74
MVVM vs. MVP
dkhmelenko
0
57
Unit testing
dkhmelenko
0
50
Other Decks in Programming
See All in Programming
Road to RubyKaigi: Play Hard(ware)
makicamel
1
570
空間オーディオの活用
objectiveaudio
0
150
ハーネスエンジニアリングとは?
kinopeee
13
6.9k
AWSはOSSをどのように 考えているのか?
akihisaikeda
0
110
書き換えて学ぶTemporal #fukts
pirosikick
2
370
Kubernetesを使わない環境にもCloud Nativeなデプロイを実現する / Enabling Cloud Native deployments without the complexity of Kubernetes
linyows
3
380
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
380
Are We Really Coding 10× Faster with AI?
kohzas
0
150
Back to the roots of date
jinroq
0
810
Agent Skills を社内で育てる仕組み作り
jackchuka
1
1.9k
実用!Hono RPC2026
yodaka
2
310
cloudnative conference 2026 flyle
azihsoyn
0
180
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.9k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
500
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Speed Design
sergeychernyshev
33
1.6k
30 Presentation Tips
portentint
PRO
1
290
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
800
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
140
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
YesSQL, Process and Tooling at Scale
rocio
174
15k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
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