Showing posts with label wifi. Show all posts
Showing posts with label wifi. Show all posts

Friday, 23 March 2012

MomoLondon: Tablets Come of Age

The B&N NOOK Developer Workshop was followed by a panel session. I found the discussion interesting in confirming my experience of tablets being used in a completely different way to laptops or smart phones. The hardware format is ideal for families and children to share the device, and apps and services that make use of this multi-user perspective are faring well. The conversation was peppered with stats from both Marek and Hesham (of MEX and comScore)

  • Chair: Marek Pawlowski @marekpawlowski — Founder & Organiser, MEX
  • Stuart Dredge @stuartdredge — Freelance Journalist
  • Hesham Al-Jehani — Product Manager, Mobile, comScore
  • Ben Scott Robinson @bcsr — Creative Director, We Love Mobile
  • Claudia Romanini — Director, Developer Relations, Barnes & Noble

Why tablets? User stories

  • BSR: Ben’s mum (70+) was not comfortable with touch-screen phones — the interface was too small for her. An iPad was much more comfortable — she was much happier to play with it
  • CR: is a mum of a 7yo. This year she asked for a tablet for Xmas… As a parent CR was nervous, but has been happy since Nook is focussed on reading. Nook feels safe.
    • most time is shared with parent, but as getting older and able to read by herself, more time by herself
  • SD: collaborative shopping for presents — on the tablet on the sofa
    • every night we have half an hour of iPad time
    • Peppa Me Books: peppa pig but you can re-record all the voices
    • kids insist that someone joins in with them
  • HAJ: has an 18 mth old daughter - she finds it and sits on dad’s lap and says “entertain me!”
    • watches “In the night garden” videos
    • mother also engages much more with tablet
  • MP: 21% of US tablet use is lying horizontally in bed (considerably higher than smartphones)
    • more acceptable in a family context…

Is the original Kindle a tablet? e-Ink versus colour display?

  • Audience member reading more due to Kindle
  • CR: Nook Colour positioned as a reader’s tablet
    • Android transformed into a reading experience
    • consumers want an undisturbed, dedicated reading experience
    • reading long-form novels (don’t want to be bothered charging)
    • colour device allows people to read magazines
  • HAJ: 92% of tablet usage is over wifi
    • indicated sedentary (stationary) usage
    • 75% of Android access over 3G compared to 70% of iOS access on WiFi
    • perhaps indicates iOS users are data-hungry
    • peak around 12pm where PC traffic eclipses everything else
    • around the evening (9-11pm) tablet traffic takes over
    • weight of the iPad is an issue when lying down
    • people are complaining about neck & shoulder injuries from iPad use…
  • BSR: still stuck with finger on glass; thinner and lighter screens will be welcome
    • Morris Lessmore won an Oscar — being taken seriously but a long way to go

Content types: what’s working well?

  • CR: B&N customers are predominantly “moms” aged 25-45
    • B&N stores have Nook tables
    • in the US target audience doesn’t really buy apps
    • approaches device from a content perspective
    • children & education are key categories (and under-developed in Android world)
    • 1/3rd apps in B&N catalogue are children’s apps (other 2/3rds split between games and lifestyle)

Where’s the web on tablets?

Dan Appelquist @torgo

  • BSR: for news, no reason why you can’t create these experiences through HTML
  • MP: disney started to take their apps in a different direction from content — see AppMAtes
  • SD: HTML5 being used for content, possibly wrapped in native container for discovery & sales
  • CR: magazines

Why limit tablet to magazines? Extend to movies? Compete or complement current entertainment?

  • CR: entry point is digital books, but certainly buying other entertainment products
    • especially for Nook Tablet
    • think it complements & extends entertainment experience
    • entertainment content is huge for our customers
  • BSR: tablets are the saviour of TV ads — intent to purchase, etc
    • tablets used in conjunction with TV (see zeebox et al)
    • radio is still a growing medium, despite the introduction of the TV and the internet
  • MP: 30% of tablet usage in US is in front of TV (cf. 20% of smartphone usage)
    • people watch longer form videos on tablets than on their computers

When are we going to see some genuine competition for the iPad?

  • HAJ: market segment dominated by Apple
    • 40m iPads sold in 2011, 15m in last quarter
    • 40m installed based in US
    • took 7 years for smartphones to reach 40m in US market; iPads took 2 years…
    • if there was no iPad we wouldn’t be sitting here talking about tablets
    • iPad dominates revenue, number of units (over 70%), usage (90%)
    • Kindle Fire has already sold 10m units in US
    • Apple’s share of market will shrink in 2013/14
    • tablets will eclipse PCs in the next few years
    • areas where Apple is weak: more PC-style — USB, filesystem
  • CR: have sold millions of Nooks
    • many customers can’t afford an iPad
    • Nook Colour is $169 and prices go up, but still less than an iPad
  • Audience: Dell have abandoned Android but have said they can see a place for themselves with a Windows 8 tablet

What about pens instead of fingers?

David Wood @dw2

  • HAJ: welcome development that pens are making a comeback
    • writing your signature
  • SD: crayola did an app and sold a big fat crayon with it
    • felt like it was getting the wrong end of the stick…
    • other than signing things, what’s the killer app for a stylus
  • HAJ: scribbling notes?
  • SD: but I much prefer to type!
  • BSR: David Hockney using an iPad to paint (often using Brushes for iPad)
    • using styli (bits of wood at different sizes)
  • MP: actually capacitative touch screens are worse at figuring out handwriting than resistive screens
    • seeing new stylus development to fix this

post-PC?

  • SD: for some older people who never got used to PCs, tablets are a way in
  • CR: not there yet, but using tablet more and more for non-PC things
    • still using laptop for email (prefer keyboard)
  • MP: more comfortable taking a tablet into the kitchen
    • what kinds of things make things move from one device to another?
    • tends to be security and reliability concerns that shift people up in size & established reputation

keyboard + tablet form factor?

  • CR: on-screen keyboards not good enough
  • BSR: problem is carrying keyboard around
    • fold it up — back to a laptop!
  • HAJ: ASUS Tranformer is a great idea
  • SD: iMac is already a giant tablet with a wireless keyboard…
    • voice is coming soon…
  • MP: keyboard starts becoming important when people spend more time creating rather than consuming
    • tends to be a 90/10 split at the moment…

tablets tend to get shared a lot more than phones…

  • board games — multiple users at once
  • BSR: looking at things then passing it over and sharing it
  • SD: split screen iPad app — Pinterest for her, reddit for him!
  • CR: see a lot of Nooks shared in the family
    • reading can be a personal experience
    • sharing a reading tablet could be odd
    • but in a family it’s a common thing
  • SD: would be good to have a locked down mode
    • no in-app purchases,
  • HAJ: screen lock — avoiding kids pressing home button to exit the app
  • SD: Famigo Sandbox: android app that sets permitted app list & behaviour

what tablet would you be using in 3 years?

  • CR: focus on content rather than the device
    • would love to see content become transparent — shouldn’t matter if it’s a book or a magazine or an app
  • BSR: would like a piece of paper!
    • get away from the “finger on glass”
    • need 3D & haptics for a more tactile experience
  • HAJ: windows 8 tablet — dragging & dropping content to and from PC
    • Nokia tablet?
  • SD: don’t want skeuomorphs of what went before
    • no d-pads on the screen, or page turning

Upcoming Events

MomoLondon: Barnes & Noble NOOK Developer Workshop

This evening had a two-parter Mobile Monday London. First was the Barnes & Noble NOOK developer “workshop”, which was followed by a panel session on tablets.

I expected a hands-on workshop for the first part, but it was a presentation — and an odd one too. Barnes and Noble are the biggest bookstore chain in the US but they have no presence out of the States at all. Here was their developer relations team, inviting UK developers to register and release apps into their US-only store, for which they would be paid (and taxed?) in US dollars. Outside of the US, you cannot purchase apps at all… at least for the moment.

B&N are promising that they will expand their electronic sales worldwide “soon”, but they weren’t able to give details of when, or even in which countries. It was an interesting proposition (especially given the different demographic), but I suspect not one that will attract many European developers.

  • Barnes & Noble US: 60m customers per year
  • 1300+ stores in 50 states
  • Currently only US-based, but expanding electronic sales worldwide “soon”

NOOK hardware

All run Android, but only the Color and the Tablet have the B&N store and user-installable apps. All the readers have WiFi connectivity, though the first NOOK (no longer on sale) had a 3G option as well.

  • NOOK — Android 1.5; separate eInk & LCD displays
  • NOOK SimpleTouch — Android 2.2; eInk display (no apps)
  • NOOK Color — Android 2.1; LCD display (1024 X 600, 169ppi)
  • NOOK Tablet — Android 2.3; LCD display (1024 X 600, 169ppi)

B&N know a lot about customers…

  • NOOK target customer: Julie
  • 70-75% of customers are female
  • 38 yo, 3 kids
  • 1-2 books purchased per month
  • technology should be simple — it just has to work
  • not highly technical

Apps

  • apps are fastest-growing content area
  • includes Netflix, games, kids’ games
  • apps selling 4-10x over other store
  • curated app store (only 1000s of apps)
    • organically growing…
    • pleased with growth as discoverability & curation for market is important
  • carefully designed recommendation engine
  • customers will review!

Types of app

  • what would your mum want? what about your sister?
  • really responded to education, kids & learning
  • B&N is #1 in kids books
  • don’t have ad-supported apps…
  • 98% of apps are paid, though apps can have trial versions (see later)

App exposure

  • banners on website
  • content on digital screens in store
  • nook boutiques in stores
  • develop mechanisms to entice customers back into stores…
    • have a private “InStore” API
    • e.g. Angry Birds got access to Mighty Eagle for free
  • can read any book on the Nook in-store for free

nook developer

  • Need a US tax ID (EIN) to register…
  • to get an EIN:
  • SDK contains emulator & adb settings (essentially just skins)
    • uses a standard emulator so doesn’t have additional Nook APIs
    • similarly may have some Android features not supported by Nook…
    • only solution is to test on a real device (as always)
  • two SDK versions: NOOK Color & Nook Tablet
  • special access for T1 level developers: adb access to real devices
    • not available for customers
    • only provides 16 provisioning files (side load to max 16 devices)
  • widgets are not supported
  • microphone input supported for Tablet only
  • no camera, no location, …
  • additional features:
    • shop intent — jump to an app in the B&N market
    • single shop page can have both “buy” and “free trial” buttons
    • InStore API — uses store WiFi network to identify location
  • testing on device:
    • from apps, hold volume up key and tap on top-left to open “extras”
  • app submission
    • meta information must be approved before APK can be uploaded
  • developer account is free, but you must pass an interview process to get full (T1) access

sales & payment

  • Two clicks to purchase (credit card attached to account like iTunes)
  • don’t support in-app purchases at the moment
  • subscriptions for magazines but not within apps
  • credit card through BN account, but other payment mechanisms not allowed
  • no sale of physical goods
  • app sales come through to the developer as a cheque in dollars…
    • this is particularly dreadful for European developers, as banks make a charge on each payment
  • sales are only to the US at the moment
    • sale transaction happens in the US (with a US-based credit card)
    • can purchase other content internationally, but not apps (how can they tell?)
  • ebooks
    • can use pubIt to self-publish through B&N stores
    • for existing publishers, ebook & kids publishing are separate content groups in the US
  • devices are sold in bulk to educational establishment in the US
    • done via regional managers

follow up notes

  • apparently Amazon launched the Kindle in Europe with similar targeting at 30+ mothers — they flopped, as in Europe it was mainly bought by (non-early-adopter) businessmen

Thursday, 8 September 2011

iOSDev UK: Mobile Apps: Bringing Together Real and Online Worlds

Graeme Gibson, AppSherpas

  • iOS device as controller
    • an interface to home automation using DMX
  • existing products:
    • POSCard: point of sale mobile commerce at low cost
    • Print&Post: Royal Mail from an iPhone
  • use eye movements to control a device
  • mobile image discovery
    • scan an image instead of a QR code
    • extracts “DNA” of image
    • matches against database of monochrome images
    • 3-5s response on 3G (< 1s on Wi-Fi)
    • 100% accuracy for flat objects with a reasonable amount of light, that are large enough in the phot
    • 70-80% accuracy with less light and > 15% perspective
    • unlike QR codes, works for distant media (e.g. poster on the other side of the road)
    • also works for a trailer on the TV
  • indoor wifi location is already available with Cisco kit
    • no extra client kit
    • extra stuff needed in the AP

Thursday, 12 November 2009

Apple iPhone Tech Talk London 2009: Networking: From Sockets to GameKit

Paul Danbold danbold@apple.com — Evangelist

This was another really fast presentation with loads of detail. I look forward to grabbing the presentation from the iPhone dev site.

  • don’t want to use CFSocket or BSD Socket
    • don’t let you bring up wireless, or involve security
  • service discovery:
    • NSNetServices, CFNetServices, dns-sd, BSD Sockets
    • dns-sd is Bonjour or Zeroconf

URL Loading system

  • NSURLRequest, NSURLConnection & about 10 other classes (also mutable ones)
  • there’s sample code for validating URLs
  • recommend to use asynchronous API style:
    • use delegate mechanism — calls connection:didReceiveResponse:
  • also connection:didReceiveAuthenticationChallenge:
  • finally connectionDidFinishLoading:
  • default behaviours should work fine

Local area networking — service discovery

  • kick off NSNetServiceBrowser in asynchronous mode, w/delegation
  • browser searchForServicesOfType:inDomain:
    • e.g. type _http._tcp in domain local. — don’t go beyond any routers
    • can look for your own types too such as _foo._tcp
  • then get myServiceBrowser:didFindService:moreComing:
  • call NSNetworkService getInputStream:outputStream to resolve
    • this takes time (many seconds)
    • wait for the user to choose before resolving
    • and let the user decide when to cancel
    • resolveWithTimeout:0.0
  • must release input & output stream objects returned by NSNetService
    • bug in Apple’s code — doesn’t obey normal Cocoa behaviour

OutputStream & InputStream

  • NSStreamEventHasSpaceAvailable is probably the interesting one
  • though you want to handle the errors too…

advertising & publishing

  • advertise service with NSNetService initWithDomain:type:name:port
    • domain can be empty — means local
    • name can be blank too — will use device’s iTunes name
  • then call publish on service

stop when you’re done

  • browsing is fairly lightweight on the network, but you should stop anyway
  • the same goes for publishing, when you’ve got all your connected clients

register types & ports

game kit — peer to peer

  • 3.1 adds WiFi support as well as Bluetooth
  • GKSession initWithSessionID:displayName:sessionMode
    • session ID is your Bonjour service type — how you advertise yourself
    • again, can leave displayName as nil for iTunes name
    • sessionMode can be peer to peer (1 to 1) or client/server (multiple clients)
  • can’t physically go over 10-20 clients with Bluetooth
    • 3.1 and later is a lot better, but still no more than 3-4 clients
    • Bluetooth also has low bandwidth
  • set up delegate and set available to YES
  • check other peers with peersWithConnectionState:
    • can be available, already connected, in the process of getting connected
  • connectToPeer:withTimeout:
    • generally set timeout to zero to let user cancel if they want
  • actual connection made with session:didReceiveConnectionRequestFromPeer: and acceptConnectionFromPeer:error:
  • must monitor the network using session:peer:didChangeState:
    • other players can drop out, so you’d have to tear down your session
  • send data with sendDataToAllPeers:withDataMode:error: and sendDataToPeers:...
    • can choose unreliable (UDP) or reliable (TCP) data modes
    • as always TCP imposes a performance cost so use sparingly
  • receive data with setDataReceiveHandler:withContext: and receiveData:fromPeer:inSession:context:
  • always check for errors — buffers fill up on low bandwidth networks
    • check it by using a slow network
  • when you’re finished, tear down with disconnectFromAllPeers:
  • there’s a GKPeerPickerController for setting up Bluetooth peers
    • doesn’t work for client/server or WiFi
  • the only way to find out if Bluetooth is turned on is to use the GKPeerPickerController (it uses private APIs…)
  • all data sent & received is NSData-wrapped — design your packaging for network efficiency first and coding efficiency second

Voice chat

  • GKVoiceChatClient and ~Service
  • sets up socket interface
  • handles microphone, echo suppression, etc

network challenges

scoped routing and reachability

  • iphone 3.0 and later provides scoped routing
    • keeps both cellular and wifi up at the same time — so cellular connections keep going when you enter a wifi hotspot
    • but this puts a toll on the battery, so you should behave and check for networking changes
  • use SystemConfiguration APIs to monitor network state
    • Am I on the network and what kind of network is it?
    • cannot tell you that packets will arrive…
    • if network changes, finish what you’re doing, close connection and start a new one
  • use SCNetworkReachabilityRef and check for flags
    • but again use callback APIs since the calls take about 30 seconds
  • no point using this to pre-flight as things may change
    • just use to monitor
  • can set UIRequiresPersistentWiFi key
    • keeps WiFi live while your app is live
    • shows up UI elements automatically (like offering to turn off Airplane mode)
    • but if the device sleeps, you still lose your WiFi connection

battery use

  • listening is cheap, transmitting is expensive
  • 3GS sending leaves the antenna in high powered state for 5 seconds
    • so don’t send every 5 seconds — it will leave it in high power continuously
  • compress data, send large chunks
  • tear down connections when reachability changes

other tips

  • try to use the cache as much as possible
  • try to resume downloads rather than restart
  • use pipelining if poss.
    • ask for lots of things at once and be careful about return order
    • some web proxies and apache configs just break pipelining
  • also use multiple connections
  • but different network conditions and different servers require different tuning
  • test in areas where you know the network is flaky!
  • use a packet analyzer — see QA1176
  • try to isolate the user from network problems
    • often there’s a transient glitch — try again before alerting the user
  • see also Technote TN2152
  • look for developer forum postings by eskimo1 :-)

there’s some new sample code available:

  • SimpleNetworkStreams
  • SimpleURLConnection
  • SimpleFTPSample
  • Reachability — there’s a new version! The old version had bad code :-)
  • BonjourWeb
  • WiTap — peer to peer, but doesn’t use GameKit
  • GKTank
  • GKRocket — work in progress, with voice chat too