gå ned i vægt med azure mobile services

36

Upload: christian-dalager

Post on 27-Jun-2015

194 views

Category:

Technology


0 download

DESCRIPTION

Oplæg holdt på Microsoft Campus Days 2013, 10. oktober 2013. Gennemgang af Azure Mobile Services platformen. Case: Fitbit Weight windows phone app.

TRANSCRIPT

Page 1: Gå ned i vægt med Azure Mobile Services
Page 2: Gå ned i vægt med Azure Mobile Services

Azure

Christian Dalager

Gå ned i vægt medAzure Mobile Services

Softwareudvikler mmEksponent ApS

Page 3: Gå ned i vægt med Azure Mobile Services

Agenda

Gå ned i vægt med Azure Mobile Services

• Case: Fitbit Weight• Azure Mobile Services i overblik• Demonstration m WP8 app

• Data, • Auth, • API, • Git• Push

Page 4: Gå ned i vægt med Azure Mobile Services

Christian Dalager

Softwareudvikler @ Eksponent.com

Sproghistorie:

Perl > PHP > Java > .NET > Ruby > Javascript

Page 5: Gå ned i vægt med Azure Mobile Services

Case: Fitbit Weight

Page 6: Gå ned i vægt med Azure Mobile Services

Fitbit Weight What?!

Ekstern pitch

”Få din vægt kastet i hovedet. Hele tiden. Det motiverer dit til at opnå din ønskede vægt”

Krav• Live tile• Push• Bruger går aldrig ind i app’en

Intern pitch

”Den her vægt har et API!”

Page 7: Gå ned i vægt med Azure Mobile Services

Install flow

Page 8: Gå ned i vægt med Azure Mobile Services

Op på vægten...

Efter 25 sek

Page 9: Gå ned i vægt med Azure Mobile Services

Hvorfor vælge Mobile Services?

• Push• Data• API• Let/gratis at komme igang med

Page 10: Gå ned i vægt med Azure Mobile Services
Page 11: Gå ned i vægt med Azure Mobile Services
Page 12: Gå ned i vægt med Azure Mobile Services

Azure Mobile Services

Page 13: Gå ned i vægt med Azure Mobile Services

Features i Mobile Services

• Data• API• Scheduler• Push• Identity• Scale

Page 14: Gå ned i vægt med Azure Mobile Services

Connected client APIs

• Windows Phone 7/8

• Windows Store• Android• iOS• REST (to bind

them all)

Page 15: Gå ned i vægt med Azure Mobile Services

Tooling

• In-browser editing (javascript editor)• Git• Logging• Command Line Interface (npm install azure –

g)

Page 16: Gå ned i vægt med Azure Mobile Services

Demo 1Opret en mobile service

Page 17: Gå ned i vægt med Azure Mobile Services

Data og ”tables”

• Alle har brug for data• Dynamisk skema (document-style)• Permissions• Scripts• Kan tilgås m API’er eller REST

interface.

Page 18: Gå ned i vægt med Azure Mobile Services

Demo 2AMSClient – windows phone 8 app, der henter/gemmer data fra Azure Mobile Services.

Page 19: Gå ned i vægt med Azure Mobile Services

Restful interface med OData support

Query eksempler

[serviceurl]/tables/item?$top=2

[serviceurl]/tables/item?$filter=substringof(‘ting', Name) eq true

Page 20: Gå ned i vægt med Azure Mobile Services

Authentication

• Undgå at skriv dit eget authentication system. • Eller dit eget OAUTH signup flow.• Providers:• Microsoft Account• Twitter• Facebook• Google

• Du får kun en identifier, ikke access tokens.

Page 21: Gå ned i vægt med Azure Mobile Services

Demo 3AMSClient – udvidelse med authentication

Page 22: Gå ned i vægt med Azure Mobile Services

Authentication, kommentarer

• Microsoft Account Authentication burde kende dig når du authenticater på windows phone

Page 23: Gå ned i vægt med Azure Mobile Services

Git!

• Distribueret source control• Deployment (bruger kudu, samme som Azure Websites)• Git er for tiden den mest udbredte DVCS – og defacto standard for

OSS projekter• Github• Bitbucket• Team Foundation Services• Azure• Heruko• Appharbor

Page 24: Gå ned i vægt med Azure Mobile Services

Demo 4Git source control deployment

Page 25: Gå ned i vægt med Azure Mobile Services

Git, kommentarer

• SSH public/private keypair authentication ville være rart• Problemet løses med >git config credential.helper store

• Bedre author logging på portalen:

Page 26: Gå ned i vægt med Azure Mobile Services

Push

Man kan pushe fra

• Data scripts• API• Scheduler• Custom API

Man pusher platformsspecifikt

• Windows Phone (push.mpns.*)

• Windows Apps (push.wns.*)

• Android (push.gns.*)• iOS (push.apns.*)

Page 27: Gå ned i vægt med Azure Mobile Services

Push flow, WP8

1. Bed om en HttpNotificationChannel2. Åbn den3. Gem notification URI på serveren, så

man udefra ved, hvem man skal kalde4. Bind channel til Toast/Tile/Raw

Page 28: Gå ned i vægt med Azure Mobile Services

Item.insert.jspush.mpns.sendRaw(channel.uri, { payload: "This is very RAW" }, { success: function(pushResponse) { console.log("Sent push, result:", pushResponse); }, error: function(e) { console.log('ERRoR: ' + JSON.stringify(e)); }});

Page 29: Gå ned i vægt med Azure Mobile Services

Demo 5AMSClient – udvidelse med Push

Page 30: Gå ned i vægt med Azure Mobile Services

Custom API

• Custom APIs eksponeres på http://[service].azure-mobile.net/api/[api-navn]

• Et api endpoint er et NodeJs module• Baseret på Express (NodeJs web framework: http://expressjs.com/

)• Med nogle permissions sat på sig.• Mulighed for NPM og shared code

Page 31: Gå ned i vægt med Azure Mobile Services

Demo 6Custom API: indsæt data fra API.Desuden: NPM og Shared code

Page 32: Gå ned i vægt med Azure Mobile Services

Custom API, kommentarer

• NPM understøtter ikke package.json formatet (svarende til NuGet Package Restore)

Page 33: Gå ned i vægt med Azure Mobile Services

Scheduler

En task scheduler.

Ikke noget fancy, men handy.

Page 34: Gå ned i vægt med Azure Mobile Services

Overordnet indtryk?

Hell yeah.• Let tilgængeligt• Man kommer *meget* hurtigt i luften.• Mange features• Til mobile apps er det *rigtigt* smart at scaling

er tænkt med, hvis f.eks. det indiske marked opdager din app.

Page 35: Gå ned i vægt med Azure Mobile Services

Gotchas

• Data scripts fungerer kun gennem ”eksternt api”• Antallet af ”active devices” har loft på 500 devices på den

”gratis” plan. Så hvis du laver en app, der bliver populær, risikerer du selv at skulle finansiere denne popularitet. lav en forretningsplan!

Page 36: Gå ned i vægt med Azure Mobile Services

Farvel og tak

Fang mig på

• eksponent.com

• Twitter: @dalager

• Mail: [email protected]

Kildekode

• WP8 AMSClient : https://bitbucket.org/dalager/amsclient

• Dalager01 Mobile Service source: https://bitbucket.org/dalager/cddk13-service