Connected & Disconnected Apps With Azure Mobile Apps

  • Published on
    16-Feb-2017

  • View
    117

  • Download
    2

Embed Size (px)

Transcript

PowerPoint Presentation

#XamarinDevDays

Alejandro Ruiz@alejandroruizvaCTO @ Los XamarinosConnected & Disconnected Apps with Azure Mobile Apps

We Apps!

189Mdownloads a day

200mins on phone

127mins in apps

The average app user has 36 apps installed on his or her phone.

Only 1/4 are used daily:

1/4 of apps are never used!

Slow or laggy experienceCrashesNot intuitive & bad user experienceFeatures not as advertisedData not available when you need it

Bad App Experiences

Always connected?

http://opensignal.com/coverage-maps

What about a backend?

Plenty of Options

Amazon Web ServicesAzure Mobile AppsIBM MobileFirst Oracle Mobile CloudSQLCIipherCouchbaseRealmSQLite-net

Extremely powerfulFlexibleEasy TablesApp ServiceC# SDKs available everywhere:C#- iOS, Android, & Windows with XamarinC# clients, written by C# developers (open source)C# backend with ASP.NET

Why Azure?

Extremely powerfulYou can do almost anything your backend would ever need to do with Azure. Data storage, authentication/authorization, push notifications, custom APIs, blob storage, etc.FlexibleNeed something lightweight? Azure is there.Need something robust and powerful? Azure is there.C# clientsIm a frontend developer, I care a lot about how easy this makes MY job (selfish)Many C# clients are written by Java developers, etc.Easy to use C# clientAbstracts away much of pain of using a RESTful APIC# FeaturesAsync / Await / TPLUses C# idiomsProperties, Fluent APISeems obvious, but not always true (first class citizen)

14

Shared C# codebase 100% native API access High performance iOS C# UI Windows C# UIAndroid C# UIShared C# Mobile

C# Server

Linux/MonoCoreCLR

AzureShared C# Client/ServerXamarin Apps + Backend Services

With Xamarin it just isnt your front end in C# it is your full backend server as well. With Azure or even on Linux running Mono or the CoreCLR your app is fully C# end to end!Build 2015 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.10/28/16 4:58 PM15

REST API

Offline sync

Push Notifications

Data connections

User Authentication

FacebookTwitterMicrosoftGoogleAzure Active Directory

Azure Mobile Apps

Windows

AndroidChromeiOS OSX

In-App

Kindle

Xamarin, iOS, Android & Windows SDKsBackend code

SQL

MongoTables

O365

API Apps

Offline Sync

Create a Mobile ServiceMobileService = new MobileServiceClient("https://myapp.azurewebsites.net");

1710/28/16 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, 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.

Create TablesIMobileServiceSyncTable table;public async Task Init(){ const string path = "syncstore.db"; var db = new MobileServiceSQLiteStore(path); db.DefineTable();

}

var handler = new MobileServiceSyncHandler(); await MobileService.SyncContext.InitializeAsync(db, h); table = MobileService.GetSyncTable();

1810/28/16 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, 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.

Get and Modify Datapublic async Task GetStoresAsync(){ await table.PullAsync("allStores", table.CreateQuery()); return await table.ToEnumerableAsync();}public async Task AddStoreAsync (Store store){ await table.InsertAsync (store); await table.PullAsync("allStores", table.CreateQuery()); await MobileService.SyncContext.PushAsync(); return store;}

1910/28/16 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, 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.

Lets add a backend

So Much More

21

Shared C# codebase 100% native API access High performance iOS C# UI Windows C# UIAndroid C# UIShared C# Mobile

C# Server

Linux/MonoCoreCLR

AzureShared C# Client/ServerMobile + Server

With Xamarin it just isnt your front end in C# it is your full backend server as well. With Azure or even on Linux running Mono or the CoreCLR your app is fully C# end to end!Build 2015 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.10/28/16 4:58 PM22

Rolling your own account infrastructure is difficult and time-consumingSecure your app with prebuilt authentication providersFacebookTwitterGoogleMicrosoftAzure ADAnything OAuth 2Authentication

What if a GetAll should only return favorites for that user.23

Easy-to-use, multiplatform scaled push infrastructure that allows you to send push notifications almost anywhere.

Push Notifications

SO Hard!Azure makes it easyHuge value in having this integrated with data... you can just say fire a push IF24

Sync files to Azure Storage, just like you did for structured data.File Sync

25

Lunch!

AlejandroRuizCTO @ Los Xamarinosalejandro@alejandroruizvarela.comhttp://alejandroruizvarela.blogspot.mx@alejandroruizva

2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, 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.10/28/1626

Recommended

View more >