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
Best of login experience
Search
Dmytro Khmelenko
October 04, 2019
Programming
0
110
Best of login experience
Best of login experience presented at Mobiconf, Krakow 2019
Dmytro Khmelenko
October 04, 2019
Tweet
Share
More Decks by Dmytro Khmelenko
See All by Dmytro Khmelenko
Best of sign in experience @ Droidcon Lisbon
dkhmelenko
0
59
Red or Green? Let us test
dkhmelenko
0
39
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
Cloud RunとCloud PubSubでサーバレスなデータ基盤2024 with Terraform / Cloud Run and PubSub with Terraform
shinyorke
7
1.9k
どうしてこうなった命名集 ~🔥編~ / OOC 2024 LT
pictiny
4
2.7k
Honoとhtmx
yusukebe
6
1.2k
実践!RDRAを活用した既存システムの仕様変更 / Specification Changes in Existing Systems Utilizing RDRA
imamotohikaru
0
2.1k
ISUCONってなんだか難しそう……!!でも、初めてのISUCONにPHPで挑戦してきました!
kotomin_m
1
300
Learning PHP and Static Analysis with PHP Parser
inouehi
1
250
BuefyのMaintainerを引き継いだ件
kikuomax
0
510
MySQL のインデックスの種類をおさらいしよう! / overviewing indexes in MySQL
okashoi
0
170
オブジェクト指向コードレビューの新しいアプローチ
akkie76
3
1.1k
Laravel標準バリデーションでできること
hmb_ok
2
360
[スクリプト] Swiftの型推論を学ぼう
omochi
0
110
PHPでOfficeファイルを取り扱う! PHP Officeライブラリを プロダクトに組み込んだ話
hirobe1999
0
840
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
266
39k
Art, The Web, and Tiny UX
lynnandtonic
288
19k
What's new in Ruby 2.0
geeforr
335
31k
Building Your Own Lightsaber
phodgson
97
5.6k
Docker and Python
trallard
33
2.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
153
14k
Side Projects
sachag
451
41k
Making the Leap to Tech Lead
cromwellryan
122
8.4k
Product Roadmaps are Hard
iamctodd
43
9.6k
RailsConf 2023
tenderlove
0
510
The Brand Is Dead. Long Live the Brand.
mthomps
48
21k
Transcript
Best of login experience Dmytro Khmelenko Software Engineer @ Freeletics
How often did you have to do login in apps?
None
None
None
None
None
None
None
None
Why? - Privacy - Personalised content
Solutions
Log in with Facebook 2.3 billion monthly active users on
Facebook
Log in with Google
None
Distribution (Android)
Distribution (iOS)
oAuth
None
Solution
Firebase Has sign in pre-built UI
Firebase https://github.com/firebase/FirebaseUI-Android
Firebase Has sign in pre-built UI Supports multiple providers
None
Firebase Has sign in pre-built UI Supports multiple providers Has
account management
None
Firebase Has sign in pre-built UI Supports multiple providers Has
account management Anonymous access & account linking
Firebase Has sign in pre-built UI Supports multiple providers Has
account management Anonymous access & account linking Full email sign up support
None
Firebase: Good to know - Usage limits - Extending with
Cloud Functions - Accounts import/export
Classic Email log in
What’s wrong You have to type You need to remember
The password has to contain at least N characters. At least one character must be a number or a special character
Autofill framework https://developer.android.com/guide/topics/text/autofill
None
SmartLock for Passwords https://developers.google.com/identity/smartlock-passwords/android/
SmartLock for Passwords https://developers.google.com/identity/smartlock-passwords/case-studies - Increase in conversion rate -
Significant drop in register and sign in failures
How to
RxSmartLock https://github.com/freeletics/RxSmartLock
RxSmartLock - Saving - - RxGoogleSmartLockManager.storeCredentials(context, credentials).subscribe() https://github.com/freeletics/RxSmartLock
https://github.com/freeletics/RxSmartLock
RxSmartLock - Saving - - RxGoogleSmartLockManager.storeCredentials(context, credentials).subscribe() - Restoring -
- RxGoogleSmartLockManager.retrieveCredentials(context).subscribe() https://github.com/freeletics/RxSmartLock
https://github.com/freeletics/RxSmartLock
RxSmartLock implementation 'com.freeletics.rxsmartlock:rxsmartlock:1.0.2' https://github.com/freeletics/RxSmartLock
Fingerprint API - Secure - Fast - Easy
Fingerprint API: requirements - From API 26 - Fingerprint sensor
- Enabled Lock screen - Registered fingerprints - Grant permissions
Fingerprint API: with prompt https://android-developers.googleblog.com/2018/06/better-biometrics-in-android-p.html API 28
Fingerprint API: with prompt https://android-developers.googleblog.com/2018/06/better-biometrics-in-android-p.html API 28
https://android-developers.googleblog.com/2018/06/better-biometrics-in-android-p.html API 28
Fingerprint API: how to https://developer.android.com/reference/android/support/v4/hardware/fingerprint/FingerprintManagerCompat
Fingerprint API: how to https://developer.android.com/reference/android/support/v4/hardware/fingerprint/FingerprintManagerCompat
https://github.com/googlesamples/android-FingerprintDialog
Happy users must have you
@dkhmelenko Thank you