Showing posts with label london. Show all posts
Showing posts with label london. Show all posts

Sunday, 28 October 2012

Droidcon London 2012, Day One

The first day of Droidcon London was a barcamp, though one with lots of pre-prepared presentations.

The main highlights for me were finding out about useful libraries and services developed by the Android community — RoboSpice, TestDroid and Dr. Power — that and meeting more Android developers (apparently there were over 1000 there!).

immersion haptics

  • haptic effect preview app available on google play
  • immersion started with game controllers
    • e.g. logitech steering wheels
  • also have automotive
  • android just has vibrate on and off
  • immersion sdk extends the vibrate method
  • http://immersion.com/haptic/sdk
    • adds about 400Kb to app…
  • deals with all different vibration methods
  • copes with devices with no motors (just doesn’t do anything…)
  • best tweet about haptics @hapticsdev wins a galaxy note 2
  • navigation queues
  • battery usage — about 3% for an hour of vibrate usage during a game
    • goes down to 1% for piezo vibrators
  • but don’t use the motor the whole time — it just annoys the user and dulls their senses
  • leave the haptics and sound options separate (so people can play silently but keep haptics)
  • standardisation of patterns for accessibility?
    • library of 124 effects is a default standard
    • up to RNIB to come up with semantics

robospice

  • library for making async network requests easy
  • https://github.com/octo-online/robospice
  • intro guide
  • available on maven central
  • AsyncTasks not so useful as the activity can change while the task is still processing
    • e.g. if device rotates while running, then asynctask could update the wrong activity
    • leads to memory leaks
  • Loaders are an alternative
    • but designed for database access not networking
    • can’t keep the response if the activity changes
    • no exception handling by default
  • RoboSpice uses a background service
    • activity creates a request and a request listener
    • request passed across to the service by the spice manager
    • requests can last beyond a single activity, so can pass results to the newly rotated activity
  • each context that needs a remote call will have its own SpiceManager, each of which binds to the SpiceService individually
    • can have a SpiceManager in an activity, a service, a fragment, etc
  • SpiceService keeps results in a cache so can respond immediately
  • integrates with Spring RestTemplate for Android

text layout for localisation

By Kotikan, developers of SkyScanner

Charles & Robert — @charlessharley

  • different languages have radically different word lengths for the same concept
  • best solution is to guide your translators to use shorter text lengths
  • sometimes not possible…
  • built-in truncation only operates on the whole string — can skip out important words or syllables
  • created custom TextViews
    • resizes text to fit (keeps on getting smaller)
    • flexible truncation using markup
  • code currently not available as open-source, though Charles & Robert trying to persuade their company that this would be a good idea…

resizing to fit

  • need to separately subclass TextView, Button & CheckedTextView
    • put resizing logic into a common utility class
    • decreases size (down to minimum) until fits
  • also have harmonisation to keep consistent text size amongst similar widgets
    • have a harmoniser that listens to text size changes across a group of widgets
    • sets text size of all to smallest of group
  • also used XML group ID to define harmonising groups in layout
    • include a new namespace
    • defined as res-auto so will be populated with package name
    • can be used to add additional attributes
    • key needs to be group ID and context so that XML files across the activity can be grouped together
      • context must be declared as a weak reference to avoid memory leak

flexible truncation

  • check need to truncate first
  • then parse markup to split sections
  • measuring each section
  • truncate sections to fit space available
  • cache text panes

KirinJS

James Hugman @jhugman http://bit.ly/kirin-github

  • most apps James has written are fairly IO bound
    • so performs fine for them
    • obviously, games would not be suitable
  • Glasto 2011 app stored JSON data into SQLite
  • other similar approaches:
    • Calatrava — similar to Kirin but from a web dev point of view
    • j2objc — compile java into Objective-C
      • under heavy development…
    • Ejecta.js — write to canvas, renders in OpenGL

Sony SmartWatch

Jerker Lindgren Götsten jerker.lindgren.gotsten@sonymobile.com

SDK available at http://sonymobile.com/developer (also available as ADT extensions)

  • notification & control APIs are shared with SmartWatch + Smart Wireless Headset
  • notification is stateful, with a central database on the phone
  • battery life is an issue — watch can last less than a day if over-used…
  • also frame rate is 6-7 FPS for full screen images
    • faster for partial updates
  • extensions can be started either by an app on the phone, or by the user on the watch
  • you get a Pause event if a high priority input happens (e.g. phone call)
  • SDK has utility classes to receive sensor events or send updates
  • music player also available as open source
  • host app searches Google Play looking for extensions that include LiveWare… phrases
  • sports apps are working really well in Google Play
  • other apps:
    • remote camera viewfinder
    • tic tac toe, puzzle
  • popular in Japan — with other small technologies :-)

OpenCV for Android

Erik Hellman

  • Android library is a wrapper on top of native API
    • includes armv5, armv7 and x86 variants
  • object detection
    • face, hand, eyes, edges
  • optical flow lets you track points in a moving video
  • lots of alternative classifiers available (search online)
    • haar cascade is a little bit slower than lbpcascade
  • in Android, front facing camera is 1, main is 0
  • better to work with smaller preview window size
    • 320x480 is often enough
  • faster to reuse bitmaps & matrices (avoids lots of allocations)

New Samsung developments

Manfred Bortenschlager http://developer.samsung.com

  • planning to have Samsung apps on fridges, washing machines, air conditioners as well as phones and cameras

galaxy camera

  • 21X optical zoom
  • Android 4.1,
  • basically a Galaxy S3 with a camera attached!
    • still has 3G and Wi-Fi
    • feels fairly hefty for a compact camera
  • software control gives you additional camera features:
    • automatic zoom to moving object
    • zoom while taking picture (for effect)
    • slow sync to enable light writing
    • voice control
  • current API (work in progress):
    • ParametersEx class with 130 methods…
    • setAperture, setShutterSpeed, setIso, etc
  • sample usage: camera = Camera.open() params = new ParametersEx(mCamera) params.set... params.updateParameters()

Stella SDK

ChatON & AllShare

  • ChatON: online chat
  • AllShare: online media storage & sharing

Big Fat Soft-Key

Giovanni Bisutti http://inputdynamics.com/

  • using microphone & accelerometer to detect taps on phone case
  • works on back or front of phone
  • expect SDK to be released next year
  • uses up to 7% of CPU when in use… (though more optimisation required)
  • new app being demoed next month
    • mostly native code
  • looking for an Android developer to help develop the SDK…

Future of Android - OUYA Game Console

Julie Hurman @jhurman

http://ouya.tv/

  • made $8.5m on kickstarter… ($1m in 8h22m!)
  • disrupting a market that hasn’t changed in 30 years
    • consoles and games are both expensive to purchase
  • OUYA is about openness for both gamers and developers
    • all games will be free to try
    • developers build for Android (no cost for SDK)
    • every single OUYA is a debug console
  • working with NVIDIA to have best Tegra3 performance
  • will have its own storefront
    • will curate content (review for copyright infringement, spyware, etc)
    • will not have ads
  • schedule
    • first units are coming off the production line
    • dev units will be out in December
    • kickstarter backers will receive units in March
    • aiming for full roll-out in April
  • goal is to potentially refresh OUYA on a yearly basis
    • won’t have a 6-7 year lifecycle of existing consoles
    • some of the audience were concerned about whether a stock NVIDIA chip would be able to have an impact in the living room when facing custom hardware from the likes of Sony. But as John Carmack has said, “technology doesn’t hold back game designers anymore.”
  • store will have cryptographic controls for securing content, but they’re working to allow root access to the device as well (could be interesting)
  • will be able to show the games that have had most time played in them
  • going for 70/30 revenue share
  • majority of SDK is in-app payment API

Demo Camp

This was lots of very short (1 or 2min) product demos. Some better than others…

  • testdroid app crawler
  • palerta — private social smart friend alerter
    • doesn’t overshare your location
    • by Little Fluffy Toys
    • also make location library
  • Tawkon - Dr. Power
    • can see power usage on individual processes of each app
  • secret.dj
    • 300 venues
    • see what’s playing & add to playlist
    • gamification to gain credits & jump queue

Tuesday, 10 May 2011

Londroid: Payment and monetization

The first of two Android blog posts — this one’s from the Londroid Meetup on April 21st themed on Payments.

There were three presentations from three competing payment platforms, and they presented in roughly the order I’d prefer to use them (in their current state): Paypal is very much sorted for Android — they make it easy and it looks impressive and secure; Google’s in-app billing is still new and feels unfinished; and Paythru is simply a browser-based system that’s designed for mobile, but no way near as slick as the other two.

However, talking to the Paythru rep later, they have some interesting tricks up their sleeve — like being able to take payment but not actually charge it to the card for several days (useful for synchronising multiple payments, or buying Olympics tickets). Google will also be beefing up their billing system over the next few months, so Paypal won’t have an easy ride.

Integrating Paypal In-App and Mobile Browser Payments on Android

Anthony Hicks anthony@x.com — Paypal

  • paypal in EU biggest in UK, then DE, then FR
    • small numbers in scandinavia, spain & italy
  • now have a bank license in Europe
  • iPhone, iPad, Android mobile payment library
    • all in-app (no browser)
  • adaptive payments
    • split payments between multiple parties
    • make chains of payments
    • make a billing agreement and charge them later
    • pre-approval — can request payments without taking people to paypal
    • customer agrees to pay up to £X per month
    • take commissions on payments
  • mobile express checkout also available (browser based)
    • optimised for webkit
    • can login with mobile number and pin (as well as with email/password)

Development

  • payment button & pages have to be consistent
    • paypal won’t let you change them
  • language only affects the login page
    • paypal then switch to user’s language
  • process to approve:
    • get sandbox ID
    • submit test app to paypal
    • get live app ID
    • rebuild app (and don’t change it too much!)

Android In-App Billing

Richard Hyndman @geekyouup — Android Developer Advocate, Google

  • available on 1.6 and above (since handled by Android Market app)
    • have to have opened the Market app
  • two kinds of purchase:
    • Managed: once per account
    • can query market to find out if the purchase has been made
    • Unmanaged: unlimited per account
  • get the Google Market Billing package from the ADK
  • usage:
    • bind to service
    • check billing supported (requires network) — can then ask for upgrade
    • send billing request and put up billing page activity
    • set up billing receiver
    • purchase notify tells you something has changed, but you have to ask what…
    • quite a few back and forths…
  • security
    • recommend that you put validation on server (urban airship?)
  • use android.test.purchased as your SKU then it won’t get billed!
  • use test accounts for testing…
  • apparently the dungeons example has two or three classes you don’t actually need

Q&A

  • subscriptions not in API yet…
  • shared preferences can now be synced to the cloud
  • to prevent copying to another phone, would have to check market when app launches
  • currency tied to the google account, not to the IP location
  • can only buy digital content/services

Paythru - Money on the Move

http://www.paythru.com/

  • paythruMONEY — allows people to manage a card from their mobile
  • can move money with a single-use QR code
  • provides digital cash (user is logged in but retailer sees no identification)
  • a few lines of code:
    • launch a browser to a specific URL
    • get the app to launch with a return URL when the paythru mobile web checkout has completed

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

Thursday, 28 October 2010

Droidcon London 2010 - Day One

I’m heading home with my brain stuffed full of new knowledge from Droidcon London 2010. And this was just the first day, with unplanned, unprepared barcamp-style presentations!

Most of the presentations today were technical (tomorrow there’s a design and business thread as well) but they varied from doing continuous integration through discussing low-level TCP details to a Q&A session with some of Google’s Android team.

I’m seriously looking forward to the second day’s programme.

In the meantime, here’s my notes for the sessions I attended:

Android UI tricks from Sony Ericsson

  • limit of 200ms to respond to user interactions — don’t do long running tasks in the UI thread
  • so how do you deal with longer lasting processes? use the Handler & Service classes
  • …and use Toasts to show quick popup status
  • number of devices on 1.5 is below 10%
  • all demos will be available on the Sony Ericsson developer blog

Handler

  • don’t use inner class Runnables inside a Handler (save heap & garbage collector)
  • within XML use onClick for buttons
  • handler.sendEmptyMessageDelayed(message, delay);
  • then have a message handler that deals with loop & sends next message
    • any UI activity should be in a Runnable called with runOnUiThread(runnable)
  • don’t forget onDestroy

Service

  • used for downloading
  • pass a message from service to activity by implementing your own Application class
  • Application defines callback interface and methods to fire & receive
  • use IntentService for your service
    • deals with sequential handling automatically
  • call to the application (need to cast getApplication())
  • don’t use AIDL interfaces — unless you want to share service with other apps or between multiple processes in your app

Animation

  • create an AnimationSet and add Animations within the getAnimation call
  • second parameters for RotateAnimation are relative to view, not screen
  • can also do animations in layout.xml
  • Twitter app removed animations from their home screen…
    • the background was a live wallpaper — consumes a lot of battery
    • continuous animations can use up battery so be careful
    • shouldn’t be a problem with performance though
  • see also Zooming demo and

BootListener

  • when the phone is rebooted, the alarms are cleared
  • don’t listen for boot completed unless you really have to
    • slows down startup if you have too many
  • can have a broadcast receiver that is disabled
  • in app xml set bootlistener disabled by default
  • then in listener when intent comes through: {{{ context.getPackageManager().setComponentEnabledSetting( new(ComponentName(context, BootListener.class), PackageManger.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP) }}}

3D & OpenGL with Android views

  • combine the strengths of Android views (text, layout, etc) with OpenGL (3D but not text)
  • create a bitmap
  • use MeasureSpec method
  • draw the view onto the OpenGL texture bitmap
  • GLUtils.texImage2D(...)
  • if you do this today, suggest you use OpenGL ES 2.0

Location services

led by Nick Black, Founder & Head of Products at Cloudmade

cloudmade

  • cloudmade will support Android later this year with a Maps SDK
    • based on OpenStreetMaps
    • worked out a way to squeeze vector data onto the device
    • map data comes as you need it and is stored locally on device
    • downloadable data includes searchable street names, etc
    • early access available end of this year, early next year
  • cloudmade also has http://maps.cloudmade.com/editor to let you choose and configure your design —- your style will work on mobile too!

Impleo

  • formed from ex-Motorola & Alcatel employees
  • also adding tracking for insurance
    • includes accelerometer info so can tell how good a driver you are!

cloudmade location-based advertising

  • created a network that finds highest value ads from other networks
  • goes out to other ad networks, will also go out to more specialist networks
  • trying to deal with the fill-rate problem…
  • some android apps got backlash when adding advertising after the app release
    • put the ads in at the beginning!

map data

  • most owned by Google, Nokia or Tomtom (Navteq)
  • skobbler Android app - built on cloudmade’s navigation service
  • cloudmade see navigation services not as an app but as a feature within apps
  • Google don’t allow access to driving directions API on Android

google latitude and other services

  • Is anyone using the latitude API?
  • GPS in Android drains the battery quite heavily
  • if things are further away then turn off GPS temporarily
  • battery management isn’t good built-in
    • have to manage your own choice between coarse and fine location services
  • Motorola went to use Skyhook instead of Google location API on Android
    • that way they would get data for their customers WiFi location
    • Google forced them to switch back to Google location
    • Skyhook now suing Google…

Always in sync client & local unit testing

Carl from Novoda (@charroch)[http://twitter.com/charroch]

RESTProvider

  • available on github
    • depends on JacksonJSON etc
  • makes a RESTful API available as a Content Provider
  • couple of branches — caching_carl one stores locally in SQLite
  • can start service with loads of requests — it will handle them in a queue
  • can add params: putExtra("params", new List(...))
  • Tip: adb shell setprop log.tag.Database VERBOSE
    • slows it down a lot
    • can add your own tags too
  • ResultReceiver: a way of passing back status to app UI
  • if connectivity is lost, it stops the queue
  • need to watch out for the user setting to disable background downloading
  • extend HttpQueuedService
    • override getMarshaller
    • create a LoggableJsonRequest with a marshall method to store data using a ContentProviderOperation
  • library supports ETags too — saves a download as server data is just a HEAD response
  • also created novoda.mixml (minimal XML) which works in same way as Jackson JSON
    • integrated into RestProvider to cope with XML content as well as JSON
  • hopefully have time to build a more stable version over the new year
  • end goal: to have declarations in application XML and service definition

Unit testing of android classes without emulator

  • see also the RestProvider code on github
  • android.jar only contains stubs, so can’t even instantiate
    • major problem for your subclasses even when you only want to test your additional methods
  • PowerMock works somewhat
  • need to find a different way of doing the tests
  • Carl has copied the source of the Android classes into his test source and modified them to ensure no call to the system…
    • not too hard — just need to ensure that the constructor can work
  • have to keep your code copy up to date with the base Android source
    • but it doesn’t matter that much as you won’t be testing Android code
  • possible next step: Android will run on Intel — could run locally with unit tests
  • currently have three projects:
    1. main classes
    2. local tests using this mechanism
    3. instrumentation tests
  • changing to have a single folder with tests marked with annotations
    • want to have some tests marked as local if possible
    • android instrumentation tests should run all of tests (including local tests)
  • maven could be overkill for Android development
    • build process is quite well-defined, not that many other libs
  • SBT could be interesting (simple build tool, written in Scala)

App Analytics from Capptain

  • combining in-app analytics with CRM
  • collect/measure -> analysis -> engage
  • send messages to users and get feedback
  • SDK available in Android and iOS
  • similar services: motally (acquired by Nokia) & xtify
  • released beta two days ago
  • have REST/JSON API for data
    • not publicly available right now, but available on a case-by-case basis
  • also have a real-time API

  • pricing:

    • free during beta period
    • haven’t decided pricing structure
    • probably freemium — pay for additional functions/users

new analytics capabilities

  • how long users are spending in each screen of your app
  • really nice user path — based on screens, not events
  • real-time analytics — can monitor where people are in your app right now
  • crash logs with device, firmware, etc details
  • as per other analytics, store data locally and send later if not connected
  • Android SDK automatically picks up activities

CRM

  • announcements and polls
  • target by carrier, country
  • test before publish by sending to a single device
  • schedule for particular times

Qualcomm Alljoyn

http://developer.qualcomm.com/dev/alljoyn-p2p

  • exposes a shared communication bus based on DBus
  • automatically uses Wi-Fi and Bluetooth as device allows
  • Java and C interfaces
  • Java interface lets you just send/receive/call POJOs
  • Wi-Fi uses mDNS to find services by well known name (a URI)

Continuous Integration with Maven & Hudson

Hugo Josefson from Jayway (founded Maven Android plugin)

http://code.google.com/p/maven-android-plugin/

Slides and Hudson installation script available from http://code.google.com/p/maven-android-plugin/wiki/Presentations

Android and Maven

  • there’s also a proguard plugin — can use to trim unused classes
  • maven can handle inter-project dependencies
    • keep pure Java code in a Library (so can have local unit tests)
    • then can have app depend on library and on-device tests depend on app
    • see Samples project for MorseFlash example
  • there’s also an Eclipse plugin that helps ADT & Eclipse understand that they’re dealing with Maven
  • the process that takes the longest time is the DEXing

Android, Maven and Hudson

  • don’t see any reason to run Hudson in Tomcat — it comes with its own webserver
    • though it should work fine within Tomcat too
  • Android emulator plugin for Hudson: http://wiki.hudson-ci.org/display/HUDSON/Android+Emulator+Plugin
  • emulator settings: 2.2, mdpi, hvga, en_US, 64M
  • can loop through different settings for emulator
  • Hudson server needs some X libraries but will still run headless
  • currently don’t find out which tests fail when Android tests fail — have to look at logs

Google Q & A

I only noted down one question from the second Google Bootcamp Q & A session:

  • can you target apps at Android tablets?
    • can target large screen devices (currently Galaxy Tab + Dell Streak)
    • will also hit Evo 4G as that has hi resolution too, but smaller screen

Saturday, 24 October 2009

BarCampLondon7: Release London's Data -- Feedback from #londonsdata

Emer Coleman (assistant chief exec for London Borough of Barnet)

  • has been doing research this year about what data has been collected in london boroughs
  • big crisis in public finance after next election — what will happen?
  • to have a meaningful conversation, you need to have information available…
  • lack of trust at the moment (esp. for MP’s finances)
  • GLA holds a lot of data and wants to publish
  • already publish financial data
  • hoping to put pressure on subsidiary bodies to release more
  • invited developers to ask for what they wanted
    • 65 developers gathering information
    • TfL & transport info is really where they want to get to
  • developers have gone as far as they can to push agencies
  • “we’re just gonna do it”
  • asked “do you want raw data, or with some contextual data?”
    • didn’t come to any firm view
  • should we just release with the cabinet office?
  • now an email list, and a google group set up
  • will be running a competition
  • aiming to release data store in January
  • data avilable
    • air quality maps
    • number of people in social housing
    • school catchment areas
  • message coming from developers — just put the data out there
  • Daniel Shore (@LDN): what’s the attitude of TfL to scraping the journey planner?
  • IanForrester: other authorities (e.g .Manchester) trying to do things too
  • DIY Birmingham — scraped version of local authority site, but much more accessible
  • Cloudmade: NaPTAN data being imported into OpenStreetMap
    • then allows it to be updated, corrected and extended
  • Beth Noveck (Obama’s advisor on transparency) has written a book about wiki government

Friday, 10 April 2009

BarCampLondon6: Get Google's 20% Time for Yourself

Flexible working has recently come under the spotlight — due to the change in UK law from the beginning of April, all parents with children under 17 are now able to request flexible working from their employers. Employers are only allowed to reject demands if there are “good business reasons for doing so”.

Parents often want to take time off to be with their children and to provide childcare during school holidays, but time off work is not just for looking after kids. Sometimes you might want to change the balance of your life and invest in your own ideas rather than those of a company.

This BarCampLondon session was a discussion on how you could take time for yourself, and what you would do with it once you’ve got it.

Introductions

  • Ben — a computer science student on his year out working for an ISP 2 days a week with flexible hours
  • Shadi — a “person of leisure”, problem solving for friends and family
  • Dale — working full time on flexible hours for a large IT company
    • shifted hours to be primary caregiver when first child was born, now wondering how to adjust hours to deal with second child
  • Adam — took off half a day a week when son was born; that time now used for himself since son is at school; recently thinking of moving to a full day off each week
  • Melanie — working full time but dreams of finding her own project; hasn’t found a solution yet
    • disappointed with work leaking in to personal time — e.g. people working on a Sunday to be ready for Monday morning
  • Anna — likes travelling; would like to have some work of her own she can take with her while she’s finding her feet in another country
  • Sarah — works full time but is setting up another company based in India in her spare time

Sarah’s experience

Sarah used to work for company similar to the one she has created. It was taken over a while ago, so she decided to set up something similar but better. She had a vague acquaintance who set up the contacts in India where development costs are very low (£300 per month!). At the moment she’s working on the English translation of the work done in India in her evenings, whilst working full time at her existing job during the day. This results in her working more hours than she would normally, but she has something of her own that she’s building up.

Ben’s experience

Ben is currently a student, trying to avoid going straight into full-time work. Instead, he’s working part time to his schedule. He has quit twice from his current employer as he didn’t want to work long hours. He wants to be able to work on his own projects.

Is working part-time really less hours?

Adam takes a day off every other week and gets to take that day completely for himself. However, Shadi used to work three days a week, but found that she was working until midnight to complete her tasks — her job was tech support so she had to get the customer back online. She also occasionally received calls on her days off if she was the last person to deal with a particular situation, asking her to deal with it. Since she had commitments to be in on certain days, she found she couldn’t alter her hours to compensate for working on her days off.

Ben pointed out that Carsonified have a company-wide policy to work a four day week — the whole office is closed on Fridays.

There’s also more choice than just full time or part time: some of Dale’s colleagues work compressed hours — working more hours a day, but four days a week. They still get paid full time. Others work longer hours during term time but have school holidays off so they can do childcare. See http://www.direct.gov.uk/en/Employment/Employees/WorkingHoursAndTimeOff/DG_10029491 for more information.

Sharing responsibility

As Shadi’s experience shows, you do need a job that can be put to one side — or a company environment that promotes sharing responsibility. Agile processes such as Extreme Programming make this a central part of the culture, not just to enable people going away but to encourage greater flexibility in the whole team. Hospitals also deal with sharing responsibilities regularly, with staff coming on and off shift but providing continuous cover.

Anna wondered whether the people sharing roles needed a certain level of communication skills in order to make this working style possible. Adam agreed: his company hire developers partly according to their ability to communicate in a paired programming exercise — the ability to clearly discuss what they’re working on is at least as important as being able to solve the programming exercise.

This approach clashes with a top-down, command and control culture: employees have to be able to trust their peers and communicate without going up and down the hierarchy. You can’t share a job with someone who you fear might take on your role and replace you when you’re not around.

When you have time to yourself, what do you do with it?

Setting up a new business is risky — so it’s good to balance it with the security of an existing job. Start-ups costs for online businesses are coming down — you can rent your servers in the cloud and only pay for as much CPU and bandwidth as you use.

There are also sites such as One Click Orgs which will enable you to set up a legal entity very quickly for little cost.

Sarah’s approach shows the value of capitalising on your experience — make sure that you’ve made the contacts and make sure that you build on them.

Involving other people

If you need to involve other people in your new venture, you have to balance their commitment with their involvement: if they’re doing you a favour for little money, they won’t necessarily work to your timescales.

Local currency systems like LETS (Local Exchange Trading Systems) can provide a community of people willing to help each other. The local currency is based on trust and disclosure, with everyone able to see everyone else’s trading history at all times. Members will hold to their commitments or risk other members never doing business with them (a bit like eBay reputations). Note that LETS are not a way of avoiding tax — if you’re operating a business that sells in LETS currency, you’re still eligible for paying tax on the income.

One of the original benefits of LETS schemes was the lack of interest on loans — you can easily have a negative balance and just agree to contribute more in the future. Given that bank interest rates are currently close to 0% anyway, this may not be such an incentive at the moment…

Anna pointed out that one of the most useful people to involve in setting up something new is a mentor — someone to get you moving and be there to provide advice on basic things like planning.

Thursday, 2 April 2009

BarCampLondon6: The Guardian Open Platform

Simon Willison @simonw (at Guardian since October last year)

Context — stuff available before the Guardian Open Platform

http://guardian.co.uk is built and runs on a completely custom CMS called R2. This was built recently as an 18 month agile project supported by ThoughtWorks. It’s written in Java, using Spring to hold things together.

Everything on the Guardian site is based on tags (you can see the tags as headings in the right had column). These tags are a controlled vocabulary, created and maintained under editorial control.

Every page that is not an article is almost completely controlled by tags. You can visit a tag home page (like http://guardian.co.uk/technology) and by default it will show a bunch of articles appropriate for that tag. Alternatively, editors can take control of a tag page to highlight articles etc.

The system also supports “tag combiner pages” — pages showing articles from multiple tags, like http://guardian.co.uk/environment/climate-change. These are generated in exactly the same way as the single tag pages but will have fewer articles due to the extra filtering.

In addition, any tag page can generate its own RSS feed — just add /rss to the end of the URL. RSS feeds are full fat, sometimes with ads, but their Ts & Cs are currently for personal use only.

What is the Open Platform?

http://www.guardian.co.uk/open-platform

The new Open Platform allows for commercial use of the Guardian content. The Guardian have made everything available to which they have full rights (so no third party feeds and no content with restricted rights from freelancers). This includes full articles, audio and video (the audio and video is not served directly through the API but it provides enough metadata to link to it). There are currently around 700,000 articles stretching back at least a decade and sometimes longer.

The commercial terms seem reasonable and practical: you can build an interface that links to content on the Guardian web site for free, but it you want to publish the content on your own site then you’ll have to display Guardian adverts alongside it. This works for the Guardian too — they already get orders of magnitude more readers on their web site than their print circulation, and anything that increases their online advertising placement is therefore a good thing.

They have also built an API explorer (with a UI modelled on Firebug) that allows you to play with the data and discover the requests you’d like to make. All the data is URL based, with each article having a web URL (its location on the Guardian web site), a data URL (its location in the Open Platform API) and multiple tag URLs. The other entry point is the search URL, where you can search by text, tags and various dates.

Data is returned by default in a structured XML document, but you can switch this to JSON using the explorer UI. There’s also an ATOM feed available by appending &format=atom to the URL — this data is the least rich at the moment, but easier to feed into other services like Yahoo Pipes.

The explorer makes it easy to browse the content — following links between articles and filtering any searches by picking out tags. Each search returns not just articles with full metadata, but also a section detailing the tags of all the articles in the search. In the tag data you get the number of articles in the search with each tag — so it’s easy to see how further filtering will affect your search results.

At the moment, the results only list topic tags, but there are also contributor tags and other kinds — all editorially chosen, and selected as interesting topics. For example, not every MP has their own tag, just those that show up in the news. The other kinds of tags will be added to the API shortly. These tags strike me as one of the most useful areas of the API — essentially the Guardian have built up an ontology of topics and they’re making it available for free. As far as I understand, if you use the tags but not the content (or at least link to any content on the Guardian website) then you don’t even need to put Guardian adverts on your site (this may be totally wrong — I haven’t read the Ts & Cs in full yet).

The Open Platform site has some examples on it already — the one that Simon Willison highlighted was a Stamen project: http://guardian.apimaps.org allows you to annotate Guardian articles with geo data (which isn’t built in by the Guardian yet) — then view the results on a map.

The Data Store

http://guardian.co.uk/data-store

As well as the content of the articles themselves, the Guardian have opened up some of the data that they use to prepare them. They have a team dedicated to collecting and updating various statistics from bird populations to government budgets and everything in between. The team is putting this data online and available as Google Spreadsheets — currently there are over 100 (up from 86 at launch).

Some of this data is the result of weeks of effort from the Guardian team — the sheet of government data by department was so impressive that the Cabinet Office called and said they’d like a copy as they couldn’t get the data themselves! All the data is vetted and has been published in the newpaper, so you can be reasonably confident of its accuracy.

New data is regularly published on the Data Store blog and the Guardian is trying to build up a community of data wonks around it. Already some people are getting involved, taking the data and doing new things with it — see various examples at http://ouseful.info such as pulling in the MP expenses spreadsheet into IBM’s Many Eyes visualisation system. Previously published data is also being regularly updated by the Guardian team — Simon Rogers has pledged to keep updating various of the data sets he has created.

Saturday, 28 March 2009

BarCampLondon6: Intro

This is easily the slickest, best organised Barcamp I've ever been to. The Guardian offices are amazing and perfect for a barcamp format, the food is not only very tasty but nutricious too (fresh broccoli & sugar snap peas make a welcome change), and the talks are, as usual, mind expanding.

The new Guardian offices in Kings Place (behind King's Cross and St Pancras stations) are truly a treat. They overlook the canal on two sides and make full use of the view. There are large glass windows in all the rooms -- if they don't look out onto the water, they have a view of the full height, glass atrium up the centre of the building. Unlike Barcamp London 3 at Google, all the rooms are right next to one another and you can see most of the people most of the time. Kings Place is also a new arts venue, with folk music, jazz or classical most nights -- I look forward to seeing more of it.

The only small niggles are the lack of space around the session grid (I'm sure there are pictures on Flickr of the crowd) and a possible lack of comfy furniture. The bean bags at previous Barcamps and similar events I've been on have been fantastic for encouraging a laid-back atmosphere -- here there are plenty of chairs but the floor is a bit hard. It feels a little more formal but that isn't a completely bad thing. I'm not sure how it worked for those sleeping over as I'm heading home for a proper night's sleep.

I've kept notes on several of the talks I've attended and I'll post them shortly, but I want to say thanks to the organisers for doing a fantastic job. I'm really looking forward to tomorrow's sessions.

Tuesday, 10 March 2009

MomoLondon: What have operators done for you lately?

Not quite as snappy and energetic as last month’s event, but still a good evening. I think tonight was missing some demos or video examples to get the crowd excited before the panel session. As it was, it took until the last few questions before we got to the nitty gritty.

O2 Litmus

James Parton, Head of O2 Litmus

James Parton gave a polished presentation about O2 Litmus with lots of pithy quotes. Some examples:

O2’s feedback from the developer community about what was wanted from an operator:

  1. get out of the way
  2. be transparent and honest
  3. show me how to make some money

“Developers can get their app in front of customers in 18 minutes, not 18 months”

“The customer API is the real value”: refine ideas with feedback from real customers

The benefits of O2 Litmus: developers have access to customers; and customers get a voice, early access and rewards.

Operators and Operands, a Love Story

Terence Eden

Terence wanted to get across the network effect — the killer app of a mobile communication device being the people with whom you communicate.

He started by scaling up from the iPhone, selling 20 million worldwide so far. Quite a few people in the audience had one, unsurprisingly. But the largest selling phone across all operators in the UK is the Nokia 6300 — basic mobile web & Java apps only, but used mainly for talking and text. Scaling up still further, the Nokia 1100 sells more than any other phone worldwide, and its greatest feature is a built-in torch!

Operators exist to generate the network effect. The network effect is the real power. What operators really want is for people to say, “I enjoy using my phone, I want to use it more.”

To a certain point, I agree with him. Until you have a certain number of devices in the market, the most important thing is getting people to use more devices. However, we’re long past that in Europe. The latest stats from the UN say that Europe has 111% penetration of mobile devices. That’s more devices than people.

Once you have a network, it’s time to think about how to leverage it more than how to grow it. Treating connectivity as a given has led to most of the exciting and new services and business models of the recent years. Google Docs, Dropbox, Twitter — they don’t exist to encourage people to use the internet; they only exist because everyone is already on the internet.

That’s an area where the iPhone has stormed ahead in mobile. It assumes you’re connected and moves beyond that. Nokia is still stuck on helping you to connect.

Panel

  • Chair: Anna Gudmundson, Ad.IQ
  • James Parton, O2 Litmus
  • Steve Wolkak, Betavine
  • Jo Rabin, dotMobi
    • investors include Google, Symbian, Microsoft, etc
  • David Wood, Symbian

How did Betavine begin?

  • Engaging those outside of your workplace (now called crowdsourcing)
  • Thinking of ways that we could encourage the developer community to move towards mobile
  • Any application uploaded to Betavine.net visible on portal in Germany, Spain, UK and South Africa

Where’s it going next?

  • Direct feedback from developer community
  • Feedback from Vodafone
  • Things that the team think are fun
    • at the moment, looking at emerging markets

What is the dotMobi business model?

  • We derive revenue from domain sales, development software and services

Which apps get cherry-picked from O2 Litmus?

  • We use “endorsements” — not just downloads, but feedback on forums etc
  • Not just O2 staff that make the decision, but real customers
  • Once app is endorsed, then

Why would you develop on Symbian?

  • Since open sourced, trying to encourage a wider community
  • Now want to make developers have a great experience so that the platform as widely used as possible

Why is there fragmentation across operators?

  • JP: fairly happy if a developer joins O2, works with customers to develop an app, then leaves and sells the app on Orange or Voda
    • customers have had the experience, which is what counts
    • challenge to JP to make Litmus a place to stay, but of course it won’t be exclusive
    • Litmus is part of the marketing strategy — not led by the tech department
  • DW: if you allow customers the freedom to move away, they’re more likely to come to you in the first place
  • JP & SW: we meet up for coffee, it’s all good :-)

The iPhone question: How are you planning to get more user-centred design into your process?

  • DW: Set up four councils, including one on UI. This one has been disappointing — no take up from members of Symbian Foundation.
    • but can you really design an interface by committee
  • SW: put up betavine.mobi on redesignme.com for suggestions, but appreciate that iPhone was driven by one man’s vision
  • JR: iPhone was executed well on all axes. Interestingly it was a vertically-oriented experience that didn’t have a parallel in the existing mobile landscape…

That sounds good, but what about reality? Isn’t there a £1000 fee to have a game listed on O2 Active?

  • JP: Direct access to real customers from self-registration on Litmus
    • I sit here as an operator and know that we’ve screwed things up previously
  • SW: Again, you can upload an app and see it on portal

What is customer experience?

  • JP: Selecting customers who have all you can eat data service and latest phones
    • No point selecting customers just for numbers’ sake

What about app discovery?

  • DW: Symbian won’t be running an App Store, will be running a warehouse that can be queried by lots of different app stores
  • SW: From portal: Home > Mobile Apps > Free Apps
  • JP: Don’t need to be a member to browse the catalogue, just to download

Do operators have a role in educating the market and if so, how? (Patrick from GetJar)

  • Terence Eden: Putting apps front an centre on Vodafone Live. Homepage Beta is encouraging people to upload web widgets.
  • JP: Not going to be placing TV ads — too broad. Instead targeting specific customer segments

How much money is actually going to developers?

  • JP: we paid our first developer last week!
  • Terence Eden: it’s all very well providing you with a connection to our customers, but what you really want is a connection to their wallet!
  • JP: really want to create incentives for customers — Mob4Hire doing that

How many customers are you seeing?

  • JP: email campaign to a selective audience: normal open rate is 10%, but 27% rate for Litmus email
    • typical market survey 5,000 customers, and already well in excess of that

How do you expect to protect your customers against viruses?

  • JP: moderators check submissions for viruses
  • SW: betavine the same

Clarify going from free to paid:

  • JP: within Litmus, you can sell at different price points. While in Litmus, you can control that
    • if you want to go outside Litmus (to 260 million Telefonica customers) you still have to talk to O2 commercial team

Jo Rabin’s wishlist

  • What I’d really like to see is a way of monetize mobile web services rather than apps

Announcements:

  • April’s event: how to finance your business during a credit crunch…
    • Not on a Monday and in the middle of April
  • May: mobile marketing/media

Tuesday, 10 February 2009

MomoLondon: Mobile Web & Widgets

This was a great Mobile Monday London. Short, snappy presentations; an exciting and relevant topic with a real buzz going on; announcements that you heard here first; and really useful networking afterwards.

Many thanks to Dan, Alex, Jo & Helen!

GSMA One API

Kevin Smith — Vodafone

Kevin works closely with Dan Applequist.

Aim to produce network enabler APIs across mobile operators — charging, location, messaging, user profile, connection profile. They’re a network-level complement to OMTP BONDI, using a RESTful and lightweight web services system.

Major European & Asian operators all involved.

Have a reference implementation (beta) available at http://oneapi.aepona.com. Go try it out!

OMTP BONDI

Nick Allott — OMTP

I went to the OMTP BONDI codefest back in January (sorry, I ran out of time to blog about it). So I didn’t take many notes on this presentation.

OMTP is an organisation of mobile operators working together (who would have thought!), with manufacturers and system providers joining in the fun. They’re working on defining a javascript API through which a web runtime environment can access and interact with device-specific information.

So there’s a location API (compatible with the W3C spec as it goes), access to calendar and contacts, etc. Crucially, they’re actually building a reference implementation in order to figure out how the API should work. That way they can change their spec as they discover that it doesn’t quite work in real situations. The spec so far looks good — more details and the downloadable SDK at http://bondi.omtp.org.

The only problem is that the reference implementation is built on Pocket Internet Explorer. Great access to device information, but really hard to make a good-looking, functional widget using web standards…

They’ve got one demo widget so far:

  • EMCC Gig Guide w/last.fm
    • location
    • cached feeds
    • syncing calendars

And here’s where to find the latest widgets: http://bondi.omtp.org/widget-gallery/

Ikivo Enrich

Samuel Sweet, VP Sales

T-Omnia widget solution launched November 2008 in Korea. Based on Samsung, Windows Mobile & Ikivo Enrich.

  • SVG display engine (provided by Ikivo)
  • Javascript w/device APIs & AJAX support
  • Aiming to support HTML display engine later
  • W3C widget spec

“Putting lipstick on a pig” for Windows Mobile!

SK Telecom have had 300% increase in shipments month on month since they’ve launched the new interface.

Importantly, the W3C Widget spec now allows SVG as an alternate rendering option for widgets. This means that the Ikivo widget engine can be W3C-compatible.

Announcement tonight: Ikivo will be supporting BONDI

Firefox Mobile

Christian Sejersen

Currently called Fennec but will be called Firefox when it gets released. It runs on the same codebase.

Some countries currently have more than 50% Firefox usage. Mozilla are starting to wonder what they should do when they get a monopoly…

Fennec for Windows Mobile coming out soon (April?); Symbian version started not so long ago.

Shows a demo of running Fennec on Nokia N810 (Maemo) — Fennec Alpha Walkthrough on Vimeo

Browser controls are off the edge of the page to the left and right. Just scroll that way to see them.

Firefox Addons can be made compatible with Fennec. 20 or 30 Addons are available after a month, with no promotion from Mozilla.

There is full API compatibility between mobile and desktop, so once they add location & camera access to mobile, these APIs are available from the desktop build too.

My thoughts

As per Bruce Lawson’s talk at the Betavine birthday party, the browser writers don’t see the difference between mobile and desktop. I agree with them that the APIs and browser can be very similar, but I still think there’s a difference in how you would design a service.

A mobile service needs to take one particular function and “polish the hell out of it” (as goes the recommendation for iPhone app design). A desktop web app still needs to be polished, but has more leeway in its design. There’s also the interaction styles: a mouse is not a finger is not a d-pad, and you need to make the interface appropriate for each of these styles. Sure some of this can be done with stylesheets, but when you’ve got less screen space you want to deprioritise certain content off the screen completely.

Panel session

Chaired by Dan Appelquist

  • Francois Daoust (W3C)
  • Graham Thomas (T-Mobile)
    • 8 years at Nokia on UI & UX
    • Also bringing games into market (Club Nokia)
    • Been at T-Mobile for 7 years, now Head of Multimedia
    • T-Mobile very active in mobile internet — have iPhone and G1
  • Christian Sejersen (Mozilla)
  • Kevin Smith (Vodafone)
  • Brad Sipes (CTO, Ikivo)
  • Nick Allott (OMTP)

T-Mobile widget roadmap — want to have develop once, run across all handsets. Enabling the long tail…

SVG helps to bridge the gap between different screen sizes — since scalable. But Brad sees it more to “make things fun”.

Q: How does BONDI fit in with other web runtime initiatives, like Adobe AIR or Mozilla Prism?

  • CS: Prism currently in labs (local look & feel for web-based content). But don’t really have anything to say as Mozilla…
  • NA: OMTP did due diligence and found 25 different ways of doing the same thing. Operators decided on a common standard and then broke it in 25 different ways…
  • NA: 3 parts to standardisation
    1. APIs
    2. Display engine
    3. Security (one of the big problems for Java on mobile — see signed apps…)

Q: Sounds like lots of separate bits. Do they fit together?

  • NA: Yes. At least all the people on this panel do… OMTP working with W3C. SVG long-established as rendering tech. OMTP location API is W3C compatible, and could use One API as implementation by getting location from http query.

Q: How do I make money out of writing a widget?

  • GT: Key benefit of widgets — start using internet more, like iPhone & G1.
  • KS: Earn £20K from Voda competition…?
  • FD: sell the widget like the iPhone app store.

One advantage of interoperable widgets is that you can buy your widget from anywhere. You can have your own payment mechanism

  • DA: Can we build interoperable application stores? Micropayments never really went anywhere with the web. Will we get there with widgets?
  • FD: There were some standards about micropayments 10-15 years ago, but they werer never finished… Maybe it’s time to dust them off and complete them.

Q: What benefits do I get from a widget that I don’t get from HTML5? (Hugo from Google)

  • FD: Widgets give you more context, but it’s just a wrapper.
  • CS: A lot of the widget issues have come up because of security issues. But in essence it’s the same thing that needs to be solved across mobile and desktop.
  • BS: Widgets give you local application feel that HTML5 isn’t aiming for initially. But HTML5 will converge in the longer term.
  • NA: Some of the widget stuff has been created as a sticking plaster to avoid 15-20 different solutions while HTML5 gets itself ready.
  • DA: BONDI allows HTML5 over https to take advantage of secured APIs.

Q: My question: widgets on the standby screen? What about battery life?

  • GT: want them on the idle screen, with notification etc. Want eBay etc event-based dynamic.
  • CS: Palm Pre will be fully web-based
  • BS: T-Omnia has widget framework attached to button on the side of the phone. Can have lightweight widget framework on low-level phones that aren’t capable of running full HTML5 browser.
  • NA: battery notification & event APIs planned for BONDI 1.1

Q: What sort of security model?

  • NA: BONDI — consumer delegates trust to an entity. Doesn’t work to prompt the user for everything. Instead they should be able to trust Norton, Google, T-Mobile, etc.
  • DA: using XML digital certificates within the widget

Q: If you had one widget, what would it be and how would you interact?

  • BS: weather. would beep at me if thunderstorm coming in.
  • KS: widget that tells me if my 8 year old daughter has turned off her light…
  • CS: can I have a browser instead?
  • FD: tells me which way I should vote on W3C…
  • GT: M25 road traffic info
  • NA: a widget that syncs my contacts
  • DA: location-based ski conditions. What’s important is that the bar is lowered. I want my mom to write widgets!

Q: Have Palm come up with a way to make webapps feel like native apps? (Hugo, Google)

  • CS: Mozilla often have discussions about how to make the browser look native. But people don’t care. They want Facebook to look like Facebook, not a T-Mobile application.

Q: What do operators feel about making widgets more available? (David Stone)

  • GH: Shortly launching service with idle screen. Demo on idle screen. Gallery also available.