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: App to App — design & surface local APIs

Ty Smith, Twitter (ex-Evernote) @tsmith

  • e.g. Samsung Note S Note app — locally synced with S Note grouping in built-in Evernote
  • tapping on a note in Evernote, opens it in S Note; then back button goes back to Evernote

intents

  • when sharing content to another activity, need to provide URI permission
  • when offering edit, you shouldn’t send your original file
    • the third party might crash, corrupt, etc
  • also can’t rely on setResult
  • user might hit back and think their changes will be saved
  • set last modified — when activity returns can check to see if changed — then offer user to save if they want

content providers

  • can provide temporary permissions to access provider in an intent
  • can pass through file handles

account manager

  • see an example in the open source github app
  • can request an authenticated token
  • makes accounts visible to user in a standard place
  • can do OAuth1 or 2
  • has method to refresh OAuth2 token automatically

sync adapter

  • does a lot of management for you automatically (network, battery)
  • again, can expose to third parties
  • can be scheduled & started with cloud messaging
  • requires content provider & account manager
  • but watch out for all the syncs coming at once
    • especially as networks often send out heartbeats on the hour every hour
    • devices wake up and think: I might as well sync now…
    • Evernote received DDoS load spikes…
  • so add a jitter to the sync period (random 1hr -> 1hr5min)
  • also add a “wait until” in the sync adapter — do your own checking

bound service

  • much stronger contract than others
  • other apps need to include your AIDL source code
  • example: plugins for DashClock

tips

  • testing is hard
    • use mock integrations
    • hard to debug integrations
  • add analytics to the lower level components so you know what’s going on
    • might want to consider rate limiting
  • use crash reporting (plug for crashlytics, now owned by twitter)

Droidcon 2013: Awesomeness Checklist

Taylor Ling, http://AndroidUIUX.com

  • attention to detail

animations

  • find balance between subtle & noticeable
  • should provide information
  • make sure to use standard animations
  • e.g. don’t change root screen exit — otherwise users don’t know what’s happened (why was that different?)

feedback

  • microinteractions: dan saffer
  • visual feedback — show highlighted touch area when pressed down (and ensure that the areas are big enough)
  • watch out for dialogs — and make sure there’s no ambiguous buttons
  • e.g. preventing screenshots — at least the user why you have done so
  • need to make the rules of the app visible
  • for side menus, it’s important to push the current view into the background when the menu appears
    • make it darker / blurred

help

  • quick tutorial: introduction of the value of the app
  • not how to use the app
  • have a help section (offline if possible)

Droidcon 2013: Responsive Design for Android

Juhani Lehtimäki, Smashing Android UI

Presentation available online

  • alternative to master/detail — grid view
    • works the same way with adapters
    • can adjust number of columns in values to adjust on screen size
    • use it as an easy way to extend the UI without a huge redesign
    • also useful for inspiring designers to take the design further
  • need to figure out where the relayout/break points are?
    • need to talk about what is the screen size for this layout to work
    • don’t need to talk about tablets or phones
  • juhani likes to do the large screen first
    • makes you think about whole picture if there would be enough space
  • android design in action from google
    • different layers of design:
    • information design — all you
    • interaction design — all holo/android
      • 100% chance users use other Android apps
      • tiny chance they use other platforms
      • optimise for user experience, not app consistency across platforms
    • visual design — mixed
  • use the default components!
    • but don’t components that are not needed for the app
  • action bar gives you lots of things for free
    • adjusts for screen space automatically
    • components work across lots of devices — tested!
    • also hold down item gives tooltip
  • best app for design on android right now: timely alarm clock
    • and follows all android guidelines!
  • can fade out the action bar when content scrolls up
  • use Android Asset Studio to show how 9 patch graphics work
    • designers can check online
  • use fragments from support package even when targetting 4+
  • decouple front end from backend
  • when fragment starts it queries for data by id
    • fragment should ask for it
    • manager should respond to bus with id when ready
    • fragment subscribes when it’s around and unsubscribes when it goes away
    • so fragment can then request data when it’s told that id is ready
  • http://jimulabs.com — lets you change layouts on the fly
  • make sure your design team uses android devices
    • at least for a couple of weeks!
  • use standard components and follow guidelines
    • won’t just cost in coding — think about all the testing!
  • think scalable from the first wireframe

Droidcon 2013: Conquering concurrency — bringing the reactive extensions to the Android platform

Matthias Käppler, Soundcloud @mttkay

Matt has written his own blog post to accompany his talk.

  • this talk is about functional reactive programming
  • but without talking about monads or other mathematical terms
  • example: a list view with data from the server
    • lots of concurrency
    • callbacks, broadcast receivers, notifications all over the place
  • wanted a single event handling model with natural concurrency
  • problem with imperative programming is shared state across whole app
  • doesn’t work with multiple threads and concurrency
  • programming style should reflect the event-based, network-dependent world that apps live in
  • AsyncTask has changed several times in its implementation
    • since ICS it uses a single-threaded executor
    • prone to leaking Context since you have to manage references yourself
    • also has no error handling built-in
    • can’t have long-running tasks that depend on each other
  • event buses (otto, green robot) also have downsides:
    • designed around shared global state
    • still no ability to chain tasks
    • no built-in error handling

RxJava

  • RxJava
    • actually a port of .net Rx extensions invented at Microsoft 5 years ago for Windows Phone
  • Observable<T> ::onNext(T) ::onCompleted ::onError(Throwable)
  • subscribeOn(scheduledThread) / observeOn(scheduledThread)
  • have lots of useful schedulers e.g. observer on main Android thread
  • also have map and mapMany to compose observables

how to use it

  • soundcloud built android extensions
  • http://gihub.com/soundcloud/rxjava
  • dumb fragments
  • service objects implement business objects
  • custom operators for paging content in list views etc
  • AndroidObservables.fromFragment
    • guarantees that it won’t leak but will maintain connection to a rotated activity
  • e.g.

    
    fetchModels(request) { 
    return fetchResponse(request).mapMany((response) -> {
        return mapResponse(request, response);
    })
    }
    

  • simple uniform event model

  • unit tests don’t need to run background threads
  • apply it in a focussed way
  • don’t replace callbacks — used in service layer for API requests
  • use proguard!

downsides

  • java 6 anonymous classes are very verbose
  • deep call stacks in debugging
  • slight increase in GC activity (but didn’t have any noticeable performance impact)
  • learning curve
    • but can use similar things for objective-c and server side (finagle & twitter futures) so can share knowledge

references

Droidcon 2013: Teaching Your Client Android Design; or, Ridding the World of iPhoneys

Kenton Price, Little Fluffy Toys http://www.littlefluffytoys.mobi

Presentation available online

Summly

  • Android has algorithm on client as Android screens come in different sizes
  • insisted that wanted back button in app
  • got google developer advocate support to say no
  • also added various improvements, several of which

BBC Weather

  • again received an iPhone design from the agency
  • identified areas that should be more Android-y
  • added additional Android features
    • NFC support — share locations over NFC
    • lock screen widget, daydream mode, dashclock integration
  • don’t need to shout about these integrations, as early adopters will do it for you
  • first release: got slated on play store as there was no landscape mode
    • tablet users will review you (no easy way to exclude…)
    • upset users are far more likely to leave reviews
    • designers hadn’t included landscape as it was not seen as a big use case
  • about > version code > tap 7 times > easter egg :-)
  • reviews: “BBC does it better on Android for once”
    • made design Android native
    • then added nice Android features
  • even the BBC were surprised about what could be done

Play Store beta management

  • assign a Google Plus community to different (alpha/beta/etc)
  • accept/reject membership
  • LFT used to use HockeyApp, but this is much better

how to

  • get the product manager on board
  • get graphic designers on board
  • compare to best-of-breed
  • get the ActionBar absolutely right

Q&A

  • some designers feel that they haven’t designed it if there’s still native components visible
    • a lots of designers got burned by the change from iOS 6 to 7
    • maybe they’ve learned their lesson now!
  • supporting older Android
    • support 240x320 as the smallest, but was difficult to work around lack of bucket design sizes (3+)
    • couldn’t test across everything
    • used ActionBarSherlock
    • lots of graceful degradation

Droidcon 2013: Ship Faster With Open Source from Square

Pierre-Yves Ricau, Square @piwai

Sample project: http://github.com/pyricau/shipfaster

  • look out for talk later at devoxx about how square got rid of fragments
  • debug panel in app, slides from right
    • lets you adjust the settings

dagger dependency injection

https://github.com/square/dagger

  • create object graph in application
  • injection happens in activity onCreate (prob. base class)
  • can switch between modules when create graph (e.g. using build settings)
  • resolves dependencies at compile time as it’s annotation based
    • don’t get errors at run time
    • doesn’t use reflection so faster
  • also generates dot files so can view dependency graph

otto

https://github.com/square/otto

  • (the bus driver in the Simpsons…)
  • broadcasts are not type safe and fragile
  • define event classes
  • the bus then calls the event methods for all subscribers
  • also provides an event logger
  • events are called synchronously

dagger & otto together

  • use a custom annotation with dagger bindings
  • can then add subscription/unsubscription easily

robolectric

http://robolectric.org/

  • main developer now at square…

retrofit REST client

https://github.com/square/retrofit

  • define an interface for API
  • methods take a callback method
  • callback will happen on UI thread
  • suggestion: use otto bus to fire events on return
  • create a RestAdapter and plug it in using dagger
  • has a log level to show you all headers
  • also works with protocol buffers
  • async by default, but can also do sync if you want to do multiple serialized calls from a background thread
  • can use underneath robospice

picasso

https://github.com/square/picasso

  • image loader from URLs
  • placeholder & error images
  • resize dimensions
  • don’t need to deal with http or caching at all!
  • has debug indicator corners on images:
    • green from memory
    • yellow from filesystem
    • red from network
  • can apply transforms to images
  • handles large images well
  • adjusts threads for downloading & encoding according to network status (wifi, 3G)
  • but may not respect cache expiry headers… (poss only when not used with OkHttp)

OkHttp

https://github.com/square/okhttp

  • Android has switched from Apache HttpClient to URLConnection
  • HttpClient no longer maintained in Android :-(
  • OkHttp now part of AOSP!
  • create a client and retrieve an HttpURLConnection
  • used by retrofit and picasso by default

more info available

Droidcon 2013: Gradle for Android

Hans Dockter, CEO Gradleware & Founder of Gradle @hansd

http://gradle.org

http://tools.android.com/tech-docs/new-build-system

buildTypes

  • automatically picks up different source & resource directories
  • can add code specific (e.g. setting constants)
  • can adjust settings across multiple tasks
  • automatically creates new tasks (e.g. packageTest, packageStaging)
  • allows different dependencies for different types

productFlavors

  • just like build types, but another axis
  • can alter package name
  • extends tasks further (e.g. installFreeTest, installPaidStaging)
  • configure different things than buildTypes (not proguard, etc)

flavorGroups

  • allows unlimited extension
  • e.g. ARM/intel
  • tasks allow you to run groups of things — e.g. test all debug builds

other features

  • gradle wrapper
    • allows specifying the version of gradle in source control
  • additional plugins
    • manymo — devices in the cloud
      • has gradle plugin to run tests against selections of their devices
  • has a rich model & deep API that allows additional scripts in build
    • e.g. real-time warning if a test runs for longer than 20ms
  • can combine with wrapper to have your own custom gradle installation
    • put scripts in .init of gradle installation to apply to all builds
  • Android Studio picking up gradle built types
    • so can switch and see effects in the visual designer
  • in future want to specify virtual devices in gradle
    • so IDE just executes gradle
    • IDE has less to do :-)

Droidcon 2013: Crafting Unique, Delightful Apps

Dan Lew @danlew42 & Chris Arvin @meinhyperspeed, Expedia
  • created a sample app to show ideas: http://goo.gl/XCyLWl
  • default holo vs customized UI
  • finding interesting ways to interact
  • holo is great for developers, but need to extend it to add character
  • designer should build on how android looks, feels & works
    • e.g. cards, vertically sliding content
  • build from user’s prior Android experience
    • i.e. don’t put brand consistency ahead of platform consistency

animations

  • android apps move: so should your mockups!
  • really important for communication as a designer
  • tools for designers: after effects, html/css + transforms, quartz composer (but steep learning curve)
  • generally requires a little bit of coding knowledge but no too much
  • animations gives lots of visual clues
    • e.g. expanding an item in a list to go to detail

working together

  • developer first reaction is generally: how am I going to do this?
  • takes a few minutes to start to get to grips — it will take more work…
  • first need to really understand what the designer is going for
  • interesting UI = a lot more development
  • work on the big stuff first — usually the animation
    • makes sure that the view hierarchy is right
    • need to think a few steps ahead
  • need to ensure that animation performs
    • use translations rather than layout changes
    • use GPU overlay to help with effects and performance
  • communicate:
    • what’s going to be a challenge?
    • what can we make easier?
    • what do we have to cut entirely?
    • come up with 5-10 different options
  • e.g. rounded corners done with 9 patch as quick fix

polishing

  • developers often get it close enough but not quite right
  • designer needs to communicate effectively
  • communicate in dps not pixels
  • adjust from what’s already in the app rather from mockups
  • use relative measurements not absolutes
  • annotate real screenshots
  • e.g. make fonts 2dp smaller here, add 4dp padding there
  • little play things:
    • e.g. expedia wait screen shows plane window with sky going past
    • rotating phone adjusts horizon; can close and open window

engaging UI

  • really relying on images can set the tone of your app
  • hotel detail done with parallax layers
    • encourages users to engage with the app
    • scrolling up and down enlarges areas

Q&A

  • when designing, how far do you go for different densities?
    • simple design, start with single device
    • complex design, might want to ensure it works in a couple of densities
    • key is landscape: make sure it’s not totally different — don’t want to lose the user
    • but don’t avoid doing cool things in portrait just ‘cos you can’t do it in landscape
  • working in dps
    • set the resolution in photoshop
    • or set the file to the full resolution
    • preview on device: skala preview or similar
  • development environment
    • gradle -> hockeyapp
    • still using eclipse — android studio not quite stable enough yet
  • pivotal labs experimenting with developer/designer pairing

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

Droidcon 2013: Authentication for Droids

Tim Messerschmidt, PayPal @SeraAndroid

Presentation available on slideshare

OAuth2 client libs

Identity

OpenID
  • developed 2005
  • 2012: discovered you can hijack it
  • considered dead :-(
BrowserID & Persona
  • from Mozilla
  • great idea, but nobody really uses it apart from them…
OpenID Connect
  • layer on top of OAuth2
  • http://openid.net/connect
  • still a draft but looks really good
  • has a whole section on session management (i.e. stop allowing that app)

Providers

  • 80-90% via Google, Facebook & Twitter
  • all have their own SDKs that handle the OAuth for you
  • PayPal added a new identity provider
    • provides verified information
  • needs to be best practice to show which information will be shared at each time
  • Blue Inc 2011: Consumer Perceptions of Online Registration and Social Sign-In
    • 45% admit to leaving a website instead of resetting their password or answering security questions
    • 66% think that social sign-in is desirable alternative

Q&A

  • on mobile, app can fake a web view and capture identity
    • this is why facebook goes via app
  • think about different social providers for different countries
    • e.g. baidu for China, yandex for Russia
  • see also Google Authenticator libraries for two factor auth

Droidcon 2013: CyanogenMod

Abhisek Devkota, Community Manager, Cyanogen Inc, @ciwrl

Shane Francis, device maintainer, CyanogenMod community, @BumbleDroid

  • nexus comes with fastboot but other devices need root etc.
  • building easy installer
    • google play app + PC app
  • pro version going to be locked down a bit more
    • root is off, but easily available — phone secure for mass market appeal
    • aiming for new releases every two weeks
  • CM Account — equivalent of Find my iPhone & iCloud
    • 4GB of storage per user, but shared across devices
  • working with moxie marlinspike (redphone, whisper systems) on secure end to end messaging
  • system level additions
    • latest conversations: across multiple apps (gmail, hangouts, etc)
    • allows recent contacts
    • added various framework additions, e.g. share video to Roku Airplay
  • would be first time Google has certified a community-based android spinoff
  • hope to have a bounty programme by mid-next year — especially for security issues
    • also been purchasing devices for maintainers

Droidcon 2013: Boundbox & Memento + Annotation Processing

Stéphane Nicolas, Octo Technology

Matthias Käppler, Soundcloud @mttkay

boundbox

Slides available online

https://github.com/stephanenicolas/boundbox

  • break encapsulation to ease testing (with Android in mind)
  • let’s you access things from Android SDK that you wouldn’t normally access
  • also lets you add fields (e.g. for stub Android jars that only have methods available)
  • can indicate how far up the hierarchy you want to expose
  • don’t need to change your code — just adjust your tests
  • access using reflection, but access checked at compile time
  • open source on github
  • compares with WhiteBox from PowerMock
  • intended for helping test UI layer
    • find views by field name
    • invoke methods & inner classes directly
    • faster and more direct than robotium & UIAutomator
    • as fast as espresso

memento

https://github.com/mttkay/memento

  • dealing with keeping state when the screen rotates
  • the activity gets destroyed and recreated and all your state is thrown away…
  • can use onRetainNonConfigurationInstance to pass objects through configuration changes
    • but what if you need to retain more than one object
    • deprecated in place of fragments — these keep their configuration using setRetainInstance
    • but watch out: setRetainInstance doesn’t work for child fragments and is super-prone for data leaks
  • but what if you have multiple fragments sharing the same state?
  • mark a package private field as @Retain
  • override the new onLaunch method (used to indicate first time initialisation of the class i.e. not after a config change)
  • then use Memento.retain(this)

annotation processing in general

  • use JavaWriter from squareup
  • look at how square does it for dagger dependency injection
  • Google has a library so you can assert over java source files
    • lets you compile with a processor and check the output
  • want to split up the annotation processor into two:
    • one for the client-side annotation itself and any required classes
    • one for the processor (don’t want it in your app)

Droidcon 2013: Remote Styling

Peter Nash

http://nativecss.com/

  • styling using CSS on top of Android views
  • live updating
  • free software — make their money from support

  • can pick up images — automatically cached & scaled to correct size

  • multiple background images on a view
  • can use in both Android & iOS
    • allows platform-specific overrides
  • allows designers to adjust UI
    • using language they understand
    • on multiple devices at once
    • without needing to make a new build
  • can use media queries (e.g. device-width)
  • dynamic styles based on settings in the app
  • can apply a promotion in the app for a day
  • android support:
    • API 10 (2.3) with additional setup
    • API 14 with single line setup
  • suggested as a value for key bits, not for the whole app
  • uses a single CSS for all activities

Droidcon 2013: Android Based Dongles & Wearable Accessories

Ken Blakeslee, Chairman WebMobility Ventures

  • scanadu, bracelets, knife with screen!
  • argus app on iOS - life monitor, incl. sleep
  • Ken has been wearing fitbit, pebble, fitbug, misfit shine for about 3 weeks to compare

smart dongles

  • digital signage, using mini pc dongles
    • e.g. kestronics mini pc
  • dongle only needs HDMI input in TV
  • e.g. imerz platform
    • control big screen from tablet by using smart dongle
    • selecting video using image comparison
    • adding tags to video content

smart glasses

  • insideAR conference by metaio
  • AR moving from PC centric to person centric (going mobile)
  • the technology is no longer the issue
  • vuzix M100: full android implementation in a glasses form
    • can port apps onto it
    • doesn’t have cellular but has wi-fi…
    • head tracking, gps, wqvga display
    • aiming at enterprise rather than consumer
    • focussing on big company lead partners first
    • available for smaller companies in November
  • not yet consumer devices
  • industrial, construction, medical, automotive, customer service
  • this use and google glass are conventional AR — we’re still waiting to see something consumer facing…