building ios and android apps with mobile services
DESCRIPTION
Presentation from TechDays Netherlands 2014 on building iOS and Android apps with Azure Mobile Services.TRANSCRIPT
![Page 1: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/1.jpg)
![Page 2: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/2.jpg)
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
![Page 3: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/3.jpg)
Building iOS and Android Apps with Mobile ServicesSasha GoldshteinCTO, Sela GroupMicrosoft C# MVP, Azure MRS, Azure Insiderblog.sashag.net@goldshtn
![Page 4: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/4.jpg)
Who are we?App developers
What do we hate?Backends
![Page 5: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/5.jpg)
Azure Mobile Services is a backend for your mobile apps
… that has a free tier… and cloud scale… and support for all mobile platforms
![Page 6: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/6.jpg)
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
![Page 7: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/7.jpg)
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
![Page 8: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/8.jpg)
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”]; }}];
![Page 9: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/9.jpg)
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) ... }});
![Page 10: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/10.jpg)
Server Scriptfunction delete(item, user, request) { if (item.userId != user.userId) { request.respond( 403, ‘You may only delete your own items’); } else { request.execute(); }}
![Page 11: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/11.jpg)
Authentication[client loginWithProvider:@”facebook” controller:self animated:YES completion:^(MSUser *user, ...) { ... }];
client.login( MobileServiceAuthenticationProvider.Facebook, new UserAuthenticationCallback() { public void onCompleted(MobileServiceUser user, ...) { ... } });
![Page 12: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/12.jpg)
DemoBuilding the “Rent a Home”iOS and Android Apps
![Page 13: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/13.jpg)
Questions?Sasha Goldshteinblog.sashag.net@goldshtn
![Page 14: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/14.jpg)
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
![Page 15: Building iOS and Android Apps with Mobile Services](https://reader035.vdocument.in/reader035/viewer/2022062303/5585a766d8b42a6c1a8b4bd4/html5/thumbnails/15.jpg)