building connected ios apps with mobile services

of 45 /45
Building Connected iOS Apps With Mobile Services Chris Risner Senior Technical Evangelist @chrisrisner Microsoft Azure

Upload: scot

Post on 14-Feb-2016

81 views

Category:

Documents


1 download

DESCRIPTION

Building Connected iOS Apps With Mobile Services. Chris Risner Senior Technical Evangelist @ chrisrisner. Microsoft Azure. About me. @ chrisrisner. Technical Evangelist. Live in Washington. Chrisrisner.com. Mobile dev for 5+ years. Grew up in Michigan. Agenda. Mobile Services. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Building Connected  iOS  Apps With Mobile Services

Building Connected iOS Apps With Mobile ServicesChris RisnerSenior Technical Evangelist@chrisrisner Microsoft Azure

Page 2: Building Connected  iOS  Apps With Mobile Services

2

About meTechnical Evangelist @chrisrisner

Chrisrisner.com Live in Washington

Grew up in Michigan Mobile dev for 5+ years

Page 3: Building Connected  iOS  Apps With Mobile Services

3

AgendaMicrosoft Azure Mobile Services

Features and Demos Advanced Features

Scaling and Pricing Questions

Page 4: Building Connected  iOS  Apps With Mobile Services

4

What is Azure?•Hosting and Services•Massively scalable•Geographically available•Affordable

Page 5: Building Connected  iOS  Apps With Mobile Services

What is Mobile Services?

5

Storage

AuthenticationLogic

Push

Scheduler

Page 6: Building Connected  iOS  Apps With Mobile Services

Demo: Getting StartedYour first Mobile Service

Page 7: Building Connected  iOS  Apps With Mobile Services

7

Structured Storage• Powered by SQL Database• Supports rich querying capabilities• Dynamic Schematization• Data management in:• Azure Portal• SQL Portal (Silverlight)• SQL Management Studio• REST API• Azure CLI Tools• SQL CLI

Microsoft Azure

Page 8: Building Connected  iOS  Apps With Mobile Services

8

The REST API

Action HTTP Method URL Suffix

Create POST /TodoItem

Read GET /TodoItem?filter=id%3D42

Update PATCH /TodoItem/id

Delete DELETE /TodoItem/id

Microsoft Azure

Base Endpoint: https://MobileService.azure-mobile.net/tables/*

Page 9: Building Connected  iOS  Apps With Mobile Services

9

JSON to SQL Type MappingsJSON Type T-SQL TypeNumeric values (integer, decimal, floating point)

Float(53)

Boolean bit

DateTime DateTimeOffset(3)

String Nvarchar(max)

Microsoft Azure

Page 10: Building Connected  iOS  Apps With Mobile Services

10

Auto-generated Columns• id – unique guid• __createdAt – date• __updatedAt – date• __version – timestamp

• Helps with concurrency and offline

Microsoft Azure

Page 11: Building Connected  iOS  Apps With Mobile Services

Backend Logic:.NET & JavaScript

Page 12: Building Connected  iOS  Apps With Mobile Services

12

Server Side Table ScriptsNode.js scripts Intercept CRUD

requests to tables

Passes through to SQL by default Fully customizable

.NET backend in Visual Studio

Page 13: Building Connected  iOS  Apps With Mobile Services

13

Node Modulesrequest push.*

console mssql

tables azure

sendgrid

pusher

twilio

Page 14: Building Connected  iOS  Apps With Mobile Services

Demo: Customizing LogicAdding Data Validation

Page 15: Building Connected  iOS  Apps With Mobile Services

15

Custom API• Non-table based scripts• Accessible from

• GET• POST

PUTPATCHDELETE

• Expose any functionality you want

Microsoft Azure

Page 16: Building Connected  iOS  Apps With Mobile Services

Push Notifications

Page 17: Building Connected  iOS  Apps With Mobile Services

17

Push Notification Flow

Microsoft Azure

1.

2.

3.

4.

Client(1)

(2)

(3)(4)

Page 18: Building Connected  iOS  Apps With Mobile Services

Demo: Adding Push

Page 19: Building Connected  iOS  Apps With Mobile Services

19

Notification Hubs• Separate from Mobile Services

• Can be used regardless of whether you’re storing data in Azure• Extremely scalable push notifications• Cross platform support

• Push to iOS, Android, Kindle, Windows Phone, Windows Store• Tags (i.e. tie my registration to this topic or user ID)• Templates (i.e. when I get a push, send it in this format)• Connect to using Azure module

Microsoft Azure

Page 20: Building Connected  iOS  Apps With Mobile Services

Authorization&Authentication

Page 21: Building Connected  iOS  Apps With Mobile Services

21

Data Authorization• Per HTTP method auth options:

• App Key Required• Not ideal for production use

• Everyone• Authenticated Users• Admins and other scripts

• Requires Master Key as header• 400 Unauthorized response if security check fails

Microsoft Azure

Page 22: Building Connected  iOS  Apps With Mobile Services

22

User Auth Flow (server)

Microsoft Azure

GOOGLE

FACEBOOK

TWITTER

MOBILE SERVICE

DEVICE

CREDENTIALS

(via

oAuth/WebView)

MICROSOFT

IDENTITY

AUTH

TOKE

N

GRAP

H AC

CESS

(LIM

ITED)

Page 23: Building Connected  iOS  Apps With Mobile Services

23

User Auth Flow (client)

Microsoft Azure

GOOGLE

FACEBOOK

TWITTER

MOBILE SERVICE

DEVICE

MICROSOFTAUTH CODE

AUTH CODE + TOKEN

GRAP

H AC

CESS

CREDENTIALS

(via native SDKs)

IDENTITY

GRAPH ACCESS

Page 24: Building Connected  iOS  Apps With Mobile Services

24

The User object• User.level

• Admin• Authenticated• Anonymous

• User.userId• Provider:id or undefined

• User.getIdentities()• UserId• Provider Access Token / Secret• Basic user information (i.e. name, username, locale, picture, link)

Microsoft Azure

Page 25: Building Connected  iOS  Apps With Mobile Services

Demo: Adding AuthLock Down and Login

Page 26: Building Connected  iOS  Apps With Mobile Services

Command Line Interface

Page 27: Building Connected  iOS  Apps With Mobile Services

27

CLICreate / Delete Services Inspect / Delete Table

Data

Create / Update / Delete Tables and

PermissionsCreate / Upload / Delete

Scripts

Scale Up / Down Services

Much More Across Azure

Page 28: Building Connected  iOS  Apps With Mobile Services

Demo: Using the CLI

Page 29: Building Connected  iOS  Apps With Mobile Services

Scheduler

Page 30: Building Connected  iOS  Apps With Mobile Services

30

Scheduled Jobs• Executes a script on defined schedule• Can be run on demand• Ideal for any backend data processing job

Microsoft Azure

Page 31: Building Connected  iOS  Apps With Mobile Services

ScriptSourceControl

Page 32: Building Connected  iOS  Apps With Mobile Services

32

Script Source Control• Creates a Git repo in Azure• Access table, scheduler, custom API, shared scripts and

permissions• Pushing changes triggers a redeploy of your Mobile Service• Enables installing NPM modules

• Shared Scripts• Create scripts that can be used from all other scripts in your

Service

Microsoft Azure

Page 33: Building Connected  iOS  Apps With Mobile Services

DiagnosticsLoggingScale

Page 34: Building Connected  iOS  Apps With Mobile Services

34

Diagnostics, Logging, ScaleAPI Calls, # of Devices,

Data OutConsole Logging (auto

error logging)

Scale Service Based off API Calls

Auto-scale to Save Money

Free Tier for Mobile Free Tier for SQL

Page 35: Building Connected  iOS  Apps With Mobile Services

Mobile Service Scaling Free: 500k calls / month / subscription Basic: 1.5M calls / unit (6) / month Standard: 15M calls / unit (10) / month

Page 36: Building Connected  iOS  Apps With Mobile Services

Demo: ScalingLeaving Free Mode and Turning on AutoScale

Page 37: Building Connected  iOS  Apps With Mobile Services

37

Mobile Service Tiers

Microsoft Azure

usage & licensing $ service level

agreementsGeneral Availability99.9%

Free Basic Standard

Usage Restrictions

Up to 10 services,Up to 500 Active

Devices*

N/A N/A

API Calls 500K (per subscription)

1.5M(per unit)

15M(per unit)

Scale N/A Up to 6 (in portal)

Up to 10 (in portal)

Scheduled Jobs

Limited Included Included

SQL Database (required)

20MB free DB 20MB free DB 20MB free DB

*Active devices refers to the number of physical devices and emulators that make at least one call to or receive a push notification from your mobile service.

Page 38: Building Connected  iOS  Apps With Mobile Services

What is Mobile Services?

38

Storage

AuthenticationLogic

Push

Scheduler

Page 39: Building Connected  iOS  Apps With Mobile Services

39

Resources• Get a FREE Microsoft Azure Trial Account:

• http://azure.microsoft.com• Videos, Tutorials, and More

• http://azure.microsoft.com/ios• SDK Source Code on GitHub

• https://github.com/Azure/azure-mobile-services• Contact Details

• http://chrisrisner.com• http://aka.ms/CommonWams• @chrisrisner

Microsoft Azure

Page 40: Building Connected  iOS  Apps With Mobile Services

Thanks!Questions?

Page 41: Building Connected  iOS  Apps With Mobile Services

© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Page 42: Building Connected  iOS  Apps With Mobile Services

Azure footprint

16 regions worldwide in 2014

Page 43: Building Connected  iOS  Apps With Mobile Services

Fortune 500 using Azure

>57%

>250kActive websites

Greater than1,000,0

00SQL Databases in Azure>2

0 TRILLIONstorageobjects

>300

MILLIONAD users

>13BILLIONauthentication/wk

>2 MILLION

requests/sec

>1 MILLION

Developers registered with Visual Studio Online

Page 44: Building Connected  iOS  Apps With Mobile Services
Page 45: Building Connected  iOS  Apps With Mobile Services

Get startedVisit azure.microsoft.com