Sunday, 31 October 2010

Droidcon London 2010 - Day Two

Whew! When I sat down and looked at the programme for the second day of Droidcon, I wasn’t sure I’d make it until the end — after I’d finished planning out my time, I saw I’d set myself up over 10 sessions I just couldn’t miss.

I’ve now had a day or so to recover so now I’m posting my notes. I hope they’re useful. Please @ me on twitter or leave a comment here if there’s something you’d like to add or correct.

Thanks once again to the organisers of this great event — Dominic Travers, and Kevin McDonagh and Carl-Gustaf Harroch of Novoda. You did a great job and I’m really impressed.

Android: User views

Ilicco Elia @ilicco — Reuters Mobile

Ilicco gave the first keynote speech, with some Reuters promotional video to wake us all up.

  • Getting journalists to use mobile as well as working out how consumers use it
  • Ilicco spends his time working out how people will use devices before they do
  • The App Store was not about the apps…
    • it’s about people
    • it’s about the edge that people believe they will get from the app
  • Great apps: * Google Talk — simply excellent * The browser: double clicking a column reflows the text as well as zooming in * Google Music — looking forward to what Google will do here * Vignette Photo app — just so many more styles that the equivalent iPhone apps * New keyboards — swype & swiftkey (great to be able to install device-wide improvements)
  • In-app purchasing is seriously lacking
  • “I want to buy an iPhone because it’s beautiful”
    • but… “I don’t want a phone that needs a new Mac to activate” !!
    • so… “I just want a normal phone” (HTC Desire)
    • Android can be just a phone — can have multiple personas
    • Great advantage, but also a flaw (not easily pigeonholed)

Growing the value of the application network

Christophe François — Vice President, Mobile Multimedia Products & Services, Orange

Christophe’s follow-up keynote just didn’t have the pizazz of Illico’s — though it was great to see Orange, Vodafone and Sony Ericsson committing so many people and so much time to Android.

  • Orange San Francisco Android phone selling for just £99 on PAYG
  • Customer survey over 5500 people in four countries (plus 300m customer interactions over 2 years):
    • relevant to their lives
    • security: privacy protected
    • straightforward pricing with no surprises
    • simple services to buidl their own experience
    • their content, when and where they want it
    • easy way to discover and pay for content
  • Orange promoting a few focussed apps:
    • Orange TV with premium events
    • Connectivity & customer care
    • News, radio, Orange Map
  • Have launched own distribution channel
    • Orange App Store
    • Don’t have to register — purchases go directly on to bill
    • Live in France, UK; out soon in Romania, Poland, Slovakia
  • Orange has a strong presence in Africa
    • will be deploying Orange App Store and Widget platform
  • Orange Partner Connect
    • register, submit, test & validate apps
    • central app inventory
    • reporting, sales administration & settlement services
    • private beta in Nov 2010 for Android developers

Create Killer Location apps

Alex Housley @ahousley — Rummble

  • Looking about the same as internet was in 1995, but going faster
  • 1.97 Billion on internet now (28.8% of world population)
  • Location is not mature — it’s still early days but will accelerate quickly
  • Location is not a feature: it’s one element of context
  • Friend finders have been done to death
  • Zinga have good huge business on top of facebook platform
    • similarly, there will be opportunities working with existing big players in location
  • If adding game mechanics into a utility app, make sure you reward important behaviour
  • “Where there’s a number there’s a game…”
  • Android SDK:
    • android.location
    • can get last known location
    • set a LocationListener (can optionally control location providers)
      • can trigger per time or per distance (better for distance)
    • there’s also proximity alerts
  • Alternatives:
    • Skyhook — commercial SDK, but open to revenue share
      • quite smart balanced A-GPS
      • have SpotRank
    • W3C Geolocation API via the browser
      • option: enableHighAccuracy: true
  • Testing:
    • Create a mock location provider with a text file containing locations
    • Check out /data/app/misc/location/agps/nmea via DDMS-View
  • Local data available:
    • crowd source
    • commercial license
    • open source
    • scrape it…
    • APIS
    • Future: open read/write service
  • Rummble use:
    • Geonames — to create boundaries for “Local Heroes”
    • GeoPlanet
    • OpenStreetMap
    • Flickr
    • Google Places — some commercial Ts&Cs
    • Facebook Places — not yet a geo API
      • ask for an additional permission
    • SimpleGeo — cloud infrastructure for location data
      • SpotRank — can see heatmaps of crowd density
  • Geocoder class in Android has minimal limits
    • need permission.INTERNET
  • Use OpenStreetMap for mapping — better than tiles
  • Notifications:
    • Android NotificationManager available since Froyo
    • Xtify
      • commercial, 3rd party API
      • have geo-fencing
      • compatible with 1.x upwards
  • Measurement
    • assign key local metrics and goals
    • Flurry, Distimo, Google Analytics
  • Rummble is based on subjective logic + other trust metrics
  • Rummble API
    • people, places, reviews, check-ins
    • tremors — tweets in locations
    • offers
    • available at http://dev.rummble.com

Excellence in the Android User Experience

Roman Nurik @romannurik — Android Developer Advocate, Google

Roman extended his Android Design Tips (slides below) with some additional info on giving great first impressions, and some new prototyping and asset generation tools that have become available.

First impressions

  • User experience starts somewhere in the Android Market or even in a blog
  • UX extends to reviews in market, recommendations, forums, support…
  • set great expectations:
    • icon, title (unique & appropriate), description (honest & useful)
    • description:
      • give the user enough info to quickly glance over it
      • don’t need to include all features
      • leave room for screenshots!
  • other first impressions:
    • provide screenshots, youtube video
  • get the user up and running as soon as possible
    • don’t require a lengthy registration process
    • sync user data and context immediately
  • home activity should be simple & straightforward
    • needs user testing on real users
    • highly aesthetic & consistent first impression of brand
  • if the UI is more complex, consider a tutorial screen
    • e.g. WinAmp first screen
    • on first open, hide main activity with an overlay PNG
  • tutorial screen also useful for introducing widgets & live wallpapers
  • if you do have an intro screen, make sure it’s also available in app settings so user can go back

Design tips

  • design process:
    • lay out information hierarchy & data model
    • primary UI navigation pattern
    • prototype UI (see later for tools)
  • good nav methods:
    • dashboard + action bar
      • big icons + recently updated
    • 3-4 top tabs
    • horizontally sliding top tabs or homogenous content
      • but not for different content — user must know what they’ll get when they swipe
  • bad nav:
    • 5+ bottom tabs
    • don’t use options menu for navigation
    • on-screen back button (all Android devices have a hardware back button)
    • tabs that alter the back stack
  • prototyping tools
  • design & dev tips
    • full slides available at http://j.mp/androiddesigntips
    • don’t have modal dialogs (make sure back button works)
    • use dp (or sp for fonts), not px for units
    • don’t port UI from other platforms
    • support D-pad & trackball nav (focusable = true)
    • manage activity stack by using right intent flags
    • handle orientation changes
    • localize
  • resources can be set up on a resolution specific mechanism
    • drawable, drawable-hdpi, drawable-mdpi, layout-port, layout-land etc
    • Kevin McDonagh had a good session yesterday on creating a great styles file
  • make sure your UI elements are selectable
    • use the selector XML properly — with different drawables for different states
    • see frameworks/base projects in Android git for core system assets examples
  • icon guidelines: http://j.mp/androidiconguidelines
    • Roman may be working on an update…

Design tools

The story of ribot from penny arcade to retail giant

Antony Ribot @ribot

Antony gave a highly personal account of how he and his brother Jerome founded and grew Ribot to the point where they are designing and building Tesco’s grocery apps.

  • started Ribot with £10k savings and two people
  • now 10 people
  • reading: “how to start and run sandwich and coffee shops”

Lessons learned from Future Platforms over the years

Tom Hume @twhume, Future Platforms

  • growing pains
    • gone from 2 to 20
    • 5-6 just about at limit of collaboration without confusion
    • 7-8 is inflection point
    • 12-15 can’t organise a night that everyone can make
    • then need someone to run the process for you
    • 50-60 walk into work and see people you don’t recognise..
  • you will have problems with staff
    • FP have introduced a much more rigorous hiring process in the last 18 months
    • interviews now includes brainstorming, estimating and other less usual tasks
    • people leave:
      • lack of career path
      • want to do their own things
  • service work
    • resented account management, but realise now that you need it
      • need someone to handle the relationship issues between companies
    • your real process is what happens when the shit hits the fan
    • it’s hard to find a service company that doesn’t have aspirations to have its own products
      • it doesn’t work to leave things until the end of the project
      • instead have 1 day in 10 for each person for experiments
      • can get R&D tax credits for this time!
  • get a peer group, advisory board (ex-customers)
  • use lightweight metrics
    • use half day estimates
    • work out totals at the end of each month and compare to originals
  • “Everybody wants to be Steve Jobs: don’t start by being an arrogant prick!”

Android and CouchDB

Aaron Miller, Developer, CouchOne

  • started porting CouchDB to Android before he started working at CouchOne
  • CouchDB is a non-relational database (NoSQL) that stores JSON documents
  • instead of queries, create “views” that allow fast lookup by keys
  • all comms over HTTP
  • db is highly durable
    • append-only file format
    • survives battery drops out, process killed etc
  • can easily transition an app that uses remote CouchDB
  • really good at replication: multi-master replication
    • can write to any server
    • can introduce conflicts, but can deal with that
    • really powerful on a phone
      • can sync with a server or with another phone
      • can have multiple DBs on net syncd to a single DB on phone
    • can have continuous integration (via long-running HTTP response)
  • on Android, ported the Erlang VM and then CouchDB on top
    • since all Android apps run in separate instances of Dalvik VM, not that expensive to run another VM
    • works with Android service model to shut it down when not needed
  • can install from Android Market right now — but still in beta
    • installs quite a few bits on the phone…
    • takes a while to download
  • can forward the CouchDB port from the device to your computer and use existing CouchDB tools
    • adb forward tcp:5985 tcp:5985
  • can store application and logic in CouchDB as well (just another document!)
    • e.g. WikiLeaks available as a CouchDB instance…
  • once you have a CouchDB app on your phone, you can access it even when you’ve got no internet access
  • can show new data instantly as it appears
  • CouchDB as an Android service — can bind to it from native apps
  • DroidCouch is a Java interface library to CouchDB
  • in production:
    • there’s not a good way of having your app depending on another app
    • at the moment Android CouchDB is pretty big
    • in the future, will have a slimmer version
  • battery life impact of continuous replication?
    • if just watching, then not much (just holding open an empty connection)
    • will stop and only try and look when your device is awake
    • probably want to use scheduled replication in the background, but turn on continuous replication when app in foreground
  • if don’t want to replicate whole server-side, can use a filter on replication
  • CouchDB has a user model with login
    • validation methods can check user and associated data

Monetize your apps in emerging markets

Chua Zi Yong, SEO MoVend; runs Android developer group in Singapore

  • movend provide: * in-app commerce in 10 minutes * DRM services, product management services
  • what devices are popular in emerging markets:
    • S40 & S60 (esp in Philippines) — all top 10 devices
    • BlackBerry, though not corporate — students, housewives
      • 1:50 BlackBerry to iPhone in Indonesia
    • lots of MTK Java/Linux devices (mediatek) — knock-off devices
      • generally low-end devices below $150
    • iPhone is not even 1% in China today
  • Android has really picked up in Asia Pacific over last 6 months
  • Loads of Android devices coming through
    • Open source and free
    • Reduced cost of the handset by having services that charge per month
  • support from low cost hardware manufacturers like MTK
    • seeing first ones in Indonesia
  • population more familiar with connecting to internet on Nokia phone than on a computer
    • first and only connectivity to internet
    • only gaming console, social network tool, …
  • “they probably know your app, but not that they are online”
  • payment if different in china, indonesia & thailand:
    • have physical kiosks — people pay in cash for someone to download the app for them
  • more than 50% of mobile app payments in Asia Pacific already
  • highly fragmented markets & user behaviour
    • sizeable markets: China, Korea, Japan, Indonesia
  • highly regulated market place
    • launching an app on China Mobile takes 6-8 months
    • they want to control everything…
    • and money takes similar time to come through…
    • and low cut of profits — at most 50%
  • localized payment methods — at least 20 different forms of credit card in China
    • PayPal doesn’t work that well in many of these markets
  • but a lot of money available if you get through…
    • hundreds of millions of users
  • localize
    • languages…
    • avoid taboo images (e.g. pointed finger is not friendly in Malaysian context)
  • casual games don’t work in China
    • more familiar with MMORG with in-game items

Android has a “dude” problem

Belinda Parmar @belindaparmar, Lady Geek TV

  • Lady Geek TV: marketing company that helps companies talk to women
  • in survey only 5% of women said Android for their next phone, 57% said an iPhone
  • BUT… more women than men bought smartphone in the last 6 months
  • and more female gamers 25-35 than men
  • Forrester did some market segmentation on women gadget owners
    • 37% self sufficient, tech savvy
    • 35% neutral, little engagement, low willingness
    • 28% opportunity
  • iPhone is marketed as what it does for your life
  • women feel overwhelmed and confused by choice of Android devices
  • women are twice as likely to have never downloaded a single app
    • don’t see most of the apps as relevant to their lives
    • want apps to solve a problem, to answer a question
  • women are interested in apps but want to be involved on their terms
  • Recommendations:
    • solve a problem
    • entertain, don’t educate
    • if you have an app and want it featured in the next season of the App Show, get in touch at http://facebook.com/ladygeektv

Android behind the scenes

Karl-Johan Dahlström and Erik Hellman

The afternoon keynote session: Sony Ericsson was very open about their process in designing, building and improving their Android phones. They’ve got some lovely devices (I bought an X10 Mini Pro for my wife) but are currently behind in Android software — their devices run 1.6 and a 2.1 update has only just been announced. However, they seem really committed to the platform going forwards (and they did make the best of a bad job on J2ME…)

  • Sony Ericsson wanting to be the Android benchmark going forward
  • have Google base, adding Sony features, then Sony Ericsson design
  • have teams going out to cities and imbuing culture to identify macro trends
  • current focus: Human Curvature, Precision by Tension
    • fits to your body, but precise interaction
  • X10 Mini inspired by the Cloud Gate in Chicago, a “pure object”:

Chicago Cloud Gate "The Bean" 2

  • hardware and software need to harmonise

  • Now introducing “(Erik) Hellman, version 2.0 of Hellboy” :-)

  • all products using same source code
  • contributing all changes back to platform
    • sony ericsson one of the main contributors to Android Open Source project
  • decouple apps — signature apps built on top of standard Android Platform
  • No point setting up an Android forum solely for Sony Ericsson
    • we should be where you are already, answering questions and providing support
  • promotions:
    • have app for the week on local facebook groups
    • Susanna working for marketing in UK — going out to stores, telling people which apps to demo
  • launching Ericsson Application Awards 2011
    • theme: connected things
    • prizes: € 60K + phones at various stages of competition
    • two categories: students or companies with less than 100 employees
    • launch —> submissions —> beta-test —> prize ceremony
    • http://ericssonapplicationawards.com

Turn good ideas in to great apps

Reto Meier @retomeier, Developer Advocate for Android, Google

See Beginner’s guide to Android for more details on deadly sins & glorious virtues

Five deadly sins

  • sloth
    • responsiveness is crucial
    • avoid modal dialogues & activities
    • always update the user on progress — and hourglass is not enough
    • render the main view and fill in data as it arrives
    • you’re not going to have the user’s full attention
    • as soon as they look away, they’re going to do something else
    • never lock people out of the app while you’re processing
    • have about 5 seconds for UI to respond until the OS pops up a warning
    • that’s a back stop to protect the user from crashing apps
    • UI should respond in 100-200ms
    • use AsyncTask
  • gluttony
    • if you’re app uses too many resources, it will get killed when it goes into the background
    • don’t overuse WakeLocks
    • think about how to do battery-draining stuff as infrequently as possible
    • let users manage updates
    • share data
    • use Receivers and Alarms, rather than Services and Threads
    • instead of WakeLocks, add flags to WindowManager (FLAG_KEEP_SCREEN_ON)
  • hostility
    • respect user expectations for navigation
    • workflow should be self-explanatory
    • don’t hijack the native experience — other people use the device in different ways than you
    • give users options to do things, especially around network connections & location
  • arrogance
    • undocumented APIs may not be supported in future releases
    • save state when app is paused so can restore nicely
    • will put off users if you restrict rotation behaviour
  • descrimination
    • APK is designed to work with devices from SE X10 Mini to Galaxy Tab to Google TV
    • include multiple graphic resources
    • ensuring hardware happiness:
      • use uses-features in manifest (and make not required if happy for alternatives)
      • then check for API existence in code to modify UX

Five glorious virtues

  • beauty
    • people perceive a beautiful app as more professional
    • e.g. tweetdeck gets installed on devices with a pre-installed twitter app
    • optimize assets
  • generosity
    • use intents to start other apps
    • e.g. Where and OpenTable
    • create widgets, live folder, live wallpapers to increase user engagement
  • utility
  • measure your success
    • user feedback
      • can’t follow instructions
      • can provide unhelpful feedback
      • users LIE :-)
      • instead use analytics (e.g. Google Analytics for Mobile Apps, Flurry)
  • be epic
    • change the paradigm

Quick tips

  • let the runtime kill your service
    • service should return START_NOT_STICKY
    • if started several times then think about making it sticky
  • kill your own service
    • use alarms & intent receivers for periodic tasks
    • use inexact repeating alarms
  • cloud to device messaging
    • works best for targeted updates
    • com.android.C2DM package is open source sending mechanism for server

Android beyond the phone; Tablets, eReaders, and more

Al Sutton, Company Director of Funky Android

  • Dell Streak uses mDPI resources but has much bigger screen
  • android.os.Build gives you device-specific data
  • use library projects to keep common core together
  • even Facebook and Twitter get it wrong (and have done on Dell Streak)…
  • there are Android dual screen displays
    • e-Ink displays behave completely differently
    • to get it to work requires a custom class…
  • custom device manufacturers are really keen to have your apps on their devices
    • they’ll expect a 20-50% markdown, but you won’t have to pay app store fees
  • ViewSonic ViewPad 7 available in the UK for £399
    • 800x400px display
    • offering £100 rebate for any old laptop or netbook
    • runs Android 2.2 and has Wi-Fi, Bluetooth, GPRS & 3G
    • it sometimes says it’s a phone

Evolving past the fingertip

Nick Hunn, Director, WiFore Consulting (http://www.nickhunn.com)

  • Lots of proprietary devices coming out that are essentially connected tablets (or could be)
    • Energy monitors (govt has mandated that we will all get two)
    • Home health hubs
    • Android can do their jobs very easily
    • But it’s much harder on embedded operating systems
  • putting sensors into everyday objects
    • blood glucose monitor in toothbrush
    • thermometer in TV remote control
  • Bluetooth low energy coming out — new name for WiBree * connectionless, mostly OFF * good at small, discrete data transfers * will appear in phones in middle of 2011 * coin cell will die of old age before bluetooth before it runs out! * costs about $1 in bulk, size of a fridge magnet * chips are 5mm square * not really Bluetooth, just been designed so it’s compatible
  • can also do broadcasting
    • can be location — great for indoor location
    • range is about 100m outdoors, 50m indoors (can cut down if you want)
  • people keep updating online tracking services (e.g. weight, running, electricity usage) for 4-6 weeks then give up
    • too much hassle
  • instead, get devices (scales, pedometers, etc) to update online services via the phone
    • changing the source of ARPU for network operators (lots of small packets of automated data)
    • information is sent automatically, without user touching phone
  • often much more compelling ways of showing data than just basic units and graphs
    • some scales are just showing difference since last measurement!
  • phones don’t include RFID as it’s not a standard frequency around the world
    • one country’s frequency is actually illegal in other countries
    • NFC is different and starting to appear in phones
    • NFC requires more power than Bluetooth Low Energy
    • starting to see different standards working together instead of fighting

The Snapdragon Mobile Development Platform

Leon Farasati, Senior Product Manager, Qualcomm - leon@qualcomm.com

http://developer.qualcomm.com

  • Qualcomm is taking on a new role of being the link in the ecosystem
    • ensuring that there are great apps for the ecosystem
    • have a huge installed base, want to make sure that apps work well
  • Snapdragon is a system on a chip
    • ARM-based CPU, GPU, rich multimedia, GPS, 3G, Camera, power management
  • offering pre-load opportunities…
  • Snapdragon MDP (mobile development platform):
    • commercial-like device (can actually use it in the field)
    • will be available through bsquare
    • full load of sensors including:
      • gyro and compass
      • proximity, temperature, pressure
  • early access to next generation hardware

Future of Android Panel

Ewan MacLeod with panel:

  • Ben Medlock — TouchType (makers of SwiftKey)
  • Volker Hirsch — ScoreLoop
    • mobile social infrastructure tools
    • virtual economy tools, good, gifting, etc
  • Aaron Johnson — Principal Product Manager for Games & Applications at Vodafone
  • Michael Smith — Head of Platforms for INQ Mobile
  • Leon Farasati — Senior Product Manager, Qualcomm

  • Anssi Vanjoki likened Android to “peeing in your pants”

    • MS: Nokia not core of mobile software any more
      • Android opens up ecosystem of competition
      • Allows delivery of applications at web speed
      • Just that speed alone is enough…
    • AJ: there will be a point when people start asking for money for Android (”What!? I’m not sure I understand his fear here. There are licenses in place…”)
    • VH: SMS & Smartphone outside of Western Europe etc, Nokia is still a big player
      • but no longer in mobile developed countries
    • BM: a platform that fosters partnership is better
      • Android has challenges with fragmentation
    • VH: iPhone developers were complaining about 3GS causing fragmentation
      • nothing compared to J2ME: multiply devices by operators by bugs…
    • LF: one challenge for Android is capturing lower end
      • but high end phones will trickle down
    • MS: fragmentation to Android is similar to building your own PC in late 80s
      • i.e. no impact
  • We’re still on the dream phase for Android: consumers “only buy one Android device”… Will consumers retreat to “something familiar”?

    • VH: is HTC sense out there because Android needs it or because HTC does?
      • Android lacks the polish at the moment
    • AJ: didn’t like the UI on various Nokias I had, but I kept getting them…
      • there’s whole range of reasons why a customer chooses a device
    • BM: the breadth of Google’s web services provides a very strong disincentive to leave
    • MS: Google is encouraging OEMs & operators to fight amongst themselves to get great user experience
    • LF: want to allow the people who actually know the end users to drive that
      • this is the OEMs & operators (”is it really?”)
      • e.g. Japanese phones are tailored to Japanese market — we would probably hate their UI over here
  • If I was your fairy godmother, what would you wish to change in Android?

    • BM: I’d love to see a decent automated testing framework on a range of devices
      • love to see something comprehensive
      • I think this should be Google
    • VH: a working billing infrastructure
    • AJ: developers making sure that their app manifests include clearly defined API access and permissions
      • so can manage lifecycle
    • MS: Google has history of encouraging competition and then eating them
      • would like Google to be a little more open about what they’re aiming at and what they’re not, to provide some reassurance
    • LF: want a better way of getting hardware acceleration support
  • What should we know about? What’s really interesting?

    • BM: the tech community
      • there’s a great community of tech blogs ready to test new software
    • VH: entering Google email in device and seeing calendar & picasa just popping up
    • AJ: paid Android submission to developer.vodafone.com
      • everyone can sign up, with charge to bill included
    • MS: cloud to device messaging
      • should destroy BlackBerry BDM very quickly
    • LF: this room right here — Java brings a huge talent pool
      • peer to peer proximity based stuff
      • device contextual awareness: walking, driving, in your purse/pocket