CatDroid talk: thinking different, sharing ideas

Post on 08-Jan-2017

397 Views

Category:

Engineering

0 Downloads

Preview:

Click to see full reader

Transcript

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

lortola@ebusinessinformation.fr concept.designmyapp.mobi developer.designmyapp.mobi

I think I’m being followed

top related