WhereWhat
Find amenities with your wearable
Concept description
“WhereWhat - Find amenities retrieved from the
OpenStreetMap database with your wearable -
fast and easy navigation at your fingertip”
OpenStreetMap / Overpass-Turbo query
[out:json]
;
node
(around:600,52.516667,13.383333)
["amenity"="post_box"];
out qt 13;
Overpass QL
OpenStreetMap / Overpass-Turbo response
{
"version": 0.6,
"generator": "Overpass API",
"osm3s": { /* ... */ },
"elements": [
{
"type": "node",
"id": 2194034324,
"lat": 52.5463884,
"lon": 13.3523559,
"tags": {
"addr:city": "Berlin",
"addr:country": "DE",
"addr:housenumber": "12",
"addr:postcode": "13353",
"addr:street": "Ostenderstraße",
"amenity": "post_box",
"collection_times": "Mo-Fr 16:15; Sa 12:00",
"lastcheck": "2015-02-16",
"operator": "Deutsche Post",
"postal_code": "13353",
"ref": "Ostenderstraße 12, 13353 Berlin"
}
},
{ /* ... */ }
]
}
OpenStreetMap Java library
https://github.com/johnjohndoe/Overpass
featuring:
- Retrofit
- Moshi
- OkHttp
- JUnit
- AssertJ
WhereWhat / Screenshots
Build-in feature types
- WLAN
- Library
- Cafe
- Cinema
- Postbox
- Bicycle parking
- Trash can
- Bus
- Bank
Extensibility
public List<FeatureType> get() {
return new ArrayList<FeatureType>() {
{
add(new FeatureType(new HashMap<String, String>() {{
put("internet_access", "wlan");
}}, R.drawable.ic_action_wifi, R.string.wifi));
add(new FeatureType("post_box", R.drawable.ic_action_mail, R.string.mailbox));
// Add more feature types here
// ...
}
}
What are you interested in?
Libraries used
apt 'com.google.dagger:dagger-compiler:2.0.2 '
compile 'com.google.dagger:dagger:2.0.2 '
compile 'com.android.support:support-annotations:23.1.1 '
compile 'com.google.android.support:wearable:1.3.0 '
compile 'com.google.android.gms:play-services-location:8.3.0 '
compile 'com.google.android.gms:play-services-maps:8.3.0 '
compile 'com.google.android.gms:play-services-wearable:8.3.0 '
compile 'com.github.johnjohndoe:Overpass:2ee1603696f5346abe05d8ec3cb2261bfa4ac423 '
compile 'com.jakewharton:butterknife:7.0.1 '
compile 'com.squareup.okhttp:okhttp:2.6.0 '
compile 'com.squareup.okhttp:logging-interceptor:2.6.0 '
compile 'com.squareup.moshi:moshi:1.0.0 '
compile 'org.ligi:AXT:0.35 '
provided 'org.glassfish:javax.annotation:10.0-b28 '
testCompile ' junit:junit:4.12 '
testCompile ' com.squareup.assertj:assertj-android:1.1.1 '
testCompile ' com.android.support:support-annotations:23.1.1 '
Lessons learned
- WiFi vs. Bluetooth
- Watch + handheld vs. Android Virtual Device
- Wearable Data Layer API
- Wear emulator goes offline
- Wear emulator API level 23 crashes when working with ADB
Live demo
What could possibly go wrong ...
WhereWhat
Sources: https://github.com/ligi/WhereWhat
by Ligi & Tobi
November 26-28, 2015

WhereWhat

  • 1.
  • 2.
    Concept description “WhereWhat -Find amenities retrieved from the OpenStreetMap database with your wearable - fast and easy navigation at your fingertip”
  • 3.
    OpenStreetMap / Overpass-Turboquery [out:json] ; node (around:600,52.516667,13.383333) ["amenity"="post_box"]; out qt 13; Overpass QL
  • 4.
    OpenStreetMap / Overpass-Turboresponse { "version": 0.6, "generator": "Overpass API", "osm3s": { /* ... */ }, "elements": [ { "type": "node", "id": 2194034324, "lat": 52.5463884, "lon": 13.3523559, "tags": { "addr:city": "Berlin", "addr:country": "DE", "addr:housenumber": "12", "addr:postcode": "13353", "addr:street": "Ostenderstraße", "amenity": "post_box", "collection_times": "Mo-Fr 16:15; Sa 12:00", "lastcheck": "2015-02-16", "operator": "Deutsche Post", "postal_code": "13353", "ref": "Ostenderstraße 12, 13353 Berlin" } }, { /* ... */ } ] }
  • 5.
  • 6.
  • 7.
    Build-in feature types -WLAN - Library - Cafe - Cinema - Postbox - Bicycle parking - Trash can - Bus - Bank
  • 8.
    Extensibility public List<FeatureType> get(){ return new ArrayList<FeatureType>() { { add(new FeatureType(new HashMap<String, String>() {{ put("internet_access", "wlan"); }}, R.drawable.ic_action_wifi, R.string.wifi)); add(new FeatureType("post_box", R.drawable.ic_action_mail, R.string.mailbox)); // Add more feature types here // ... } } What are you interested in?
  • 9.
    Libraries used apt 'com.google.dagger:dagger-compiler:2.0.2' compile 'com.google.dagger:dagger:2.0.2 ' compile 'com.android.support:support-annotations:23.1.1 ' compile 'com.google.android.support:wearable:1.3.0 ' compile 'com.google.android.gms:play-services-location:8.3.0 ' compile 'com.google.android.gms:play-services-maps:8.3.0 ' compile 'com.google.android.gms:play-services-wearable:8.3.0 ' compile 'com.github.johnjohndoe:Overpass:2ee1603696f5346abe05d8ec3cb2261bfa4ac423 ' compile 'com.jakewharton:butterknife:7.0.1 ' compile 'com.squareup.okhttp:okhttp:2.6.0 ' compile 'com.squareup.okhttp:logging-interceptor:2.6.0 ' compile 'com.squareup.moshi:moshi:1.0.0 ' compile 'org.ligi:AXT:0.35 ' provided 'org.glassfish:javax.annotation:10.0-b28 ' testCompile ' junit:junit:4.12 ' testCompile ' com.squareup.assertj:assertj-android:1.1.1 ' testCompile ' com.android.support:support-annotations:23.1.1 '
  • 10.
    Lessons learned - WiFivs. Bluetooth - Watch + handheld vs. Android Virtual Device - Wearable Data Layer API - Wear emulator goes offline - Wear emulator API level 23 crashes when working with ADB
  • 11.
    Live demo What couldpossibly go wrong ...
  • 12.