SlideShare a Scribd company logo
1 of 69
Download to read offline
Developing for the
Rest of the World@EricFrohnhoefer

March 2017
Twitterkit Twitter Digits
Everyone Doesn’t Speak English
#Localization
Market size and
opportunity
Local pricing and
financial factors
Competitive
landscape
Identify target languages and locales
Localization Checklist — Google
Spending by Hispanic and Asian
households
US Chinese speakers (mainly
Cantonese and Mandarin)
US Spanish speakers
37.5 2.8 2.1TrillionMillionMillion
Language Use — US Census Bureau
Audience - United States
Largest economySmartphone penetration for users 18
to 32 years old
Population
205 82 8ThPercentMillion
Spring 2015 Global Attitudes survey — PEW Global
Audience - Brazil
World Fact Book — CIA
Move all strings into
strings.xml
Mark message parts
that should not be
translated
Provide sufficient
context for declared
strings
String localization
Localization Checklist — Google
Move all strings into strings.xml
Move all strings into strings.xml
Quick Fix Shortcut: ALT+ENTER
Move all strings into strings.xml
Move all strings into strings.xml
Move all strings into strings.xml
Move all strings into strings.xml
Provide context for declared strings
• Is the meaning ambiguous?

• The word “demonstration” is a homonym.

• “A practical exhibition and explanation of
how something works.”

• “A public meeting or march protesting
against something.”
Provide context for declared strings
• Where is the string displayed?

• App launcher

• Action bar

• Hint text

• Section heading

• Button
Provide context for declared strings
• What are the layout constrains?

• Buttons are usually more space constrained

• Application name limited to 30 characters

• Text limited to single line
Mark parts that should not be
translated
• Strings that should not be localized

• Brand name like Twitter

• Certain proper names

• Placeholders

• Special Unicode characters 😊

• Urls 

• Code
What About Dates,
Currency, Numbers,
And Units Of
Measure?
System provided formats - Date
Date
• Accepts Unicode date format pattern.

• Order is irrelevant. “MM/dd/yyyy” will return “dd.MM.yyyy” in Locale de_CH.
System provided formats - Date
System provided formats - Decimal
Date
System provided formats - Currency
Date
System provided formats - Phone
Date
System provided formats - Measure
Date
?
System provided formats - Measure
Date
World Fact Book — CIA
System provided formats - Sorting
Date
System provided formats - Sorting
Date
System provided formats - Sorting
Date
Other considerations
Date
• Machine to machine interactions

• Some domains have specific conventions that don’t match locale
New APIs
• Android now provides a subset of the ICU4J
API.

• android.icu.lang.UCharacter
• android.icu.text.BreakIterator
• android.icu.text.DecimalFormat
• android.icu.util.Calendar
• android.icu.text.Bidi
• android.icu.text.DateFormat
• android.icu.text.RelativeDateTi
meFormatter
• By creating multiple APKs using product
flavors one could remove ICU files from 24+
APK.
#RTL
Web content in ArabicPhones shipped with Android in
Middle East
Arabic Internet Users
160 80 0.8PercentPercentMillion
Number of Internet Users by Language — Internet World Stats
Audience - Arabic Speakers
Usage of content languages of websites — W3Techs
Middle East and Africa Smartphone Market — IDC
RTL Support
4.0
• Arabic fonts (2.3 Gingerbread)

• Arabic localized

• Arabic reshaper
RTL Support
without reshaper:
with reshaper:
RTL Support
4.1
• Bi-directional support for TextView and
EditText elements.

4.2
• RTL layout mirroring.

• Improved fonts for international users.

4.3
• Improved Bi-directional support to
handle mixed direction text.
BiDi Support
BiDi Support
RTL Mirroring
RTL Mirroring
RTL Mirroring
Custom layouts
Custom layouts
ViewPager
• No support for RTL

• Long standing request for support by
community

• https://code.google.com/p/android/
issues/detail?id=56831

• Other developers have created their
own solutions

• https://github.com/ksloginov/
RtlViewPager
RTL Support
4.4
• Drawable mirroring.

• Force RTL developer option.
Mirroring
Force RTL
• Easier to debug RTL layout issues
without switching to RTL language.

• Found under Settings -> Developer
Options -> Force RTL layout direction
RTL Support
Script types
• English and English-like (Latin, Greek,
and Cyrillic)

• Dense (Chinese, Japanese, and
Korean)

• Tall (South and Southeast Asian and
Middle Eastern languages)

Material Design
• English: Regular 14sp

• Dense: Regular 15sp

• Tall: Regular 15sp
Material Design — Google
#Testing
Set up a test
environment
Review with native-
language speakers
Look for common
localization issues
Testing localization
Localization Checklist — Google
Common Issues
• Clipped text, or text that overlaps the
edge of UI elements or the screen

• Poor line wrapping

• Incorrect word breaks or punctuation

• Incorrect alphabetical sorting

• Incorrect layout direction or text
direction

• Untranslated text
Force RTL
• Easier to debug RTL layout issues
without switching to RTL language.

• Found under Settings -> Developer
Options -> Force RTL layout direction
Force new locale
Generate localized
screenshots of your
Android app
Upload screenshots,
metadata, and your
app to the Play Store
screengrab
supply
https://github.com/fastlane/fastlane/tree/master/screengrab
https://github.com/fastlane/fastlane/tree/master/supply
#Payments
Paypal market share in Middle EastUnbankedCredit-card penetration
2 82 5PercentPercentPercent
PayPal, Others Still Bet on Middle East E-Commerce — WSJ
Audience - Middle East
Payment gateways
PayPal
• Available in all countries

• Limited penetration

• Usually linked to Credit Card or Bank Account

Stripe
• Not Available in Middle East
Payment gateways
Carrier billing
• Billed to wireless account

• Carrier charges a processing fee

• Typically only used for digital goods

Prepaid
• Popular for young adults and those without credit

• Value can be added at retail locations

• Usually a fee associated with adding value to card or processing payment
Payment gateways
TPay.me
• Direct carrier billing provider

• Charged to phone bill

Cash U
• Prepaid card accepted by online retailers

• Available in the Middle East and North Africa

• Users load cards at physical retail locations

• Commonly used for games and VOIP
WebP/PJPEG Case Study
#PerfMatters
Data used by 3G subscribers in
India per month
4G subscribers in IndiaWireless subscribers in India
300 1 800MBMillionMillion
Telecom Regulatory Authority of India — 30 June 2015
Audience - India
WebP
• Lossy and lossless image
compression developed by Google

• Open source, BSD licensed

• Native support on Android 4.0+

• 28% reduction in size compared to
PNGs re-compressed with pngcrush
and pngout
PJPEG
• Image is compressed in multiple
passes of progressively higher detail

• No transparency support

• No native support on Android
Fresco
• Image loading and display library from
Facebook

• Support for PJPEG out of the box

• No feature gaps

• Caching

• Progress bars

• Scaling

• Resize and rotation

• Rounded corners and circles
Results
• Images were 25% smaller compared
to PNG or JPEG images

• 9% decrease in p50 load times

• 74% decrease in failures

• Increased user engagement,
especially in emerging markets
3,000 images per second — Henna Kerman/Twitter
User Empathy
2G Day
• Throttled all employee accounts

• iOS and Android only

• Didn’t simulate network error rates

Cost Notification
• Currently iOS only

• Provides employee with region
specific costs for network usage
#Thank You
Eric Frohnhoefer
Software Engineer @Twitter

@EricFrohnhoefer
#PerfMatters
• http://highscalability.com/blog/2016/4/20/how-twitter-handles-3000-images-per-second.html

• https://code.facebook.com/posts/1566627733629653/mobile-scale-london-recap/

• https://en.wikipedia.org/wiki/WebP

• https://en.wikipedia.org/wiki/JPEG

• http://www.economist.com/blogs/graphicdetail/2013/10/daily-chart-5

Localization
• https://developer.android.com/distribute/tools/localization-checklist.html

• https://developer.android.com/guide/topics/resources/icu4j-framework.html

• http://www.terry.uga.edu/news/releases/asians-hispanics-driving-u.s.-economy-forward-according-to-uga-
study

References
RTL
• https://www.youtube.com/watch?v=4dJHtT4-vBE (From Right to Left and Back)

• https://material.google.com/

• https://www.idc.com/getdoc.jsp?containerId=prAE25737515

• http://mpcabd.xyz/python-arabic-text-reshaper/

Images
• http://android-developers.blogspot.com/

References

More Related Content

Similar to Devoxx: Developing for the Rest of the World

BIG DATA ANALYTICS USING R
BIG DATA ANALYTICS USING  RBIG DATA ANALYTICS USING  R
BIG DATA ANALYTICS USING R
Umair Shafique
 
Internationalizing your website? There's an app for that!
Internationalizing your website? There's an app for that!Internationalizing your website? There's an app for that!
Internationalizing your website? There's an app for that!
Smartling
 
Top 10 Lessons Learned from the Netflix API - OSCON 2014
Top 10 Lessons Learned from the Netflix API - OSCON 2014Top 10 Lessons Learned from the Netflix API - OSCON 2014
Top 10 Lessons Learned from the Netflix API - OSCON 2014
Daniel Jacobson
 
Resume - ERF - 2015-12-15
Resume - ERF - 2015-12-15Resume - ERF - 2015-12-15
Resume - ERF - 2015-12-15
Eric Foertsch
 
E governance and enteerprise architecture
E governance and enteerprise architectureE governance and enteerprise architecture
E governance and enteerprise architecture
Kumar
 
Native vs HTML
Native vs HTMLNative vs HTML
Native vs HTML
ludlola
 

Similar to Devoxx: Developing for the Rest of the World (20)

Native vs hybrid approach Mobile App Development
Native vs hybrid approach Mobile App DevelopmentNative vs hybrid approach Mobile App Development
Native vs hybrid approach Mobile App Development
 
Go Global Fearless(I18N & L10N)
Go Global Fearless(I18N & L10N)Go Global Fearless(I18N & L10N)
Go Global Fearless(I18N & L10N)
 
BIG DATA ANALYTICS USING R
BIG DATA ANALYTICS USING  RBIG DATA ANALYTICS USING  R
BIG DATA ANALYTICS USING R
 
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org - Dev...
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org -  Dev...Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org -  Dev...
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org - Dev...
 
Internationalizing your website? There's an app for that!
Internationalizing your website? There's an app for that!Internationalizing your website? There's an app for that!
Internationalizing your website? There's an app for that!
 
Creating a Comprehensive Social Media App Using Ionic and Phone Gap
Creating a Comprehensive Social Media App Using Ionic and Phone GapCreating a Comprehensive Social Media App Using Ionic and Phone Gap
Creating a Comprehensive Social Media App Using Ionic and Phone Gap
 
Top 10 Lessons Learned from the Netflix API - OSCON 2014
Top 10 Lessons Learned from the Netflix API - OSCON 2014Top 10 Lessons Learned from the Netflix API - OSCON 2014
Top 10 Lessons Learned from the Netflix API - OSCON 2014
 
Localization: How to do a global project
Localization: How to do a global projectLocalization: How to do a global project
Localization: How to do a global project
 
The future of_conver_ai[6933]
The future of_conver_ai[6933]The future of_conver_ai[6933]
The future of_conver_ai[6933]
 
Keys to Continuous Delivery Success - Mark Warren, Product Director, Perforc...
Keys to Continuous  Delivery Success - Mark Warren, Product Director, Perforc...Keys to Continuous  Delivery Success - Mark Warren, Product Director, Perforc...
Keys to Continuous Delivery Success - Mark Warren, Product Director, Perforc...
 
Resume - ERF - 2015-12-15
Resume - ERF - 2015-12-15Resume - ERF - 2015-12-15
Resume - ERF - 2015-12-15
 
Building a Giant Atlassian Universe to Take Over the World
Building a Giant Atlassian Universe to Take Over the WorldBuilding a Giant Atlassian Universe to Take Over the World
Building a Giant Atlassian Universe to Take Over the World
 
Tuli eServices_Mobile portfolio
 Tuli eServices_Mobile portfolio Tuli eServices_Mobile portfolio
Tuli eServices_Mobile portfolio
 
Developing Apps for Windows Phone 8
Developing Apps for Windows Phone 8Developing Apps for Windows Phone 8
Developing Apps for Windows Phone 8
 
E governance and enteerprise architecture
E governance and enteerprise architectureE governance and enteerprise architecture
E governance and enteerprise architecture
 
Google IO 2014 overview
Google IO 2014 overviewGoogle IO 2014 overview
Google IO 2014 overview
 
Laura Dent: Single-Source and Localization
Laura Dent: Single-Source and LocalizationLaura Dent: Single-Source and Localization
Laura Dent: Single-Source and Localization
 
Native vs HTML
Native vs HTMLNative vs HTML
Native vs HTML
 
QA Fest 2018. Александр Хотемский. Использование голосовых помощников для раз...
QA Fest 2018. Александр Хотемский. Использование голосовых помощников для раз...QA Fest 2018. Александр Хотемский. Использование голосовых помощников для раз...
QA Fest 2018. Александр Хотемский. Использование голосовых помощников для раз...
 
ppt application softwears (getting work)
ppt application softwears (getting work)ppt application softwears (getting work)
ppt application softwears (getting work)
 

Recently uploaded

Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Recently uploaded (20)

Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 

Devoxx: Developing for the Rest of the World

  • 1. Developing for the Rest of the World@EricFrohnhoefer
 March 2017
  • 3. Everyone Doesn’t Speak English #Localization
  • 4. Market size and opportunity Local pricing and financial factors Competitive landscape Identify target languages and locales Localization Checklist — Google
  • 5. Spending by Hispanic and Asian households US Chinese speakers (mainly Cantonese and Mandarin) US Spanish speakers 37.5 2.8 2.1TrillionMillionMillion Language Use — US Census Bureau Audience - United States
  • 6. Largest economySmartphone penetration for users 18 to 32 years old Population 205 82 8ThPercentMillion Spring 2015 Global Attitudes survey — PEW Global Audience - Brazil World Fact Book — CIA
  • 7. Move all strings into strings.xml Mark message parts that should not be translated Provide sufficient context for declared strings String localization Localization Checklist — Google
  • 8. Move all strings into strings.xml
  • 9. Move all strings into strings.xml Quick Fix Shortcut: ALT+ENTER
  • 10. Move all strings into strings.xml
  • 11. Move all strings into strings.xml
  • 12. Move all strings into strings.xml
  • 13. Move all strings into strings.xml
  • 14. Provide context for declared strings • Is the meaning ambiguous? • The word “demonstration” is a homonym. • “A practical exhibition and explanation of how something works.” • “A public meeting or march protesting against something.”
  • 15. Provide context for declared strings • Where is the string displayed? • App launcher • Action bar • Hint text • Section heading • Button
  • 16. Provide context for declared strings • What are the layout constrains? • Buttons are usually more space constrained • Application name limited to 30 characters • Text limited to single line
  • 17. Mark parts that should not be translated • Strings that should not be localized • Brand name like Twitter • Certain proper names • Placeholders • Special Unicode characters 😊 • Urls • Code
  • 18. What About Dates, Currency, Numbers, And Units Of Measure?
  • 19. System provided formats - Date Date • Accepts Unicode date format pattern. • Order is irrelevant. “MM/dd/yyyy” will return “dd.MM.yyyy” in Locale de_CH.
  • 21. System provided formats - Decimal Date
  • 22. System provided formats - Currency Date
  • 23. System provided formats - Phone Date
  • 24. System provided formats - Measure Date ?
  • 25. System provided formats - Measure Date World Fact Book — CIA
  • 26. System provided formats - Sorting Date
  • 27. System provided formats - Sorting Date
  • 28. System provided formats - Sorting Date
  • 29. Other considerations Date • Machine to machine interactions • Some domains have specific conventions that don’t match locale
  • 30. New APIs • Android now provides a subset of the ICU4J API. • android.icu.lang.UCharacter • android.icu.text.BreakIterator • android.icu.text.DecimalFormat • android.icu.util.Calendar • android.icu.text.Bidi • android.icu.text.DateFormat • android.icu.text.RelativeDateTi meFormatter • By creating multiple APKs using product flavors one could remove ICU files from 24+ APK.
  • 31. #RTL
  • 32. Web content in ArabicPhones shipped with Android in Middle East Arabic Internet Users 160 80 0.8PercentPercentMillion Number of Internet Users by Language — Internet World Stats Audience - Arabic Speakers Usage of content languages of websites — W3Techs Middle East and Africa Smartphone Market — IDC
  • 33. RTL Support 4.0 • Arabic fonts (2.3 Gingerbread) • Arabic localized • Arabic reshaper
  • 35. RTL Support 4.1 • Bi-directional support for TextView and EditText elements. 4.2 • RTL layout mirroring. • Improved fonts for international users. 4.3 • Improved Bi-directional support to handle mixed direction text.
  • 43. ViewPager • No support for RTL • Long standing request for support by community • https://code.google.com/p/android/ issues/detail?id=56831 • Other developers have created their own solutions • https://github.com/ksloginov/ RtlViewPager
  • 44. RTL Support 4.4 • Drawable mirroring. • Force RTL developer option.
  • 46. Force RTL • Easier to debug RTL layout issues without switching to RTL language. • Found under Settings -> Developer Options -> Force RTL layout direction
  • 47. RTL Support Script types • English and English-like (Latin, Greek, and Cyrillic) • Dense (Chinese, Japanese, and Korean) • Tall (South and Southeast Asian and Middle Eastern languages) Material Design • English: Regular 14sp • Dense: Regular 15sp • Tall: Regular 15sp Material Design — Google
  • 49. Set up a test environment Review with native- language speakers Look for common localization issues Testing localization Localization Checklist — Google
  • 50. Common Issues • Clipped text, or text that overlaps the edge of UI elements or the screen • Poor line wrapping • Incorrect word breaks or punctuation • Incorrect alphabetical sorting • Incorrect layout direction or text direction • Untranslated text
  • 51. Force RTL • Easier to debug RTL layout issues without switching to RTL language. • Found under Settings -> Developer Options -> Force RTL layout direction
  • 53. Generate localized screenshots of your Android app Upload screenshots, metadata, and your app to the Play Store screengrab supply https://github.com/fastlane/fastlane/tree/master/screengrab https://github.com/fastlane/fastlane/tree/master/supply
  • 55. Paypal market share in Middle EastUnbankedCredit-card penetration 2 82 5PercentPercentPercent PayPal, Others Still Bet on Middle East E-Commerce — WSJ Audience - Middle East
  • 56. Payment gateways PayPal • Available in all countries • Limited penetration • Usually linked to Credit Card or Bank Account Stripe • Not Available in Middle East
  • 57. Payment gateways Carrier billing • Billed to wireless account • Carrier charges a processing fee • Typically only used for digital goods Prepaid • Popular for young adults and those without credit • Value can be added at retail locations • Usually a fee associated with adding value to card or processing payment
  • 58. Payment gateways TPay.me • Direct carrier billing provider • Charged to phone bill Cash U • Prepaid card accepted by online retailers • Available in the Middle East and North Africa • Users load cards at physical retail locations • Commonly used for games and VOIP
  • 60. Data used by 3G subscribers in India per month 4G subscribers in IndiaWireless subscribers in India 300 1 800MBMillionMillion Telecom Regulatory Authority of India — 30 June 2015 Audience - India
  • 61. WebP • Lossy and lossless image compression developed by Google • Open source, BSD licensed • Native support on Android 4.0+ • 28% reduction in size compared to PNGs re-compressed with pngcrush and pngout
  • 62. PJPEG • Image is compressed in multiple passes of progressively higher detail • No transparency support • No native support on Android
  • 63. Fresco • Image loading and display library from Facebook • Support for PJPEG out of the box • No feature gaps • Caching • Progress bars • Scaling • Resize and rotation • Rounded corners and circles
  • 64. Results • Images were 25% smaller compared to PNG or JPEG images • 9% decrease in p50 load times • 74% decrease in failures • Increased user engagement, especially in emerging markets 3,000 images per second — Henna Kerman/Twitter
  • 65. User Empathy 2G Day • Throttled all employee accounts • iOS and Android only • Didn’t simulate network error rates Cost Notification • Currently iOS only • Provides employee with region specific costs for network usage
  • 67. Eric Frohnhoefer Software Engineer @Twitter
 @EricFrohnhoefer
  • 68. #PerfMatters • http://highscalability.com/blog/2016/4/20/how-twitter-handles-3000-images-per-second.html • https://code.facebook.com/posts/1566627733629653/mobile-scale-london-recap/ • https://en.wikipedia.org/wiki/WebP • https://en.wikipedia.org/wiki/JPEG • http://www.economist.com/blogs/graphicdetail/2013/10/daily-chart-5 Localization • https://developer.android.com/distribute/tools/localization-checklist.html • https://developer.android.com/guide/topics/resources/icu4j-framework.html • http://www.terry.uga.edu/news/releases/asians-hispanics-driving-u.s.-economy-forward-according-to-uga- study References
  • 69. RTL • https://www.youtube.com/watch?v=4dJHtT4-vBE (From Right to Left and Back) • https://material.google.com/ • https://www.idc.com/getdoc.jsp?containerId=prAE25737515 • http://mpcabd.xyz/python-arabic-text-reshaper/ Images • http://android-developers.blogspot.com/ References