Thursday, May 16, 2013

, , , , , , , , ,

Google I/O Day 2 Session Notes (Part 1)

Share

Here are the first set of notes from my day 2 at Google I/O -- More to come.

Developing for a Global Audience: Tools for internationalization & localization

Why go international?
If you only evelop for one region or language missing out on a big piece of the pie
Revenue missed
2013 android opportunity
900m android activations
48 bil app installs
Asia, Middle Eat, Latin america have biggest growth year/year
i18n readiness
developing for glbal audince is more than translation
2 step process:
internationalization (i18n): design and code to enable support for language and regional difference
localizable resources: unicode-based, text/data formatting & parsing
Localization: adapt look and feel for languages reions, and culture
translation (UI & docs), local defaults, custom features

Getting it rigt does matter
i18n Design Principle: 
design your product to be anguage and regon independent
ex: UI text
probems:
1) concatenation
2) plural agreement
3) gender agreement
4) non externalized strings
ex: Google video (backend)
ex: sorting (alphabetical order differs from language to language)
H does it all work?
connom, language independent code bade (all unicode)
internationalization libraries (i18n)
localization (L10n) -- data in many languages
Right to left layouts
Not as simple as using a  library
engineering and testing needed to get it right
Resources:
Tool: pseudo localization -- mimic what it will look like when translated
Adapt look and feel (localization)
prepare:
1) determine the targeted language set
2) seperate localizable resources from source code
3) find a localization vendor and/or tool
Case study: Autodesk
start by localizing the product landing page (username, units, maps & images)
Google i/o launch; android apps locatlization via google play
L10n Resources
/international/translation-tools
-translate api used
localize website automatically to target language
Startegy/resources/practical tips
Strategy: when/where to launch?
languge does not = country
law/policy
location services can be tricky some places
EU sensitive to privacy
etc
business/data deals
resources
input tools (google.com/inputtools)
alows users to input their language on any website/device they are using
tools: transliteration, virtual keyboard, IME, speech and handwriting
phone number library: code.google.com/p/libphonenumber
addresses library
font development at google
/p/sfntly
practical tips
localize your marketplace metadata
mazimize ssearch potential (keywords -- search accounts for 2/3 all sales/installs)
steady effort works best
localize app screenshots

---------------
Android pro tips: making apps work like magic

Android Beam
Lockscreen widgets
1 line of xml to implement
location
now part of Google Play services
gEOFENCING (100 PER USER)
Google's algorithm will choose what location method to user (GPS, wifi, etc) based on situation
Activity Recognition
ex: sports app that gives updates when you aren't moving, but turns them down/off when biking
Google+ ign on
Cross devie sign on (1 login to rule them all)
Most android users have Goole+ installed and ready to go
There is such a thing as too much context
Pay attention to what users are doing
Why they are doing it
Allow users to opt out of having it done
Text to speech
Speech recognition
Your app knows what users were doing and is most likely to have said -- allows better filters of options
Always give a 48DP min click size to things
Android doesn't recomment putting buttons at the very bottom of the screen because a use ight accidentally
click out of the app
Touch feedback
**Android training class "Touch Gestures"
"Jazz Hands"
Keep track of every thing touching the screen & their relative position to one another
Google analytics for mobile devices
Don't reveal your tricks
No refresh button! just do it
Google cloud messaging
tells the server when to pull
uses peristent xmpp server
manages these server transfers for you
Client updates
SyncAdapter (will soon be better documented)
On Demand Downloads
pre fetch what you can
batch everything

--------------
Enchant, Simplify, Amaze: Android's Desgn Principles

Users are overwhelmed by limitless opportunities & options
Avoid Negative emtions
don't interrupt me when I'm busy
Trigger positive emotons
Studies:
Marriage study:
5:1 pos:neg ration = good outcome
1:1 pos:neg ration = bad outcome
Work group study:
3:1 pos:neg ratio = more productive (Barbara Frederickson, 2009)
Example: Visual Motion
last home screen -- tilts and changes color to indicate end
Pop Ups = like being nagged (best case) or yelled at (worst case)
Picures are faster than words

When writing copy, keep these things in mind:
1) Keep it brief
2) Not users fault
3) Sprinke encouragement

Decide for me but give me the final say
No "are you sure" prompts
Instead, do the action and give a "undo" button
Do the heavy lifting for me
real objects are more fun than buttons/menus
Delight me in supising ways
Give me tricks that work everyhere
Get to know me
Only show me what i nee when i need it

Parting thoughts:
are you enchanting us?
are you simplifying our lives?
are you keeping time/attention on what matters?
are you making us amazing?