Showing posts with label hardware. Show all posts
Showing posts with label hardware. Show all posts

Sunday, 23 May 2021

micro:bit music making

The year 6 Fleetville Code Club has kept going during all through lockdown – we spent a lot of time in Minecraft, which worked pretty well for virtual sessions, since we were all sharing the same virtual space.

This term we did something a bit different: the students have been making and programming MINI•MU musical gloves. This is a kit designed by Helen Leigh based on the MiMU Glove – in turn invented by the musician Imogen Heap and her team. You can get a glimpse of what the full MiMU Gloves can do in the following video:



The MINI•MU Gloves are considerably simpler than the ones in the video – instead of picking up all finger and hand movements, they use the movement sensors on a BBC micro:bit to detect basic hand motions, like how much you tilt your hand front to back and side to side. It’s still plenty of input to use for a musical instrument though!

We received the glove kits thanks to the OpenUK Digital Kids Camp and Huawei – who sent out 3000 kits and provided some cool e-zines which we used as a basis for our sessions. The students had to first cut the pattern from felt and sew their glove together, then connect the micro:bit, sound board and battery pack – before programming the micro:bit to make their own sounds.

This was a harder project to get to work in an all-remote environment, and I think some of the students found it hard to stay engaged without being able to share their creations in real life. Even so, I was really impressed with what they managed to build. Here’s my favourite wishing one of the student’s grandparents a happy birthday!

Taking it further…

The MINI•MU gloves make it easy to make a sound as they have a built-in speaker. However, the micro:bit can only make very simple beeps by itself.

I spent a bit of time trying to get closer to the full MiMU glove experience by sending the movement of the glove to something else that could make some richer sounds.

Scratch

One option is to connect the micro:bit to Scratch using its bluetooth connection. The Scratch site has very clear instructions on how to get the micro:bit connected – you need to install the Scratch Link software on macOS or Windows, or else use the Scratch app for ChromeOS or Android tablets; then install a special program on the micro:bit itself; and finally add the micro:bit extensions to Scratch and identify your micro:bit by the name it displays.

There’s a few tutorial programs to get you started on the Scratch site, and there’s a range of examples on the microbit site as well – including a theremin to make spooky sci-fi noises.

I’ve made another example that lets you make noises as you move either the mouse or the micro:bit around. You can have a go below:



Bluetooth MIDI

Another way to get better sound from the MINI•MU glove is to connect the micro:bit to a tablet or computer using MIDI over Bluetooth. MIDI is a music communication system that’s even older than the micro:bit’s BBC precursor from 1981, the venerable BBC Micro. You can use MIDI to describe starting and stopping a particular note, how hard the note is played (its velocity) and all sorts of other variations – and the system is supported by most music making programs, including things like GarageBand.

To get MIDI from your micro:bit to your computer or tablet is a little complex but once it’s working, you can make all kinds of sounds! Here’s some tips and tricks to get you going:

Build a project with the Bluetooth MIDI extension

To send Bluetooth MIDI from your micro:bit, you’ll need to add the Bluetooth MIDI extension:

  1. In MakeCode, click Advanced at the bottom of the blocks
  2. Scroll down to the bottom to see Extensions
  3. Click that and type “midi” into the search bar
  4. Make sure you click on the bluetooth-midi extension, not the plain midi one
  5. You’ll now have some extra light blue blocks in the Midi category

Here’s a ready-made project you can start with – Pentatonic MIDI controller

Tilt your micro:bit left and right to choose a note, then press the A button to make the micro:bit send the current note. There’s a secret feature to use the light levels picked up from the LEDs – can you figure out how to use it?

Make your micro:bit easier to connect

micro:bit MakeCode projects have a secret option that makes it easier to connect the micro:bit to something over bluetooth. It would probably make things harder if you had lots of devices in a classroom, but if you’re just wanting to connect a single micro:bit to your computer or tablet then this will make your life much easier!

  1. Go to project settings by clicking on the gearwheel at the top right of the page
  2. Turn on “No Pairing Required: Anyone can connect via Bluetooth”
  3. Click Save
  4. Re-download your project to the micro:bit

The Pentatonic MIDI Controller project above already has this option set for you!

micro:bit to iPad

This is fairly simple – in GarageBand for the iPad, go to Settings (the gearwheel icon), click Advanced, click Bluetooth MIDI Devices, tap the micro:bit then tap the Connect switch on. If the micro:bit is marked as offline, click Edit and Forget the device.

Now you can use your micro:bit to play and record tunes in GarageBand – and choose any instrument you want!

micro:bit to Mac

macOS won’t connect to the micro:bit by itself and needs a little bit of prompting. Download and run the Bluetility app to see the micro:bit, then click the last service and the last characteristic (they should start “E95D93AF-” and “E95DB84C-” respectively). You should then see a Subscribe button to click in the Detail pane – and this should then make the micro:bit appear in your Bluetooth system preferences.

Now that the micro:bit is connected over Bluetooth, you need to tell the macOS MIDI system that it needs to listen to it. Open the Audio MIDI Setup app (it lives in /Applications/Utilities – or just use Spotlight Search). Make sure the MIDI Studio window is showing (if not, go to the Window menu and choose Show MIDI Studio). Then click the Bluetooth symbol in the MIDI Studio window’s toolbar, which should open the Bluetooth Configuration window and list your connected micro:bit. Click the Connect button next to your micro:bit and you’re finally ready to play!

Open GarageBand, create a new project, and add a Software Instrument. GarageBand should pick up the connected micro:bit immediately and play the notes that you send. You can then choose different sounds from the Library to make your micro:bit play whatever instruments you want.

micro:bit to Windows 10

I haven’t tried this, but there’s a very clear video by BEATNVISION that suggests using the MIDIberry app to receive the Bluetooth MIDI from your micro:bit and play sound.

Use the micro:bit connectors

As well as the movement sensors, the micro:bit also has edge connectors that you can use to attach all sorts of other technology. The MINI•MU glove uses these to connect the speaker, but if you’re going to use bluetooth to output the sound, then you can use the connectors to get more input.

Here’s the micro:bit wizard David Whale with his micro:bit guitar:



And if you really want to see how far you can go, how about using muscle movements to control your music? Here’s a video on how to pick up electrical changes from your muscles using a micro:bit:



Keep making music!

Thursday, 28 November 2013

Handheld Conference 2013: port80 fringe event

Last year’s Handheld Conference was a great event, with several of the sessions winning awards as the best talks of the year.

This year, it’s got bigger and even comes with a fringe event the night before, in collaboration with Port80 events.

I’ll be blogging the main event sessions later, but here’s my notes from the Handheld mini/port80 event.

The ethics of making software

Graham Lee @secboffin

  • XML is like violence: if it doesn’t get you what you want, you’re not using enough of it
  • EULA: “we make no warranty that on this software” => this sh*t doesn’t work — and we’re not going to tell you until after you’ve bought it
  • we’re in an industry that wants to be grown-up — we get to choose the moral direction as well as the technical direction
  • we do have responsibility — raising awareness is the first step

Modifying Treasure Island

Alyson Fielding @alysonf

  • what happens if you put technology into a physical book (without a screen)?
  • making an enchanted object
  • lilypad arduino works well with books: it uses needle & conductive thread rather than wire & solder so it’s gentler on the book
  • “the library of lost books”
    • each rescued book is being sent to a different artist to be given a new lease of life
  • wanted to hide the technology so it feels like magic
  • triggering audio in a gesture controlled physical book
  • what happens if you get a book talking to a phone
    • hide arduino in the spine
    • zigbee to talk to phone (via Redpark cable)
    • battery to power it (mainly zigbee…)
    • accelerometer to detect position
  • initial story: book speaks what position it’s in
    • can also tweet…
  • further stories: recognising more complex 3D gestures, e.g. a hug
  • connected with a story engine
    • telling a story based on user interaction
    • crucially: also respond when the user does something different

Why don’t things just work any more?

Barry Scott @bazscott

  • fixing things:
    • easy bug reporting — value the people who report bugs
    • prioritise fixes
  • crippled behaviour:
    • flash, linkjacking, doorslams
    • watch user behaviour — and listen to them
  • bastards:
    • sample newspaper website: “the only way I can monetise the site is by getting people to download the app, so I don’t care about showing the content”…
    • shortsighted, brand will wither, people won’t come back
    • advertising cigarettes & gambling to kids (or any kind of advertising to 3 year olds…)
  • times higher education survey on link rot
    • 99% of web pages change in a year
    • 70% of links from 12 years of Harvard Legal are broken

Nodecopter

Andrew Nesbitt @teabass

  • invented by Felix Geisendörfer in 2012
  • Parrot AR Drone 2.0
  • runs busybox linux
  • node.js module: npm install ar-drone
  • watch out for going out of range
    • the drone will just continue going…
  • andrew created a node module to pick up serial input from xbox controller — used to control AR drone
  • then picked up front-facing camera and displayed on a web page
  • running both scripts at the same time allows you a first-person control of the drone
  • make it dance to dubstep:
    • using dance.js to pick up drops in an mp3 from the HTML5 audio API
  • face detection from front-facing video
    • using OpenCV on video from the video in the browser
  • lots of other examples on nodecopter.com
  • substack contributes a lot of stuff
    • including virus-copter
    • scans wifi for other drones — ssh’s to them
  • if you attach a phone you can theoretically control the drone from anywhere in the world
    • but you come under the same laws as cruise missiles…
  • voxel-drone is a simulated drone inside voxel, a minecraft clone in javascript & webgl
    • but it doesn’t have momentum…
    • voxel-drone stops instantly
    • the real drone takes about 2 metres to stop from full speed
  • why?
    • teaching programming via engaging javascript
    • did a coderdojo for 12-15 year old kids
    • chasing parents around, ballet moves
    • making controllers from tin foil and makeymakeys
  • upcoming events: probably one every month in the UK in the new year

Tuesday, 29 October 2013

Droidcon 2013

I went to Droidcon UK last week and my brain is still catching up… So many new ideas (and good ones too!).

I’ve put together several posts from Droidcon 2013 — this one gathers all the short notes that I took that didn’t deserve a full post of their own. They’re still worth checking out though!

A big thank you to the organisers and the contributors who made it all possible, especially Thibaut Rouffineau for whom this is his last Droidcon as organiser.

Cupboard SQLite access

https://bitbucket.org/qbusict/cupboard/wiki/GettingStarted

  • easier design than ORMlite
  • works better with Android framework
  • doesn’t require a custom activity

testfairy

http://www.testfairy.com/

  • send your APK to them, they instrument it and return it to you
  • or you can ask them to sign it themselves and manage the testers for you
  • results include one frame per second video of app UI, synced to logs and any exceptions

would you code blindfolded?

Gonçalo Silva, Novoda @gnorsilva

  • Pretotype — most cost effective prototype
    • e.g. using wooden blocks wrapped with paper to test mobile device ideas — use in real world situations — as used by Jeff Hawkins to test the PalmPilot
  • Light Table IDE — animate your code with live test results
  • estimations have a very limited lifetime
    • valid up to a month, maybe two
    • more of a gut feeling rather than a specific time
    • just to help you and guide you, doesn’t tell you when you’ll be complete
    • don’t adjust your estimates — look at the performance in retrospectives
    • make estimates based on difficulty, not time
    • anything bigger than a 4 should be broken down into smaller pieces

android script

http://androidscript.org/

productising a modern Android Device

Craig Arnush, Vertu

Vertu sell hand-made Android phones for £7,000+…

  • made a changes to Android to allow secret alert + new vertu key
    • secret alert makes the phone pretend to be dead (including the home button)
    • modified phone window manager
  • added own analytics (couldn’t rely on Google etc, as wanted security)
  • have an internal Vertu API
    • if interested, get in touch
  • tools: use OpenGrok

Tesco hudl

Novoda were showing off the hudl — a cheap Android tablet sold by Tesco.

Apparently Novoda were involved at a fairly deep level in the project, which explains why it’s actually pretty good!

demo camp

Each presenter had a couple of minutes to show off their app or service — the entries were judges by a panel of venture capitalists offering investment.

amateur football management

  • http://football-tracker.com
  • manage leagues & players

5-tiles keyboard

http://etaoisystems.com/

Download on Google Play

  • normal users reaching 40wpm — almost twice as a normal keyboard
  • speed freaks reaching 100wpm
  • works on small devices — ported to I’m Watch smartwatch: immediately useable

apiomat

http://www.apiomat.com/

  • easy to create APIs
  • graphical UI to create basic database w/relations
  • also does push notifications
  • auto-generates code for iOS, Android, PHP, Python, etc

scoopt

http://scoopt.com/

  • fashion facebook
  • retailer with fashion leads

indoo.rs

http://indoo.rs/

  • got 2-5m just using wi-fi in business design centre (on Android)
  • iOS can’t use wi-fi positioning as Apple don’t provide wi-fi signal strength
  • 6 patents
  • support crowd-sourced mapping
  • €100/mth for access to SDK

apponsor

http://apponsor.com/

  • in-app sponsorship by signing up to newsletter
  • automatically fetches user name and (verified) email address from device
  • requires read context, read local account + internet permissions

pogo from Activ8rlives

http://www.activ8rlives.com/

  • import healthcare data from devices that require USB
  • patients no longer have PCs to upload their data and don’t have the latest Android or iPhone devices to pick up Bluetooth LE or
  • instead have created a hardware box that converts USB into audio jack so can be picked up by an app on even legacy devices
  • indiegogo campaign

genymotion

http://www.genymotion.com/

  • native Android emulation for app testing & presentation
  • integrates with laptop camera & fake location services
  • introducing pro version next month

CapturaTalk

http://www.capturatalk.com/

  • assistive services for students, esp. disabled & dyslexic
    • also useful for those with English as a second language
  • OCR text into an editable format
  • can get word definitions, including easily confusable words
  • being sold to schools

NOBU BYOD

  • remote android workspace for any device
  • provides easily securable data for enterprise
  • uses multi-user android servers
  • have iOS client + HTML5 client
  • can be run inside a data centre

NOBU won the demo camp top prize.

Droidcon 2013: Phones in Space

Chris Bridges, Surrey Space Centre, @DrChrisBridges

STRaND-1 Nanosatellite

space is old tech!

  • catch-22 with electronics in space: if it hasn’t flown, we can’t fly it
  • most electronics in space are 10-20 years old
  • they are larger: 90nm features
  • 30nm of modern fabs may have trouble in space — we think they will be knocked out by single event effects
  • largest particle coming out of the sun is an ion proton at just under 90nm
  • but foundries that make 90nm chips are soon going to be decomissioned
  • so need to start testing effects on smaller chips soon!
  • also, newer components, especially mobile are smaller and much more powerful
  • if we’re worried about reliability, could duct tape three phones together and get more power than the entire ISS
  • also useful for medical purposes — investigate how tech behaves in radiation situations

hardening phones

  • components also get shaken to 30-40G when rocket goes up
  • used 3D printed brackets (chins) to hold pieces together
  • control satellite attitude with magnetic coils
  • had to harden the phone & connections
    • extract out the button connections & stick the trackball in place
    • need to remove any electrolytic components — they pop in space
    • also some plastics degrade in space
  • controlled from Digi-Wi9C: low power linux single board computer
  • put programs into solid state flash memory (PIC-24) that is not affected by space radiation
  • also needed to check out timings: satellite works at about 8-40MHz; Digi-Wi9C at 150MHz
  • android apps had to be instrumented so that they could be monitored and controlled: added heartbeat monitors to check if apps were still alive
  • wanted to have a software lab in space
  • had to check how the hardware behaved without convection
    • saw that battery voltage reporting flipped a sign when temperature went below zero
  • destroyed about 12 phones in radiation… cobalt-60 ionising radiation
  • tested satellite for equivalent of 6 years of radiation
  • have a camera that looks at the screen
    • useful if usb connection fails
    • can connect over wi-fi
    • or else fall back to taking a picture of the screen

your apps in space

  • had an app competition for software on facebook
  • can you scream in space?
    • does the vibration from the speaker reach the microphone?
    • don’t know yet…
  • antenna communicates at 9Kb/s back to Earth
  • went up into low earth orbit in 25th February
  • SSC groundstation
  • amateur satellite trackers around the world really important and integrated — 10 people around the world
    • gmail > gdocs > SQL databases > plotting
    • can get a groundstation in a single USB stick
    • just need a bit of wire for the antenna
  • when it’s first released, the satellite tumbles uncontrolled — need to use coils to place it in controlled orbit
  • strand-1 status on web site
  • testing charging the phone — have done it 9 times now
  • will soon be testing apps…
  • code available on s-android on google code
  • satellites normally take years to build: STRaND-1 built in 3-4 months in lunch breaks and evenings
  • NASA taking it forward
  • UniS doing STRaND-2
    • want to have two satellites docking & undocking in space

Tuesday, 5 March 2013

NSConference 5: Day Two

Thriving in an App Store World

Michael Jurewitz @jury

Jury used to be an Apple Developer Evangelist. He is now Director of Product Development at Black Pixel.

work well with apple

  • need to be looking forward - focusing on future (tech/features/hardware)
  • stay on the radar of apple contacts
  • Apple looks at devrel as “animal husbandry” :-)
    • Apple wants to sell devices & make customers happy
    • so apps should feed into that
  • Apple has laser focus on future and simplicity
    • expecting & embracing change
    • they force themselves to keep going forward
    • won’t look at apps that don’t fit in to that
    • must stay current
  • no secret agenda, but often hard choices
  • can get featured by taking advantage of new OS features
    • but it’s a time limited offer…
  • example:
    • Eventbrite getting featured on Passbook feature page increased new user sign up by 664%…
    • got in right at the beginning – only 15 apps on the feature page
  • “if users aren’t upgrading their OS, they probably aren’t buying your software either” - Wil Shipley
  • Gatekeeper vs App Store: e.g. Kaleidoscope
    • if you buy Kaleidoscope on Mac App Store then you can also download direct
    • app will notice that it’s already been purchased
    • will check receipt and unlock automatically
    • useful for sending customers beta builds when testing fixes
  • file bugs
    • also for requesting to open APIs that are currently private
  • localisation:
    • Apple sales in China increased 400% last year
    • Germany has a strong software market, even though it’s limited in size
  • accessibility creates loyalty

properly value your work

  • Jury did some research over the past weeks…
  • top paid apps have much lower mean & median prices than top grossing apps
    • mean: paid $12.46 vs grossing $49.13
    • median: paid $6.99 vs grossing $29.99
  • two separate markets going on here
  • top grossing has:
    • 200% more Finance apps in top grossing at the moment
      • because it’s tax season at the moment in the US
    • Utilities drop by 25%
    • 22% more Games
    • 50% more Graphics
    • Social drops in half (and would be nothing without Tweetbot)
    • No Weather apps
    • 3-5 Business apps vs none in Top Paid
  • four free apps in Top Grossing
    • in-app purchases
    • freemium can work
    • talk to Kevin Hoctor who did in-app purchases in Moneywell Express
  • cheap apps get downloads, but higher priced apps pay the bills
    • which would you rather have…?
economics 101:
  • price elasticity of demand
  • how does adjusting the price of a product affect the number that you sell?
  • elastic (e.g. social apps):
    • there’s a common price that people expect
    • if you increase the price beyond that, then demand massively decreases
  • inelastic (e.g. drugs… or photoshop…):
    • people will pay pretty much whatever you ask
    • keep increasing the price and maximise revenue
  • demand curves can move due to marketing campaigns…
  • if you double the price, and you lose less than 50% of your customers, you’ve just made money
    • and fewer users means less support costs
    • also increases perceived value
  • don’t be a commodity — charge what your software is worth

price your app intelligently

  • market segment:
    • lots of basic research
    • category prices
    • start research before starting developing
  • research competitors
    • do you have a big enough differentiator?
  • make a guess
  • then try an experiment
  • example: Kaleidoscope 2
    • developer tool segment: avg price $30.11
    • other apps $70-100
    • app is useful but not crucial
    • lots of alternatives
    • guessed $34.99 intro and $69.99 ongoing
    • got various peak sales that affected average
      • great for recouping costs, but not for calculating ongoing revenue
    • evaluation:
      • elasticity = % change price / % change in quantity
      • with a couple of price changes, you can work out the ratio
      • then apply to price changes to predict quantities and therefore revenue
      • (real world demand curves aren’t linear, so elasticities aren’t actually constant)

Talking to Hardware

Alasdair Allan, Babilim Light Industries @aallan

  • Apple’s External Accessory Framework is missing most of the useful stuff
    • rest is protected by Made for iPhone program
    • which is protected by massive ranks of lawyers
    • because Apple want to protect their platform

crazy stuff

  • jailbreaking
    • average time between a jailbreak release and Apple shutting the hole is about 7 days…
    • can’t release an app to the store
  • MIDI
  • simulate capacitance touch using a piece of foil stuck to the screen
  • PeerTalk: using the USB sync cable
    • uses TCP sockets
    • same protocol as iTunes and Xcode

less crazy stuff

  • wifi is possible, but getting setting up is a pain
    • and there’s lots of support issues for different network situations…
  • acoustic coupling via the headphone jack
    • Square does this for a card reader
    • can even use the audio to provide 7.4mW of power (see Hijack board)
  • Redpark cable
    • dock connector to RS-232
    • comes with an SDK
    • but won’t let you put apps in the store — have to approve the app and the hardware
      • you can approach Redpark and ask them to request approval
      • a lot less expensive than going through MFi program
  • XBee & Zigbee (802.15.4)
    • mesh networking for low data rates
    • dock connector to XBee adapter soon available from redpark
  • bluetooth 4 (low energy)
    • can run for months with bluetooth active powered by a coin cell
    • introduced with the iPhone 4S
    • lots of boards available with Android & iOS SDKs
    • e.g. red bear labs
    • use CoreBluetooth plus board’s SDK
    • easy integration:
      • Alasdair did a live demo in just a few minutes
      • connected to arduino over Bluetooth 4 from iPhone and toggled an LED

TouchDB

Matias Piipari @ms2

https://github.com/couchbase/couchbase-lite-ios

  • CouchDB has been renamed as CouchBase Lite
  • TouchDB is document db with CouchDB-like API
    • but uses SQLite under the hood
  • sync & share with CouchDB (or TouchDB)
  • concurrency controlled like git
    • when you’re saving you have to be up to date first
  • lightweight
    • < 500Kb in app binary
    • 0.1s startup
  • Document <=> Model, with versions
    • can also contain attachments
  • use Views to define queries by property
  • once you’ve configured the replication it will keep going
    • don’t need to worry about network availability
    • do need to think about conflicts
    • do need to think about concurrency with data changes (get notifications on changes)
  • can create push and pull separately and to/from different destinations
    • e.g. combine pull from bundled with pull from remote
  • sync handles https with basic auth or OAuth
  • can combine db from iCloud/Dropbox with TouchDB

Step away from the screen

Nathan Error, Empirical Development @neror

nathan@empiricaldevelopment.com

  • your body is a tool too: improve your coding by improving your body’s effectiveness
    • exercise, diet & sleep…
  • scientometrics
    • measuring rate of change in science
    • rate of output increases by 7% each year
    • output doubles every 10-15 years
    • so whatever we think now will probably change several times over the next 10-15 years
  • maybe start looking at meat more as a side dish rather than a main
  • recent research has linked high intensity aerobic exercise to increased brain performance
  • missing one hour of sleep for a week is equivalent of a blood alcohol level of 0.2%

Subscription pricing

Manton Reece @manton on ADN

manton@manton.org

  • in 1999 working on a Mac app that cost $199
    • actually considered pretty cheap for the time
  • benefits of subscriptions
    • happy customers:
      • unhappy customers can cancel at any time
    • automatic paid upgrades
      • everyone is on the latest version
      • paying for the service
  • to justify subscription, app and service need to be one
  • examples:
    • adobe: switching to creative cloud monthly subscription
    • microsoft: office is now $9.99/month (or $99.99/year)
    • billings pro:
      • free for 1 invoice/month
      • 5 invoices/month = $10
  • focus on the consistent predictable part of the graph rather than the spikes
    • even if you don’t make more sales, the revenue is consistent
  • billing periods
    • payment percentages affect revenues: charging less often means less percentages to payment provider
    • Manton found that 57% of customers preferred yearly billing
  • hosting costs
    • use Amazon reserved instances if you’re committing to a year (saves money)
  • Stripe is leaps and bounds better than paypal…
    • but only available in US and Canada
    • beta coming to the UK this week!
  • Apple in-app purchase types:
    • non-renewing subscriptions: cancel is the default — will probably lose a lot of people
    • auto-renewable subscriptions: better, but more restrictions on review — including privacy policy & description
      • Apple are very cautious about letting non-magazine apps do this

The “Simple And Intuitive” Fallacy

Why we need standards for complex UX, too

Joerg Schweider @cooliopenguin

iPeng

  • iPhones & iPads are not just accessory devices — they are becoming the main device in a lot of cases
  • apps need to be feature complete
  • if you simplify and cut out features then a lot of users will be left out in the cold
  • what makes a more intuitive UI?
    • can’t always find out by getting people to compare UIs
    • they will rate familiar schemes higher

Being Naive

Rob Rhyne @capttaco http://martiancraft.com/

  • “just build something so I can show it to the client”
  • users don’t care about engineering
  • iterate and test
  • at martiancraft, within three weeks of a new project you’re going to see something
    • it won’t be finished, but you can play with it
  • brent simmons: anatomy of a feature
    • the feature is the smallest part
    • it’s all the edge cases and polish that take the time
  • the naive implementation
    • demonstrates the feature
    • most obvious solution
    • takes the least amount of time to develop
  • example: histogram of live video
    • can use Accelerate framework to get histogram data from an image buffer
    • what about drawing the graph?
      • 3rd party charting lib: not obvious; little work; may demo but might not animate
      • OpenGL vertex buffer: not obvious; lots of work; will demo
      • CoreAnimation: obvious (when experienced!); little work; will demo
    • used CAShapeLayer
      • had used previously in Minds of Modern Mathematics
      • 14,000 pixel wide scroll view on an original iPad
      • can set up style once and draw separately
      • path was animatable property
  • http://giveabrief.com
    • codeless prototypes

Working on Sketch

Pieter Omvlee, Bohemian Coding

  • Sketch: vector art app
  • have to persuade users to try us rather than Adobe
  • don’t want a public feature list with voting
    • sets unrealistic expectations
    • there will always be business goals or technical issues that mean that highly requested features remain unfixed at the top
  • listen to your customers, but only to a certain degree
  • started giving away beta versions of app
    • got lots of testers & feedback
    • keep the fans happy
    • they’re very vocal and will do marketing on your behalf
  • don’t leave refactoring until the next big update
    • you’ll want to focus on new visible features to justify the upgrade price
    • customers don’t care about engineering
  • be practical with your time
    • don’t spend time on rewriting git history
    • focus on pricing, attracting the right customers, etc
  • put in crash reporting early
  • videos are excellent promotion & support
    • they take time and lots of takes
  • try and keep in contact with your customers
    • Apple gives you no way of getting in touch with App Store customers
    • but you could ask for details within the app
    • if no newsletter, then Change Logs are your only communication medium
    • “bug fixes” is a waste of an opportunity
  • try and contact bad reviewers

Introducing CoreValues

Scott Morrison (Chief Cook & Bottle Washer), Indev Software @smorr

smorr@indev.ca

  • Indie developer, less Independent, more Individual
  • but not just single person
  • instead individuality & personal
    • personal investment, principles, impact, payoff & risk
  • personal & professional roles are mixed
  • indie company has the heart of the indie developer
  • values are important and define you
    • but sometimes not thought through
    • can lead to inefficient decisions
  • Edward de Bono: if you want an out of the box solution, get out of the box first
    • PO statement — an unconventional (silly) idea used to generate ideas
  • introducing CoreValues: an objective-c framework for describing and defining personal and professional values…
  • interfaces:
    • personal ≠ private
    • professional ≠ public
  • (there was much more in this vein: thought-provoking metaphors, but I didn’t write them down)

Slightly Unsupported — Finder Code Injection

Steve Flack, Bromium UK

  • wanted to add icon badges & contextual menus
    • not based on file type
    • animated
  • used class-dump, x86 disassembler plus lots of trial & error
  • inject code with mach_inject
  • Finder has four methods to swizzle for icon badging
    • one for each view (desktop is fourth)
    • talk gave code specifics for each
  • only two methods to swizzle for contextual menus
    • desktop & grid view share
    • again, talk gave specifics

The Rise and Fall of a Mobile Startup

Emily Toop @fluffyemily

emily@emilytoop.com

  • Tiny Ears 2011-2012
    • app to teach reading to 4-6 year-old children using speech recognition
  • Emily and her partner Ian both got startups accepted to Start-Up Chile
  • had to get speech recognition
    • Google Voice API was best accuracy by far
    • PocketSphinx with OpenEars was only option with no network
    • but all were bad for children
  • can improve recognition with a better model
    • 20 hours to customise a model
    • no existing models for children
    • 20,000 hours to create a new model!
  • Startup Weekend
    • pitch your product
    • then recruit audience to work on it for 48hrs
    • make an MVP
    • really useful
  • talk about your product
    • to everyone
    • until you bore everyone
    • even yourself…
  • used AVAnimator to play movies with alpha channels
  • …but speech recognition model would cost $100,000 and take 18 months
  • then animators didn’t want to continue without speech recognition
  • make your partnerships sound!
  • don’t go alone
    • guides recommend that you have a hacker and a hustler
  • mothballed Tiny Ears
  • joined another startup to learn how startups work
  • getting more involved in education
    • joined Code Club
    • applying to be a reading assistant
  • approached by dreamthinkspeak to help with their “large-scale, site-responsive theatre production inspired by Leonardo Da Vinci, The Book of Revelations and the world of Mechatronics”
    • go see them while they’re still in London (until March 30th at Somerset House)
  • nothing you learn is ever wasted

Sunday, 28 October 2012

Droidcon London 2012, Day Two

The second day of Droidcon London — and they kept us going from 9am until 7pm with a full programme! As with the previous day, the keynotes were focussed on how Android is being used in non-phone devices — extending the rule of configurable software over fixed hardware.

I’d really like to add the slides to these notes — the Flurry presentation especially has loads of useful information that I didn’t catch. If any of the authors read this — please get in touch via twitter or leave a comment and I’ll add a link!

Future of Android - Vendscreen

Paresh Patel

http://www.vendscreen.com/

  • touchscreen device that fits as an extension on any vending machine
  • accepts credit cards via swipe + tap to pay
    • chip & pin coming later
  • network connected — makes the machine smarter
  • can cluster machines
    • e.g. lots of machines in a hotel
    • customers can get inventory from their phone
    • energy management — can turn off some
  • example: sold small artwork pieces in a vending machine
    • people weren’t surprised
    • prices didn’t have to be low
    • people paid up to $99 by swiping their card
  • right now running Android 2.3.4
  • minor modifications:
    • got rid of desktop
    • added a recovery screen

Future of Android - Parrot Asteroid

Frederic Albinet

http://www.parrot.com/uk/products/hands-free-car-kits/parrot-asteroid

  • parrot asteroid Android car radio
  • classic & mini using Android 1.5(!!?!)
  • tablet and smart devices using Android 2.3 (still old…)
  • does voice recognition search for contacts and music
    • music searches across connected device and also the internet radio stations and other sources
  • parrot app market
    • will be live from november
    • can browse from PC or from device
  • looking to extend to dynamic network between vehicles
    • though this would depend on other cars having devices with the same protocol…

ADzero phone launch

http://www.justadzero.com/

  • world’s first bamboo smartphone
  • quad core device
  • full HD screen
  • bamboo feels really good to hold
  • flash innovation: circle around the camera — works much better for macro

building songkick

Akshay Dashrath and Jamie McDonald, Novoda

  • took 2 devs 3 months to build initial version
  • agile process, two week iterations
  • tools used:
    • pivotal tracker
    • github
    • maven
  • third party libs:
    • ActionBarSherlock
    • ViewPagerIndicator
    • Novoda ImageLoader & Novocation
    • NovodaTime — dealing with Joda Time problems

user experience design

  • spent a lot of time finding pain points in initial install process using paper prototypes
  • found out that putting buttons in the action bar were not found by users
    • mocked up on an actual device to see how it felt
  • can set a custom notification light colour (works well with branding!)
  • styled login web view to look like rest of app
  • first launch experience:
    • had a scan screen with an OpenGL animation to keep the user entertained while the initial artist information is found
  • used external apps that expose content providers
    • google music — got artist names using a projection and flexjson to push it to songkick server
    • last.fm

caching & location

  • used novoda’s novocation location library
  • used Jackson mixture of streaming & tree model to avoid memory issues
  • data from web calls loaded into database, then database loaded into views with cursor loaders
  • detachable result receiver — google IO 2011 app
    • lets you deal with rotating views and re-attaching the new activity to the old cursor loader
  • all visited content cached using Reto Meier’s Big Cookie approach (see Making Good Apps Great)
    • “Just Added” concerts sync in the background
  • if offline, then shows a transparent banner at the bottom of the page
    • send out a sticky broadcast if an online query fails
    • broadcast cleared if the app gets a good response
  • Big Cookie caching can build up too much data
    • data removed on a daily basis by removing old data — e.g. past concerts, etc

testing

  • manual QA for most stuff
  • automated tests were more for stress testing
  • also did observational user testing (one-way mirror room)
  • put UI options in a debug menu so could easily do A/B testing
  • build machine runs instrumentation tests on however many devices are plugged into it
  • used Eclipse Memory Analysis Tool to check memory allocation
    • used to fix large back stack activity
    • enabled StrictMode to deal with issues with Google Analytics & Joda Time
    • Joda Time used the UI thread for DST settings (can be fixed — see Stack Overflow)
  • got featured in Play
    • installs went 400 / day -> 20,000 / day!

soundcloud audio in Android

Jan Berkel and Jon Schmidt, SoundCloud

playback

  • Java MediaPlayer talks to C layer MediaPlayerService
    • check out the C source code to see what’s going on
  • underneath this uses PacketVideo OpenCore up to 2.2, then Google Stagefright
    • shouldn’t have to care about underlying implementation but if you’re doing something complicated you do…
    • OpenCore
      • mature, stable but limited
      • seekTo doesn’t work in streams
    • Stagefright (default from 2.2 and beyond)
      • fixes seeking
      • but not available in all devices…
  • when launched shortly after 2.3 released decided to support 2.1+ so that could cover 75-80% of devices
  • to find out which mediaplayer, tried to read /system/build.prop
  • however, some phones had both frameworks!
    • one for streaming and one for encoding…
    • playing locally would behave differently than streaming from a server
  • so to actually find out, connect the MediaPlayer to a local socket and read the user agent on the other end…
  • built a StreamProxy local server
    • could cache and fetch chunks from CDN
    • MediaPlayer then talks to proxy
    • inspired by NPR android app
    • but still no control over buffering (may want to alter it depending on network conditions)
    • different versions of Android behave differently
      • ICS has a huge buffer so takes ages before it starts playing…
  • bundled Android HttpClient is broken (it’s an old snapshot, not a proper release)
    • have to catch NPE from execute!
    • recommended to use standard Java URLConnection
    • bundled HttpClient has now been deprecated

recording

  • live encoding options on earlier Android versions — just AMR AB
    • only good for voice
    • narrow range, low quality — sounds like a phone call
  • instead recorded in PCM and used 3rd party lib to encode it before uploading
  • chose ogg vorbis
    • good for licenses
    • java port is slow (and incomplete)
    • would take 4x length of audio to encode!!
  • from 2.3.3 Android introduced AAC encoding
  • new requirements involved getting at the actual audio data — simple editing, resuming record
  • had to write own native layer for codecs and audio processing (Java too slow)
    • used C-based Vorbis Encoder & Decoder with a thin wrapper
    • also added a native amplitude analyzer
  • tried to avoid sending data back and forth too often
  • but… now had to deal with CPU flavours
    • armv5 on older devices has no floating point support
    • have to build native pieces for various architectures (armv7, mips, x86)
    • older devices fall back to old-style encode later style
  • Jelly Bean has new media encoding APIs
    • will be useful in the future…
  • some sony devices have a patched media framework that behaves differently…

bug detection

  • robolectric
  • bugsense crash reports
  • get a load of devices and get people to use them

The fly-in app menu for designer and developer

Cyril Mottier @cyrilmottier

  • watch out for activity back stack
    • recommended to only use fly-in menu at root level
    • but still want the back button to exit the app without going via the fly-in menu
  • libraries (all on github)
    • android-undergarment
    • slidingmenu
    • android-menudrawer
  • don’t slide the actionbar
    • you’d need a custom actionbar…
  • or create your own: need a custom view group & view
  • see “making of prixing”
  • make the slid out activity inactive
    • click on it to make it visible again
  • may need to think about right-to-left languages having right-sliding menus

Who needs thumbs? Android Instrumentation and Reverse Engineering

David Teitelbaum http://blog.apkudo.com/

I only caught the very end of this, but it looked like it could be a really useful talk — worth chasing down the slides

Android and Arduino

Fei Manheche, Robobo

  • 3 steps:
    1. build basic circuit & test it from PC (use serial monitor via direct connection or Bluetooth)
    2. build basic arduino software to set it up to be controlled from Android
    3. build Android app to talk to Arduino
  • bluetooth modules available for £6-10
  • use amarino library to simplify bluetooth between android and arduino
    • can also use amarino app to test basic bluetooth connection
  • don’t send too much data to the arduino at once (unless you write buffering serial code on the arduino…)

Memory Analyzer: avoiding memory leaks

Felipe Ferraz, CESAR

  • each process on Android has its own Dalvik VM
  • the Zygote process is forked for each app
    • it already has common libraries mapped into it, so they’re shared as read-only between all apps
  • use adb to make a heap dump (kill -10 <pid>)
    • or use Eclipse…
  • useful to create multiple heap snapshots to tell story of memory leak
  • http://www.eclipse.org/mat/
  • make sure to null Callables inside Images

Using Ubuntu to develop cloud-connected android apps

Victor Palau, Ubuntu

  • juju: https://juju.ubuntu.com/
  • orchestrates groups of servers deployed to cloud systems
  • can deploy a local instance or to Amazon ECS (or any other OpenStack compatible service)
  • local deployment uses zookeeper to set up containers on a single machine

Mobile Analytics - taking your Android app to the next level

Simon Podd, Director of Sales, Flurry EMEA

  • according to EMF there are 2Bn “affluent adults” in the world
  • 17% of time spent in Android apps is in Europe
  • time spent in apps is increasing month by month (94mins/day in Dec 2011)
  • social networking category is growing fast (equal to games in Q1 2012)
  • Flurry tracking 220K apps across 660m devices
  • iPad makes up 88% of top 3 tablet sessions
  • of the top 20 Android devices by worldwide sessions (May 2012), the top 3 are:
    1. Galaxy SII
    2. Galaxy Ace
    3. Moto Defy
  • worldwide 2011 app revenue (iOS & Android):
    • 52% in-app purchases
    • 24% mobile advertising
    • 25% app sales
  • advertising revenue (from Flurry’s ad slots):
    • iOS $6-10 eCPM
    • Android $20-30 eCPM

gaming category stats

  • ages 13-34 spend most time in apps
    • 18-24 & 25-34 about even
    • fairly even gender split
  • more money spent by 25-34yo men (29%)
  • average transaction sizes fairly constant across ages, and higher than you might think:
    • M: $15.60
    • F: $11.90
  • customers download on average 50-85 apps during a device lifetime
  • but they only use 5-10 apps a day
  • there’s an app discovery issue on the device

flurry tracking

  • can use ranges for event parameters…

Applying lean principles to enterprise mobile development

Dave Slocombe @daveslocombe — Head of Mobile Channel, lastminute.com

  • product scorecards
    • 5 or 6 key goals for the year
    • see Marty Cagan, SVG
  • keep time to release short
    • don’t miss the opportunity to innovate
  • avoid big bang releases
  • essentials: co-location & cross-functional

generating and managing ideas

  • ideas should come from all sides of the business
  • need to have a massive bucket of ideas
  • make them visible so you can choose amongst them
    • great for managing HiPPos (highest paid persons)
    • they can see that their idea is on the board
  • doesn’t mean that you have to work on them!
  • prioritise ideas
    • use the product scorecard

selecting ideas for development

  • UX team does customer insights
    • qualitative: what problems are we solving? is there a market?
    • quantitative: talking to data analysts
    • looking for strong signals
  • product owner reviews customer insights
  • UX team create designs in iterations, increasing fidelity as they go
    • want to be able to ditch bad ideas before spending too much time on them
    • try guerilla testing: take it to someone in a coffee shop and ask them what they think
    • get marketing and devs involved as well
  • get UX ideas out without using developer time
    • use axure or similar
  • have an internal site of proposed designs
    • available to exec team
  • play back early stage designs to other teams, like finance and supply
    • surface problems and feedback early
  • if ideas are generated, they can go back onto the ideas board (don’t deal with them right now)

development processes

  • retrospectives
    • done every two weeks
    • if you leave it longer, the issues get bigger and harder to solve
    • more frequent = smaller, easier to fix issues
    • e.g. found that they needed a “design issues” wall
      • edge cases found missing by the designer, not captured
      • introduced “creative coding” — designer + developer pairing, making a first pass of the UI
      • brings designers into what’s possible on mobile
      • helps devs understand value of brand & aims of user experience
  • Dave was originally a skeptic of pairing, but converted:
    • sharing knowledge
    • repeatability, consistency
    • drives out “hero developer” mentality

testing & releasing

  • “release process is the metronome that drives progress”
  • continuous deployment
    • every check-in should be deployable
    • repeatable consistent environments
    • currently 12mins to deploy to production
  • devices are tiered for testing:
    1. automated tests, max experience, manual test
    2. automated tests, optimum, limited manual
    3. observe trending, monthly testing, graceful fallback
  • just pushed iOS 3 down a level
  • looking at webdriver to generate PDFs for visual check

tying it together

  • showcase every two weeks
    • include other departments
    • no roadmap items, just value added in the last two weeks
  • focus on what your customers say, not what the industry says is cool
    • apps vs web — choose from your own analytics
    • e.g. for travel, 3x more likely to book on web
  • stats:
    • seen 10% month on month growth in Android, compared to iOS
  • ensure product always gives tech team 20% tech debt time

Replacing the Android emulator

Daniel Fages, Genymobile

http://androvm.org/

  • built on top of android-x86
  • has an emulated WiredSSID wi-fi connection
  • can use OpenGL 2.0 using hardware
    • works really well - can emulate Angry Birds
  • just added injecting sensors from attached Android device (accelerometer, etc)
  • currently working on management tool and other features
  • looking for feedback on next features
    • network
  • also can install VM on other people’s machines without having to worry about SDK
  • will be working to integrate with Jenkins
    • could be great for creating a snapshot when something goes wrong
  • not working:
    • multitouch
    • NFC, Bluetooth
    • GSM pieces: SMS & voice

Developing accessible apps for Android

Gary Readfern-Grey, RNIB

  • many people are relying on apps as the only way to do crucial things in life
  • talkback comes with Jelly Bean
  • problem:
    • icon-based buttons don’t have proper audio labels (“icon 39”, “icon 19”) so can’t find what is on the screen
    • watch out for “jump back button button
  • accessibility came in on Donut 1.6
    • relied on physical keyboard and trackball
    • touching the screen behaved as normal and gave no feedback
  • Talkback and Eyes-free-keyboard added more recently
    • eyes-free added in Gingerbread
  • ICS brought in explore-by-touch
  • Jelly Bean brings in gestures:
    • moving focus
    • back, home, recent apps
    • notification shade
  • WebView is harder
    • Jelly Bean & ICS have an additional “allow web accessibility” checkbox

testing your app

  • download talkback from google play
    • Jelly Bean has it installed (at least on Nexus 7)
    • settings / accessibility / turn on Talkback
  • check that views are focusable and have content descriptions
  • custom views need hover events

documentation

  • Google I/O 2012 making android apps accessible on youtube
  • developer.android.com: making applications accessible
  • android 4.1 accessibility APIs

top things to do:

  • add content descriptions to your widget
    • can do in XML layout using android:contentDescription attribute
    • or use setContentDescription
    • latest linter should check for this
  • make sure you can get to all elements of the app through a keyboard
    • will also help for Google TV
  • don’t depend on colour alone…
    • e.g. “correct the field that’s coloured red”
  • test it! try out Talkback
  • RNIB Innovation can help you
    • RNIB offer paid consultancy
    • if they’re doing something that RNIB really want and aren’t in a position to pay, then they could offer free help too
    • innovation@rnib.org.uk

Monday, 17 September 2012

Over The Air 2012

Only just noticed (in September) that I hadn’t posted my notes from Over The Air 2012 in June!

I had a fantastic time — and so did my dad and my son! We had three generations at the same tech conference :-)

I need to write a separate blog post about the LEGO hacks that people put together during and following my LEGO Mindstorms workshop, but in the meantime, here's my notes from the other sessions:

Hacking Science and Space

Ariel Waldman @arielwaldman

invisibility

  • dark energy pushing us apart
  • dark matter keeping us together…
  • invisible superpowers:
    • belt that vibrates when you face north
    • synaesthesia for those that don’t have it…
    • syneseizure — feel vision through a gimp mask!
    • particle windchime
    • what would particle collisions sound like?
    • being used as an augmentation interface in collision labs

cyborgs

  • your phone has loads of sensors, available all the time
  • quake canary
    • monitor on your phone

interstellar

  • humans are really good at pattern recognition
    • galaxy zoo
    • planet hunters
    • the work you do actually gets credited to you!
    • grean peas galaxies
    • discovered as galaxy zoo lets you drill down into data behind images
  • NASA makes stuff available, but not necessarily accessible
    • spacelog.org
    • takes PDFs of transcripts and makes them come to life

science hack day

  • weekend hack day
    • isodrag: a typeface where all the letters have the same wind drag
    • DNAckery: cocktail of extracted Strawberry DNA…
    • arm alarm: won’t shut off until your pulse is angry
    • near death lamp: lights up when an asteroid gets close to the Earth

Open Web Device

Francisco Jordan @mepartoconmigo, O2 Labs

Slides available

  • still lots more people with feature phones than smart phones
    • 4 billion feature phones will be sold between 2011 & 2015
  • mainly because they can’t afford a smart phone
  • especially in Latin America, where Telefonica is trying to grow
  • want to provide a phone for $60-70!
  • Open Web Device - based on Boot 2 Gecko
  • plan to launch in Brazil at beginning of next year
  • Also partnering with Qualcomm to provide the chipset
  • still haven’t decided the OEM(s) who will be manufacturing
  • all open source: http://wiki.mozilla.org/B2G
  • can build your own ROM based on Android 3.0 or 4.0 kernel/driver backends
  • can also build B2G for desktop
  • Gaia is Mozilla’s front-end for B2G (also open source)
  • don’t have to use Gaia — B2G doesn’t even have to look like a phone
  • the keyboard itself is an application
    • you can replace the keyboard with another web app!
  • most new APIs in B2G are also finding their way into Firefox for desktop
    • just download Firefox nightly to see what’s available
  • apps are just webapps in a directory with a manifest.webapp JSON file
    • can use appcache to store stuff locally as well
  • using Sumon as a demo webapp
    • runs about 3x faster on B2G than on iOS!
  • Marketplace: http://marketplace.mozilla.org
    • open for developers, but not yet for users
  • or install from web: navigator.mozApps.install(manifesturl);
    • install an app from directly a web page

Anyone Can Code an Embedded Controller

Nicholas Herriot @nicholasherriot

Example device: connected printer — text questions to it and it will print them out!

  • Vodafone trying to bring connectivity to embedded controllers
  • Arduino and other microcontrollers exploding since 2005
  • mbed (http://mbed.org/) similar to Arduino, but started by ARM
    • 96MHz
    • ARM Cortex M3
    • can run USB host and I2C slave
  • online compiler & tool chain - works cross platform
  • easy to install & run code:
    • runs as a USB mass storage device
    • just copy code across and press restart button
  • can export from mbed online IDE to other toolchains:
    • CodeRed: eclipse & gcc based
    • others
  • wanted to set up a platform for microcontrollers
  • online IDE has a built-in SVN repository per project
  • built-in libraries has lots of common stuff
  • can extend with downloadable libraries (search available through online IDE)
  • Vodafone has an M2M network - GDSB
    • used by Kindle, TomTom
    • SIMs don’t expire, don’t need to top up
  • trying to open GDSB to developers…

You do know it is a phone, don’t you? (Adding voice to your mobile apps)

Tim Panton @Steely_Glint, Tropo

Tropo API

  • SaaS for server-side phone handling
    • Voice (PSTN, VoIP/SIP, Skype, iNum)
    • SMS
    • Other services via HTTP or XMPP
    • Multi-lingual (with multiple voices in each language)
  • SaaS provided by Voxeo
  • Web API is JSON/javascript based
  • also scripting APIs for Python, Ruby, etc
  • example uses:
    • making calls without sharing phone numbers (e.g. speaking to taxi driver)
  • scripting vs web api
    • scripting runs on Tropo servers and has no access to external data
    • web api runs on your servers - can access your data
  • also a REST API to start outgoing calls and other control & management services

Phono

  • jQuery plugin to make phone calls from the browser
  • open source client
  • picks up microphone from computer
  • can use server-side voice recognition…
  • can also pick up messaging from the tropo service
  • requires a back-end (but same API for all)
    • Flash
    • Java applet - takes much longer to load
    • Panda (Flash with echo cancellation)
    • WebRTC - native in Chrome Canary
    • PhoneGap/Cordova plugin
    • iPad/iPhone actually works better than most laptops
    • pot luck on Android < 3.2
    • much better on Android >= 3.2
    • early version of native iOS (available in github/phono/phonosdk)
  • can run both Tropo & Phono from a car battery
    • has been done at Burning Man

Development costs

  • in the US can make free calls
  • outside the US, need to ping Tropo for permission
  • they will often let you run a demo server with small number of minutes for no money

Mobile Websites Can Have Nice Fonts Too…

Laura Kalbag @laurakalbag, front-end designer

slides available here

  • typefaces can evoke emotional responses
    • not just in typographers!
  • iOS app: Fonts by AppEngines — shows you all the fonts available on your device
  • embed them on mobile using @font-face in CSS, just like on desktop browsers
    • works on opera mobile, android mobile >4
    • doesn’t work on IE Mobile, Opera Mini
  • sources of fonts:
    • fontsquirrel - all free
    • fontspring - one off license per domain
    • myfonts - one off license per domain
  • but can have a high impact on performance
    • and can flicker when load, etc
  • tips for better performance:
  • hosted fonts:
    • google web fonts - loads of free ones, but not so good quality
    • typekit, fonts.com, fontdeck are better - but pay subscription costs
    • but loaded using javascript… can be laggy
  • watch out for missing fonts on mobile (e.g. no Arial on Android)
  • and fonts can render differently on different devices

choosing a good font

  • heineman: designed for people with dyslexia
  • want to make something that’s really inviting to read, but then just sit back and actually read it easily
  • what makes a typeface relevant?
    • context of content & features of typeface
  • old style or humanist serif: based on early printing presses
  • transitional serif: high contrast, sharp
  • modern serif: modern classic, magazines, high class sophistication
  • egyptian/slab serif: marketing, shouting, very bold
  • humanist sans: clean & easy to read
  • transitional sans: utilitarian, clinical, swiss
  • geometric sans: clean, slick, structural, slightly childlike
  • script: lots of variety, generally not good for body text, better for logos or headers
  • novelty or themed: lack any subtlety, cheesy, decoration on a poster
  • watch out for free fonts — they’ll most likely be overused
  • choose the weight carefully:
    • too heavy is hard to read
    • too light may disappear on smaller screens

laura’s taste

  • easy to read
  • attention to detail
  • subtle
  • well-balanced, consistent & uniform
    • nothing jumps out too much

ePatient 101

Mark A M Kramer @mamk

  • a lot of healthcare is based on communication between the doctor and the patient
  • often doctor communication is not very effective
    • slow responses to email
    • constrained mobile devices due to privacy & security issues
  • big issues just scheduling appointments
  • quantified self — capturing and logging health information:
    • especially body monitoring
    • apps that take photos of food, confirm the food, then estimate the calories
  • Dan Appelquist: most mHealth is focused on the hospital & medical enterprise

Tuesday, 10 May 2011

Google I/O 2011

Some brief notes on the Google I/O 2011 keynote this afternoon… It started kind of dull with Android stats that were pretty good but still seemed to be catching up on Apple, then gradually got better and better.

Google really does want Android to be “one OS everywhere” (I guess running “one web” webapps…) and the UI is improving. I look forward to the media content coming across to countries other than the USA, though the lack of any mention of music or movie labels leaves me in some doubt as to when this will happen. The presentations neatly glossed over the time involved in syncing music and movies between devices and the online service — even on a home wired network the data would take a long time to upload. And there was no mention of syncing between devices on the same LAN like Dropbox either.

The big news for me, however, was the accessories and android@home. By making it so cheap to add hardware integration with Android devices, there could be a real explosion of new products and the home automation market could finally break out of eye-wateringly expensive or home hacker territory. I’m really looking forward to more detail on android@home, but there’s nothing released yet…

android updates

  • widgets can now be stretched
    • scrollable -> resizeable (just change XML)
  • android can now be a USB host
    • keyboards, mice, game controllers
  • google tv market open for devs this summer
    • will be based on android 3.1
  • icecreamsandwich coming Q4
    • advanced UI
    • APIs to help scale UI
    • action bar able to reconfigure itself for available space

media

  • movies and books now available through android market
    • can watch on web or on android device (e.g. android TV…)
    • seems to be US only (like Music)
  • google music
    • cache music recently played
    • can “pin” music just like on movies to make available offline
    • downloads in background
    • 20,000 songs can be added to library
    • free in beta…
    • new music app works with android 2.2 and above

hardware

  • new devices will receive latest updates for 18 months after first launch
    • (if the hardware allows)
    • guaranteed to come through reasonably quickly
  • android open accessory
    • plug in an accessory
    • phone gets taken to app (or to android market to download it)
    • supports USB now and bluetooth in future
    • hardware design toolkit based on Arduino
  • android @ home
    • android @ home framework
    • new low cost connectivity protocol for non-wifi devices
    • why not existing??
    • partnering with several industry players
    • LED lights & switches
    • tungsten demo with NFC chips in CDs cannot work unless Google get record label deals…

new devices

  • Samsung 10.1 tab: 720p, 565g, 10.1”
    • lighter than iPad 2, at least as powerful…
    • just waiting for better interface

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