Building iOS and Android Apps with Mobile Services

Post on 21-Jun-2015

1,280 views 7 download

Tags:

description

Presentation from TechDays Netherlands 2014 on building iOS and Android apps with Azure Mobile Services.

transcript

Laat ons weten wat u vindt van deze sessie! Vul de evaluatie in via www.techdaysapp.nl en maak kans op een van de 20 prijzen*. Prijswinnaars worden bekend gemaakt via Twitter (#TechDaysNL). Gebruik hiervoor de code op uw badge.

Let us know how you feel about this session! Give your feedback via www.techdaysapp.nl and possibly win one of the 20 prizes*. Winners will be announced via Twitter (#TechDaysNL). Use your personal code on your badge.

* Over de uitslag kan niet worden gecorrespondeerd, prijzen zijn voorbeelden – All results are final, prizes are examples

Building iOS and Android Apps with Mobile ServicesSasha GoldshteinCTO, Sela GroupMicrosoft C# MVP, Azure MRS, Azure Insiderblog.sashag.net@goldshtn

Who are we?App developers

What do we hate?Backends

Azure Mobile Services is a backend for your mobile apps

… that has a free tier… and cloud scale… and support for all mobile platforms

Platforms and FeaturesPlatforms (client libraries)• iOS• Android•Windows Phone•Windows 8• HTML/JavaScript• PhoneGap• Xamarin

Features• Data and queries• Push notifications• Authentication• Server-side scripts• Custom API• Offline sync• Mass push• Git integration

System Diagram

Microsoft Azure

SQL Databas

e

Node + Express backend

Apple Push Notification

Service

Facebook Auth

ProviderServer scripts

Google Cloud

Messaging

Twitter Auth

Provider

Custom API

Data Query, iOSMSTable *table = [client tableForName:@”apartment”];NSPredicate *predicate = [NSPredicate predicateWithFormat:@”rented == NO”];[table readWithPredicate:predicate completion:^(NSArray *items, NSInteger count, NSError* error) { for (NSDictionary *apartment in items) { NSLog(@”%@ %d”, apartment[@”address”], apartment[@”bedrooms”]; }}];

Data Query, AndroidMobileServiceTable<Apartment> table = client.getTable(Apartment.class);table.where().field(“rented”).eq(false) .execute(new TableQueryCallback<Apartment>() { public void onCompleted(List<Apartment> items, int count, Exception e, ServiceFilterResponse response) { if (e != null) for (Apartment apt : items) ... }});

Server Scriptfunction delete(item, user, request) { if (item.userId != user.userId) { request.respond( 403, ‘You may only delete your own items’); } else { request.execute(); }}

Authentication[client loginWithProvider:@”facebook” controller:self animated:YES completion:^(MSUser *user, ...) { ... }];

client.login( MobileServiceAuthenticationProvider.Facebook, new UserAuthenticationCallback() { public void onCompleted(MobileServiceUser user, ...) { ... } });

DemoBuilding the “Rent a Home”iOS and Android Apps

Questions?Sasha Goldshteinblog.sashag.net@goldshtn

Laat ons weten wat u vindt van deze sessie! Vul de evaluatie in via www.techdaysapp.nl en maak kans op een van de 20 prijzen*. Prijswinnaars worden bekend gemaakt via Twitter (#TechDaysNL). Gebruik hiervoor de code op uw badge.

Let us know how you feel about this session! Give your feedback via www.techdaysapp.nl and possibly win one of the 20 prizes*. Winners will be announced via Twitter (#TechDaysNL). Use your personal code on your badge.

* Over de uitslag kan niet worden gecorrespondeerd, prijzen zijn voorbeelden – All results are final, prizes are examples