Разделы презентаций


Google Pay

Содержание

2017 Global e-commerce retail sales$2.3TStatista: https://www.statista.com/statistics/379046/worldwide-retail-e-commerce-sales/

Слайды и текст этой презентации

Слайд 1Google Pay
Overview

Google PayOverview

Слайд 22017 Global e-commerce retail sales
$2.3T
Statista: https://www.statista.com/statistics/379046/worldwide-retail-e-commerce-sales/




2017 Global e-commerce retail sales$2.3TStatista: https://www.statista.com/statistics/379046/worldwide-retail-e-commerce-sales/

Слайд 3But online conversion is still a big problem

But online conversion  is still a big problem

Слайд 4of cart abandonments due to “too long/complicated checkout process”
Source:

Baymard Institute: https://baymard.com/lists/cart-abandonment-rate

28%

of cart abandonments  due to “too long/complicated checkout process” Source: Baymard Institute: https://baymard.com/lists/cart-abandonment-rate28%

Слайд 5Pay everywhere with your Google account

Pay everywhere with your Google account

Слайд 6Proprietary + Confidential

Proprietary + Confidential

Слайд 11More likely to complete the booking flow, with Google Pay


65%

More likely to complete  the booking flow,  with Google Pay 65%

Слайд 12Increase in the number of unique users paying with Google

Pay
7X

Increase in the number of unique users paying with Google Pay7X

Слайд 13Works on:
Safari
Opera
Firefox
Chrome
UC Browser
Microsoft Edge (coming soon)
Aita2Sads5we$

Works on:SafariOperaFirefoxChromeUC BrowserMicrosoft Edge (coming soon)Aita2Sads5we$

Слайд 14Compatible browsers: June 2018

Compatible browsers: June 2018

Слайд 15Processor Integration - logical data flow
1. Clicks on Google Pay

button
2. Google Pay app/popup invoked
4. Confirms card / other details
3.

Provides available payment methods / other details

parameters

9. Confirms transaction to user

Processor Integration - logical data flow1. Clicks on Google Pay button2. Google Pay app/popup invoked4. Confirms card

Слайд 16Direct Integration - logical data flow
1. Clicks on Google Pay

button
2. Google Pay app/popup invoked
4. Confirms card / other details
3.

Provides available payment methods / other details

Parameters + public key

8. Performs transaction / sends result

9. Confirms transaction to user

Direct Integration - logical data flow1. Clicks on Google Pay button2. Google Pay app/popup invoked4. Confirms card

Слайд 17User experience recommendations

Display Google Pay early and prominently as payment

method

Display all relevant purchase information including final price and

items/services purchased, before confirming an order

If you display payment information on confirmation screens or emails, you may display the payment card description returned by Google Pay API

Use only the official button styles and logo assets in your app/web
User experience recommendationsDisplay Google Pay early and prominently as payment method Display all relevant purchase information including

Слайд 18Google Pay vs Android Pay
Brand new SDK
1 hour for initial

integration
New brand new sdk – a bit more complicated
Migration from

Android Pay needed
Review needed
Google Pay vs Android PayBrand new SDK1 hour for initial integrationNew brand new sdk – a bit

Слайд 19Google Pay
Reasons to use:
Free
Safe
Commonly used

Google PayReasons to use:FreeSafeCommonly used

Слайд 20Android perks overview
Sceneform + Dynamic delivery
Slices
App indexing
App Actions
Shortcuts
Firebase analytics

Android perks overviewSceneform + Dynamic deliverySlicesApp indexingApp ActionsShortcutsFirebase analytics

Слайд 21Sceneform + Dynamic delivery
Simply not working

Sceneform + Dynamic deliverySimply not working

Слайд 22Sceneform + DD
Unable to load Texture registryId='android.resource://com.arfeature.arprofile/drawable/sceneform_plane' java.util.concurrent.CompletionException: java.lang.IllegalStateException: java.io.FileNotFoundException:

No package found for authority: android.resource://com.arfeature.arprofile/drawable/sceneform_plane java.util.concurrent.CompletionException: java.io.FileNotFoundException: No package

found for authority: android.resource://com.arfeature.arprofile/raw/sceneform_plane_shadow_material
Sceneform + DDUnable to load Texture registryId='android.resource://com.arfeature.arprofile/drawable/sceneform_plane' java.util.concurrent.CompletionException: java.lang.IllegalStateException: java.io.FileNotFoundException: No package found for authority: android.resource://com.arfeature.arprofile/drawable/sceneform_plane java.util.concurrent.CompletionException:

Слайд 23Sceneform + DD
https://goo.gl/GmufL3 - demo project
https://goo.gl/aVSFJf - GitHub issue to

spam Google with reports and force fix

Sceneform + DDhttps://goo.gl/GmufL3 - demo projecthttps://goo.gl/aVSFJf - GitHub issue to spam Google with reports and force fix

Слайд 24App Bundle in August
Series of unreproducible crashes on some of

the devices

App Bundle in AugustSeries of unreproducible crashes on some of the devices

Слайд 25Slices
Idea:
Create shareable components of your app
Purpose:
Support native widgets Assistant &

Search apps

SlicesIdea:Create shareable components of your appPurpose:Support native widgets Assistant & Search apps

Слайд 26Slices
Alternative usage:
Give access to UI for user without sharing any

internal code|data

SlicesAlternative usage:Give access to UI for user without sharing any internal code|data

Слайд 27App actions
No SDK available yet
No EAP

App actionsNo SDK available yetNo EAP

Слайд 28App Indexing
Public content indexing
Personal content indexing
Log user actions

App IndexingPublic content indexingPersonal content indexingLog user actions

Слайд 29App Indexing
Search results
Installs from webpage
Autocompletions in Google app
Assistant – screen

search
Ad targeting

App IndexingSearch results	Installs from webpageAutocompletions	 in Google appAssistant – screen searchAd targeting

Слайд 30Personal App Indexing IRL
~1,5 years ago – 1-2% of users
Now

– 0.01%

Personal App Indexing IRL~1,5 years ago – 1-2% of usersNow – 0.01%

Слайд 31Shortcuts
Shortcuts:
0.31% of users
Simple Android widget:
5% of users

ShortcutsShortcuts:0.31% of usersSimple Android widget:5% of users

Слайд 32Firebase Analytics
Dynamic auditory
Enable BigQuery integration

Firebase AnalyticsDynamic auditoryEnable BigQuery integration

Слайд 33Middle East Adaptation
Kuwait, Saudi Arabia, UAE, Oman, Bahrein, Qatar

Middle East AdaptationKuwait, Saudi Arabia, UAE, Oman, Bahrein, Qatar

Слайд 35Expectation – 3 days
Check RTL implementation for some views
Lint for

XML
Manual check for all custom views (~30)
Translations proofreading
?????
PROFIT!

Expectation – 3 daysCheck RTL implementation for some viewsLint for XMLManual check for all custom views (~30)Translations

Слайд 36Reality: 4 weeks
Without much sleep 

Reality: 4 weeksWithout much sleep 

Слайд 37Translations proofreading
“Almost all strings are from Google Translate”
Translated.com – official

provider from GP
No abbreviations allowed
We should offer language switch:
Onboarding
Settings

Translations proofreading“Almost all strings are from Google Translate”Translated.com – official provider from GPNo abbreviations allowedWe should offer

Слайд 38Translations: numbers
Arabic: ٠ ١ ٢ ٣ ٤ ٥ ٧ ٨

٩
Latin: 0 1 2 3 4 5 6 7

8 9
Translations: numbersArabic: ٠ ١ ٢ ٣ ٤ ٥ ٧ ٨ ٩ Latin: 0 1 2 3 4

Слайд 39Translations: numbers
String.format(
“SELECT column FROM db WHERE column_2 > %d”, 12)

Translations: numbersString.format(“SELECT column FROM db WHERE column_2 > %d”, 12)

Слайд 40Translations: numbers
Arabic numbers are not welcomed in ‘ar’ locale:
Emirate Airlines,

Qatar airlines, WeGo use Latin numbers
Can’t simply insert non-Arabic text

into Arabic text
Translations: numbersArabic numbers are not welcomed in ‘ar’ locale:Emirate Airlines, Qatar airlines, WeGo use Latin numbersCan’t simply

Слайд 41Translations: numbers
Arabic numbers are not welcomed in ‘ar’ locale:
Use String.format(Locale.US,

“%d xxxx”, 12)

Translations: numbersArabic numbers are not welcomed in ‘ar’ locale:Use String.format(Locale.US, “%d xxxx”, 12)

Слайд 42Translations: numbers
Arabic numbers are not welcomed in ‘ar’ locale:
Use String.format(Locale.US,

“%d xxxx”, 12)
Replace TextView with RobotoTextView
Override setText();

Translations: numbersArabic numbers are not welcomed in ‘ar’ locale:Use String.format(Locale.US, “%d xxxx”, 12)Replace TextView with RobotoTextViewOverride setText();

Слайд 43Translations: numbers
@Override public void setText(CharSequence text, BufferType type) { if(type==BufferType.SPANNABLE){

super.setText(text, type); }else {

super.setText(arabicToDecimal(getContext(), text), type); } }
Translations: numbers @Override public void setText(CharSequence text, BufferType type) {   if(type==BufferType.SPANNABLE){

Слайд 44 public static String arabicToDecimal(Context context, CharSequence number) { if

(number != null) { if (context !=

null && !LocaleManager.isPersian(context)
&& isRTL(context)) { char[] chars = new char[number.length()]; for (int i = 0; i < number.length(); i++) { char ch = number.charAt(i); if (ch >= 0x0660 && ch <= 0x0669) ch -= 0x0660 - '0'; else if (ch >= 0x06f0 && ch <= 0x06F9) ch -= 0x06f0 - '0'; chars[i] = ch; } return new String(chars); } else { return number.toString(); } } else { return ""; } }
public static String arabicToDecimal(Context context, CharSequence number) {   if (number != null) {

Слайд 45 public static String arabicToDecimal(Context context, CharSequence number) { if

(number != null) { if (context !=

null && !LocaleManager.isPersian(context)
&& isRTL(context)) { char[] chars = new char[number.length()]; for (int i = 0; i < number.length(); i++) { char ch = number.charAt(i); if (ch >= 0x0660 && ch <= 0x0669) ch -= 0x0660 - '0'; else if (ch >= 0x06f0 && ch <= 0x06F9) ch -= 0x06f0 - '0'; chars[i] = ch; } return new String(chars); } else { return number.toString(); } } else { return ""; } }
public static String arabicToDecimal(Context context, CharSequence number) {   if (number != null) {

Слайд 46public static boolean isPersian(Context context) { return getLanguage(context).contains("fa"); }

public static boolean isPersian(Context context) {   return getLanguage(context).contains(

Слайд 47Translations: concatenation
return DateFormat.getLongDateFormat(context)+ " " + DateFormat.getTimeFormat(context);
Result in English: October

20, 2018 20:07
أكتوبر

Translations: concatenationreturn DateFormat.getLongDateFormat(context)+

Слайд 48Quiz:
return DateFormat.getLongDateFormat(context)+ " " + DateFormat.getTimeFormat(context);
Result in English: October 24,

2018 07:59
Result in Arabic:
أكتوبر 24, 2018 07:59
07:59 أكتوبر 24, 2018
07:59

24 أكتوبر 2018
2018 07:59 أكتوبر 24

أكتوبر

Quiz:return DateFormat.getLongDateFormat(context)+

Слайд 49Translations: concatenation
أكتوبر

Translations: concatenationأكتوبر

Слайд 50Translations: concatenation
myArabicString + "\u202A" + myEnglishString + "\u202C" + moreArabic

Translations: concatenationmyArabicString +

Слайд 51Translations: calendar
Abbrev in names
Arabic numbers
Year picker
RTL support

Translations: calendarAbbrev in namesArabic numbersYear pickerRTL support

Слайд 52Translations: text gravity

Translations: text gravity

Слайд 53Translations: text gravity
setTextDirection(TEXT_DIRECTION_LOCALE); setTextAlignment(TEXT_ALIGNMENT_GRAVITY);

Translations: text gravitysetTextDirection(TEXT_DIRECTION_LOCALE); setTextAlignment(TEXT_ALIGNMENT_GRAVITY);

Слайд 54Translations: date

Translations: date

Слайд 55Translations: date
SimpleDateFormat
android.text.format.DateFormat
DateFormat.getBestDateTimePattern
Concatenation of Calendar values

Translations: dateSimpleDateFormatandroid.text.format.DateFormatDateFormat.getBestDateTimePatternConcatenation of Calendar values

Слайд 56Translations: date

Translations: date

Слайд 57Translations: date
Don’t use MMM pattern, replace with LLL
Use LLLL

for arabic

Translations: dateDon’t use MMM pattern, replace with LLL Use LLLL for arabic

Слайд 58Translations: sum up
No abbreviations allowed
Replace arabic numbers with latin
Language switch


Use CustomTextView
MEA != Persian language
Can’t simply insert non-Arabic

text into Arabic text
Translations: sum upNo abbreviations allowedReplace arabic numbers with latinLanguage switch Use CustomTextView MEA != Persian language Can’t

Слайд 59Translations: plurals
Plurals translations reviewed:
Replace all concatenated plurals
Add new ones
Translate everything
Multiple

troubles with translation system


Translations: pluralsPlurals translations reviewed:Replace all concatenated pluralsAdd new onesTranslate everythingMultiple troubles with translation system

Слайд 60Translations: plurals
users nearby user nearby
String nearbyUsersCount = usersCount +

getUserCountString(usersCount);
1 user nearby
2 users nearby

10 users nearby

Translations: plurals users nearby user nearbyString nearbyUsersCount = usersCount + getUserCountString(usersCount);1 user nearby2 users nearby…10 users nearby

Слайд 61Translations: plurals
String nearbyUsersCount = usersCount + getUserCountString(usersCount);
1 пользователь рядом
2 пользователей

рядом

10 пользователей рядом
пользователей рядом пользователь рядом

Translations: pluralsString nearbyUsersCount = usersCount + getUserCountString(usersCount);1 пользователь рядом2 пользователей рядом…10 пользователей рядом пользователей рядом пользователь рядом

Слайд 62Translations: plurals
String nearbyUsersCount = usersCount + getUserCountString(usersCount);
1 пользователь рядом
2 пользователей

рядом

10 пользователей рядом
пользователей рядом пользователь рядом

Translations: pluralsString nearbyUsersCount = usersCount + getUserCountString(usersCount);1 пользователь рядом2 пользователей рядом…10 пользователей рядом пользователей рядом пользователь рядом

Слайд 63Translations: plurals

quantity="two">

Translations: plurals

Слайд 64Translations: plurals
пользователь рядом пользователя рядом

quantity="many">пользователей рядом пользователей рядом
String nearbyUsersCount = usersCount + getUserCountString(usersCount);

name="nearby_users_two">пользователя рядом пользователей рядом пользователь рядом

String nearbyUsersCount = usersCount +
getResources().getQuantityString(R.plurals.d_users_nearbyusers, (int) usersCount)

Translations: plurals   пользователь рядом  пользователя рядом  пользователей рядом  пользователей рядом String nearbyUsersCount

Слайд 65The end?

The end?

Слайд 66Zh-TW
附近1個用戶
附近2個用戶

附近12個用戶

Zh-TW附近1個用戶附近2個用戶…附近12個用戶

Слайд 67Translations: plurals
users nearby user nearby
%s

user nearby %s users nearby
x20

Translations: plurals users nearby user nearby    %s user nearby   %s users nearby

Слайд 68Internal
Lib module:
Essential custom views
Density helper
Date & time formatting helper
Locale manager

– changing languages
RTL Helper
Can be shared across projects

InternalLib module:Essential custom viewsDensity helperDate & time formatting helperLocale manager – changing languagesRTL HelperCan be shared across

Слайд 69QA notes

QA notes

Слайд 70The end

The end

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика