Upload
loic-ortola
View
397
Download
0
Embed Size (px)
Citation preview
Think different,Unleash your potential!
@LoicOrtola
http://loicortola.com
A changing world
2
2005
2013
AUG | Barcelona, May 13th 2015
A changing world
3 AUG | Barcelona, May 13th 2015
New challenges
! Battery life ! Connectivity ! Diversity of devices, versions, screen sizes ! Lack of standards ! DORA (Develop Once, Run Anywhere)
But also ! Increase of chemical waste ! Electromagnetic radiations ! Security leaks, ID Theft
AUG | Barcelona, May 13th 2015 4
New tools for new uses
Gyroscope, Accelerometer, GPS, BLE, Cardio frequency meter, NFC, WiFi
Location, location, location
! Where you are on earth ! The direction you’re looking at
… Basically, we can see through your eyes.
6 AUG | Barcelona, May 13th 2015
Relative Location: Virtual Reality
! Oculus Rift ! Google Cardboard Dive city rollercoaster Proton Pulse VRSE
Orbulus Vanguard V Use cases: IMMERSION
7 AUG | Barcelona, May 13th 2015
Relative + Absolute Location: Augmented Reality
! Layar ! VuForia ! MetaIO ! evenTribe AR (Stay Tuned)
Use cases: Advertisement / Services / Gaming
8 AUG | Barcelona, May 13th 2015
Meet BLE
! Relies on GATT (Generic Attribute Profile) ! Device Advertises itself ! When paired to a central device, will stop advertising. (only one-to-
one) ! Exchanges Data at periodic intervals ! Transaction = Set of services, which hold Characteristics ! Official services (16bit address):
https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx
! Custom services: (128bit address) More info https://developer.android.com/guide/topics/connectivity/bluetooth-le.html
Example: HeartRate Service: 0x180D 3 Characteristics: Heart Rate measurement, Sensor Location, Heart Rate control point
9 AUG | Barcelona, May 13th 2015
BLE limitations
! Throughput: ! ACK vs no-ACK? ! Packet <= 20byte data ! Max number of packets / event (usually btw 2 and 6) ! Connection interval (central & peripheral, usually tens of ms)
Example: iOS 8.3, 30ms min connection interval iPhone 6, iOS 8.3 + nRF51822 = 16kbps throughput ! Frequency emission:
! 2.4 Ghz (same as Wifi) ! Can be diffracted, absorbed, or interferred by water
10 AUG | Barcelona, May 13th 2015
iBeacons
! Instead of being constrained by a one-to-one relationship to push and pull information, one can use the payload bits of the advertisement mode to broadcast data.
! Pros: Costless, energy efficient, asynchronous
! Cons: Unidirectional, public, lightweight Looks like a hack! But that’s awesome! Even better: Signal strength can be used to give « proximity » contextual info. Some also say « indoor geolocation » (Woooow)
11 AUG | Barcelona, May 13th 2015
Proximity: Target Advertisement
! BeaconWatcher ! Kontakt ! BlueUp
“Welcome to the underwear department. Tap here to get 20% off the latest Superman boxers” Use cases: Advertisement / Services / Gaming
12 AUG | Barcelona, May 13th 2015
Let’s brainstorm
How to extend the actual technologies to brand new concepts?
Indoor Geolocation
! iBeacons have algorithms to compute distance to Beacon Question: How can we perform indoor Geolocation with this idea?
AUG | Barcelona, May 13th 2015 14
Indoor Geolocation
15 AUG | Barcelona, May 13th 2015
1 2
3
d1 d2
d3
x
y
Indoor Geolocation
! Truth is… The distance computation algorithm looks like this:
! txPower: Factory calibrated, read-only constant which indicates the expected RSSI at a 1 meter distance of the beacon
! RSSI: Received Signal Strength Indicator
protected static double computeDistance(int txPower, double rssi) { if (rssi == 0) { return -1.0; } double ratio = rssi / txPower; if (ratio < 1.0) { return Math.pow(ratio,10); } else { return 0.89976 * Math.pow(ratio,7.7095) + 0.111; } }
16 AUG | Barcelona, May 13th 2015
Indoor Geolocation
! Truth is… The distance computation algorithm is completely arbitrary.
! Does it work? ! No. There can be complete aberrations in terms of distance
! Can we do something? ! The more beacons, the better the estimation? Not really -> Device calibration deltas, Battery level, Device position blurs everything away
! Why? ! 2.4Ghz
AUG | Barcelona, May 13th 2015 17
Indoor Geolocation
! Solution: Stop thinking like everyone else. Let’s change the paradigm.
! I cannot do triangulation and distance estimation with beacons.
! But I can tell which is the closest!
AUG | Barcelona, May 13th 2015 18
Indoor Geolocation
! Solution 1: Beacon Grid
AUG | Barcelona, May 13th 2015 19
Indoor Geolocation
! Solution: Stop thinking like everyone else. Let’s change the paradigm.
! I cannot do triangulation and distance estimation with beacons.
! But water absorbs or creates interferences with the signal
AUG | Barcelona, May 13th 2015 20
Indoor Geolocation
! Solution 2: Signal heatmaps
Calibration Runtime
-76dbm
-80dbm -78dbm
-77dbm -90dbm
-80dbm -78dbm
-77dbm
AUG | Barcelona, May 13th 2015 21
Indoor Geolocation
! Solution: Stop thinking like everyone else. Let’s change the paradigm.
! I cannot do triangulation and distance estimation with beacons.
! But bluetooth or wifi advertising does tell me there is a device around.
AUG | Barcelona, May 13th 2015 22
Indoor Geolocation
! Solution 3: Wifi / Bluetooth proximity
Results should be close to Solution 1
00:0C:XX:XX:XX -76dbm
AUG | Barcelona, May 13th 2015 23
00:0C:XX:XX:YY -56dbm
Inter-Device communication
! NFC needs a compatible device (Android vs iOS) ! Wifi requires a router ! Bluetooth is only one-to-one
Question: How can we develop other ways of inter-device
communication?
AUG | Barcelona, May 13th 2015 24
Inter-Device communication
! The Old-fashioned Way:
Every phone has a camera. We can scan coded visual information QRCodes… … Or encoded images
AUG | Barcelona, May 13th 2015 25
Inter-Device communication
! The SquareUp Way:
Every phone has an audio jack. …Remember morse code?
Cons: May look like we are exchanging Pokemons with our Cable Link
AUG | Barcelona, May 13th 2015 26
Inter-Device communication
! Audio Watermarking
How to hide bytes in the 12-15khz frequencies? è AWT2
Play your favorite music, and seamlessly transport information …Radios already do this remember?
AUG | Barcelona, May 13th 2015 27
Inter-Device communication
! P2P gods ! If Device 1 connects to Device 2 and 3 and Device 2 to Device 3
and 1 etc… ! We are creating an Ad-Hoc P2P network!
Wait… Are you saying we could solve internet connectivity problems in the subway? After crowdsourcing, why not crowdconnectivity?
AUG | Barcelona, May 13th 2015 28
Exchanging ideas: Developer Libraries & Marketing tools
New libraries, Memory Leaks finder,
Automated App Deployment Instant App Bundling
Out this week
! LeakCanary, by Pierre-Yves Ricaud (Square) ! 20+ Android leaks discovered and issued to google in a couple
days ! Amazingly useful to understand design flaws in your app ! Discreet, lightweight, transparent in production
AUG | Barcelona, May 13th 2015 30
Maps
! Google Maps: Requires API-Key, requires commercial license if commercial use, lack of good caching, brings Google Play Services and its 40k methods…
! OpenStreetMap: Yes! You can do anything if you know how to make a TileServer (switch2osm.org)
! But… ! Libraries still too young for vector tiles (OperPassAPI/mapbox-gl) ! Historical android library (osmdroid) sucks! ! Since 02/15, mapbox-android-sdk can be considered mature
enough, with an interesting set of technologies and a solid community of contributors
AUG | Barcelona, May 13th 2015 31
Misc
! Dagger 2 ! CouchBase Mobile? ! Jackson ! Android Annotations ! OkHttp ! Picasso, Universal Image Loader ! Crashlytics ! Piwik ! Fabric ! Retrofit
What about you?
AUG | Barcelona, May 13th 2015 32
App Templating
! You developed the Awesome World Congress 2015 App
! May be used for lots of similar events, with pretty much the same codebase.
! Feature-driven developments are interesting but tough to loosely couple with content.
! Deployment is time-consuming, upgrades and migrations even worse.
Question: How can we provide loose coupling btw code and content, and optimize deployments and upgrades?
AUG | Barcelona, May 13th 2015 33
App Templating
! You are developing the Awesome World Congress 2015 App (Congratulations! :D )
! Features: ! 3D-Map (an embedded MBTiles file, plus an OpenStreetMap layer
with coordinate bounds) ! AR View ! Schedule of the conferences ! Set of POIs (companies, stands) and their description ! Speakers Biography ! Built-in tweetdeck
AUG | Barcelona, May 13th 2015 34
App Templating
! Develop, templatize
! Develop your app as usual
! Backend, DB, Android/iOS Mobile App, Website
! Brand your product for the Awesome World Congress 2015, and make a huge impression.
35
! Develop, Templatize
! Classical way: ! for each show { git checkout –b congressXXX2015 git commit… git commit… git commit… git rebase / git merge / etc… }
! Stop making n-times the necessary adjustments and customizations.
! Proposed Way: ! Templatize your code once, then customize with content
36
Now, your app was SO cool that 50 more shows and events want you to make theirs, with the same features
Congress XXX App
App Templating
! Why do this? ! Because you completely separate your codebase from your content. ! Because deploying new versions is easier (no 50 branches to rebase) ! Because you gain loads of time (compilation can even be avoided)
! Metrics? ! Depends ;)
37
App Templating
Instant App Creation
! Sometimes, an app template really makes sense for anyone to make very custom services.
! Sometimes, an app is disposable (POC). ! Marketing guys only care about TTM.
Question: How can we allow non-technical people to create real native apps in a friendly environment?
AUG | Barcelona, May 13th 2015 38
Instant App Creation
! Well, you’ve already made a template and separated your code from your content ! Simply APIfy and bring nice widgets to provide an abstraction of the
complexity
Example: the “Make your congress App” website: • Upload an excel or csv file with your POIs • Upload a Google calendar file with the schedule of conferences • Upload an excel or csv file with the list and bios of speakers • Choose the coordinate bounds and overlay your map • Choose the theme color, customize the wording, change the app
name, the app icon, the splashscreen • Click “Generate”, wait 20 seconds, download your APK
AUG | Barcelona, May 13th 2015 39
Thanks guys, it was a blast!
! Let’s follow each other! @LoicOrtola
! And let’s keep in touch!
40 AUG | Barcelona, May 13th 2015
[email protected] concept.designmyapp.mobi developer.designmyapp.mobi
I think I’m being followed