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
39
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
Best of login experience
dkhmelenko
0
110
Best of sign in experience @ Droidcon Lisbon
dkhmelenko
0
59
A journey to smaller APK size
dkhmelenko
1
100
A journey to smaller apk size
dkhmelenko
0
53
How Git helps us with localization
dkhmelenko
0
93
Dagger.Android module
dkhmelenko
0
49
MVVM vs. MVP
dkhmelenko
0
42
Unit testing
dkhmelenko
0
32
RxJava at Freeletics
dkhmelenko
0
76
Other Decks in Programming
See All in Programming
Parallel Socket Communication in Swift
s_shimotori
0
260
15分間でふんわり理解するDocker @ Matsuriba MAX
ukwhatn
PRO
1
340
[スクリプト] Swiftの型推論を学ぼう
omochi
0
120
htmx is fun!
codehex
2
190
オブジェクト指向コードレビューの新しいアプローチ
akkie76
3
1.6k
生成 AI の中身を覗いてみよう〜基礎から医療現場での応用まで〜
soh9834
2
770
品質とスピードを両立: TypeScriptの柔軟な型システムをバックエンドで活用する
kosui
5
1.2k
品質が高いコードって何?Rev2.1
ickx
1
490
WasmOS: Wasmを実行する自作Microkernel
riru
0
370
マイ隙間家具OSSたちのご紹介
karupanerura
2
160
CircleCIを活用して AWSへの継続的デリバリーを 実践する
coconala_engineer
1
110
オブジェクトしこう
okuramasafumi
2
130
Featured
See All Featured
Music & Morning Musume
bryan
39
5.5k
[RailsConf 2023] Rails as a piece of cake
palkan
21
3.8k
Why Our Code Smells
bkeepers
PRO
330
56k
Creatively Recalculating Your Daily Design Routine
revolveconf
209
11k
Adopting Sorbet at Scale
ufuk
66
8.5k
RailsConf 2023
tenderlove
0
510
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
111
35k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
225
51k
Bash Introduction
62gerente
604
210k
Being A Developer After 40
akosma
56
580k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.8k
What's in a price? How to price your products and services
michaelherold
236
11k
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