SlideShare a Scribd company logo
Building Cloud-backed Mobile Apps
Glenn Dierkes, AWS Mobile
November 13, 2013

© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
Session Goals
• Cloud services, great apps
• Apps today
–
–
–
–

Social Logins
Geo Tagging
File and Data Storage
Push Notifications
AWS Mobile Landscape
User Data

Social Login

Mobile Push

File Storage
Amazon DynamoDB

AWS IAM

Amazon S3

Amazon SNS
Demo of the Mobile Photo Share sample App
An app to share geo-tagged photos with others.
Mobile Photo Share – Architecture
Geo Library for Amazon DynamoDB

Geo
AWS IAM
Web Identity Federation

AWS Mobile SDKs

S3 Transfer Manager

Amazon S3

Amazon DynamoDB
Web Identity Federation
Geo Library for Amazon DynamoDB

Geo
AWS IAM
Web Identity Federation

AWS Mobile SDKs

S3 Transfer Manager

Amazon S3

Amazon DynamoDB
Web Identity Auth Flow
Access

Policy
Mobile Client

${id}
Amazon S3 Bucket

AWS STS
AWS Cloud
Web Identity Federation
• Social Logins
– Managing Users is hard

– Allow users to connect with their existing accounts.
• Facebook, Google, and Amazon.

– Provides restricted temporary AWS Credentials
• Policy variables
• Don’t put credentials in your app’s code (can’t rotate, not secure)

• Learn More
– SEC401 session with Bob Kinney (Thursday 1:30 – 2:30 pm)
– https://mobile.awsblog.com/post/Tx3UKF4SV4V0LV3
S3 Transfer Manager
Geo Library for Amazon DynamoDB

Geo
AWS IAM
Web Identity Federation

AWS Mobile SDKs

S3 Transfer Manager

Amazon S3

Amazon DynamoDB
Amazon S3 Transfer Manager
• Upload/Download files to/from Amazon S3
– Pictures
– Videos
– Music

• Pause, Resume, Cancel
• Efficiency and failure tolerance
• No backend
Amazon S3 Transfer Manager – Demo
• Upload Photo Page from Mobile Photo Share
• View Photo Page from Mobile Photo Share
Amazon S3 Multipart Upload
-(void)multipartUpload:(NSData*)dataToUpload inBucket:(NSString*)bucket forKey:(NSString*)key
{
S3InitiateMultipartUploadRequest *initReq = [[S3InitiateMultipartUploadRequest alloc] initWithKey:key inBucket:bucket];
S3MultipartUpload *upload = [s3 initiateMultipartUpload:initReq].multipartUpload;
S3CompleteMultipartUploadRequest *compReq = [[S3CompleteMultipartUploadRequest alloc] initWithMultipartUpload:upload];
int numberOfParts = [self countParts:dataToUpload];
for ( int part = 0; part < numberOfParts; part++ ) {
NSData *dataForPart = [self getPart:part fromData:dataToUpload];
S3UploadPartRequest *upReq = [[S3UploadPartRequest alloc] initWithMultipartUpload:upload];
upReq.partNumber = ( part + 1 );
upReq.contentLength = [dataForPart length];
upReq.stream = stream;
S3UploadPartResponse *response = [s3 uploadPart:upReq];
[compReq addPartWithPartNumber:( part + 1 ) withETag:response.etag];
}
[s3 completeMultipartUpload:compReq];
}
Amazon S3 Multipart Upload (cont.)
-(NSData*)getPart:(int)part fromData:(NSData*)fullData
{
NSRange range;
range.length = PART_SIZE;
range.location = part * PART_SIZE;
int maxByte = (part + 1) * PART_SIZE;
if ( [fullData length] < maxByte ) {
range.length = [fullData length] - range.location;
}
return [fullData subdataWithRange:range];
}
-(int)countParts:(NSData*)fullData
{
int q = (int)([fullData length] / PART_SIZE);
int r = (int)([fullData length] % PART_SIZE);
return ( r == 0 ) ? q : q + 1;
}
Amazon S3 Transfer Manager – Code
// Creating the transfer manager
self.transferManager = [S3TransferManager new];
self.transferManager.s3 = s3client;

// Upload image
[self.transferManager uploadFile:fileName bucket:bucketName key:objectName];

// Download image
[self.transferManager downloadFile:fileName bucket:bucketName key:objectName];

// Pause, Resume, Cancel
[self.transferManager pauseAllTransfers];
[self.transferManager resumeAllTransfers];
[self.transferManager cancelAllTransfers];
Amazon S3 Transfer Manager
• Learn More
– http://mobile.awsblog.com/post/TxIRFEQTW9XU8G
– http://aws.amazon.com/mobile/
Geo Library for Amazon DynamoDB
Geo Library for Amazon DynamoDB

Geo
AWS IAM
Web Identity Federation

AWS Mobile SDKs

S3 Transfer Manager

Amazon S3

Amazon DynamoDB
Geo Library for Amazon DynamoDB
• Java Library
– Produces geo-hash indexes for use with DynamoDB

• Used in a middle-tier
– Helps to minimize client side networking and data manipulation

• Geo-tagged data
– Example: Store Locator
Geo Library for Amazon DynamoDB
Amazon DynamoDB

Geo
Geo Library for Amazon DynamoDB
•
•
•
•
•

getPoint
putPoint
deletePoint
queryRadius
queryRectangle
Geo Library for Amazon DynamoDB – Demo
• Picture Map from Mobile Photo Share
Geo Library for Amazon DynamoDB – Server Code
// Setup the Amazon DynamoDB Client
AmazonDynamoDBClient ddb = new AmazonDynamoDBClient( credentials );
ddb.setRegion( Region.getRegion( Regions.fromName( "us-east-1" ) ) );

// Configure the GeoDataManager
GeoDataManagerConfiguration config = new GeoDataManagerConfiguration( ddb, "Photos" );

// Create the GeoDataManager
GeoDataManager geoDataManager = new GeoDataManager( config );
Geo Library for Amazon DynamoDB – Server Code
// Requesting a geo-query server-side
GeoPoint centerPoint = new GeoPoint(requestObject.getDouble("lat"),
requestObject.getDouble("lng"));

// Identify attributes to return from DynamoDB table
List<String> attributesToGet = new ArrayList<String>();
attributesToGet.add( “title” );
attributesToGet.add( “userId” );
QueryRadiusRequest request = new QueryRadiusRequest( centerPoint, 5000 );
request.getQueryRequest().setAttributesToGet( attributesToGet );

// Submit the request through the Geo Library
QueryRadiusResult queryRadiusResult = geoDataManager.queryRadius( queryRadiusRequest );
Geo Library for Amazon DynamoDB – Server Code
// Analyzing the results
Map<String, AttributeValue> geoItems = geoQueryResult.getItem();
List<String> resultArray = new ArrayList<String>();
for (Map<String, AttributeValue> item : geoItems ) {
String userId = item.get( "userId” ).getS();
String title = item.get( “title” ).getS();
if ( filterUserId.equalsIgnoreCase( userId ) || title.startsWith( “public” ) ) {
resultArray.add( title );
}
}
return resultArray;
Geo Library for Amazon DynamoDB
• Learn More Here
– https://github.com/awslabs/dynamodb-geo
– http://mobile.awsblog.com/post/TxWTJOSLE7O3J2/

• Sample
– Provides an AWS Elastic Beanstalk middle tier
– iOS App
AWS Mobile SDKs
Geo Library for Amazon DynamoDB

Geo
AWS IAM
Web Identity Federation

AWS Mobile SDKs

S3 Transfer Manager

Amazon S3

Amazon DynamoDB
AWS Mobile SDKs – Demo
• Favorite Pictures from Mobile Photo Share
AWS Mobile SDKs
• Supports a number of AWS services
• Amazon DynamoDB, Amazon S3
• Amazon SQS, Amazon SNS, and more
• Fine-grained access control
• Segregates user data in DynamoDB
• Multiple Platforms
• iOS
• Android
AWS Mobile SDKs – Pattern
Consistent usage pattern
•
•
•
•

Create the service client
Create the request
Submit the request
Process the results
AWS Mobile SDKs – get favorites
// Create the client
AmazonDynamoDBClient *ddb = [[AmazonDynamoDBClient alloc] initWithCredentialsProvider:self.provider];

// Create the get request
DynamoDBAttributeValue *userId = [[DynamoDBAttributeValue alloc] initWithS:
[AmazonKeyChainWrapper userId]];
DynamoDBGetItemRequest *getItemRequest = [DynamoDBGetItemRequest new];
getItemRequest.tableName = DYNAMODB_TABLENAME;
getItemRequest.key = [NSMutableDictionary dictionaryWithObject:userId forKey:@"UserId"];
getItemRequest.consistentRead = YES;

// Submit the request
DynamoDBGetItemResponse *getItemResponse = [ddb getItem:getItemRequest];

// Process the results
DynamoDBAttributeValue *favorites = [getItemResponse.item valueForKey:@"Favorites"];
return favorites.sS;
AWS Mobile SDKs – put favorites
// Create the put request
DynamoDBPutItemRequest *putItemRequest = [DynamoDBPutItemRequest new];
putItemRequest.tableName = DYNAMODB_TABLENAME;
DynamoDBAttributeValue *userId = [DynamoDBAttributeValue new];
userId.s = theUserId;
DynamoDBAttributeValue *newFavorites = [DynamoDBAttributeValue new];
newFavorites.sS = theFavorites;
[putItemRequest.item setValue:userId forKey:@"UserId"];
[putItemRequest.item setValue:newFavorites forKey:@"Favorites"];
// Submit the request
[ddb putItem:putItemRequest];
AWS Mobile SDKs
• Learn More Here
– http://mobile.awsblog.com/post/Tx1U4RV2QI1MVWS/
– AWS SDK for Android
• http://aws.amazon.com/sdkforandroid

– AWS SDK for iOS
• http://aws.amazon.com/sdkforios
SNS Mobile Push
• Push Notifications
– Single Topic – Push to users all platforms
• Apple, Amazon, Google
• Push to individual devices

– Console for easy setup
• Certificates
• Keys
SNS Mobile Push – Register Device
Create a Platform Application
•
•
•

Specify the support push notification service (APNS, GCM, etc.)
Console
Platform Application ARN

// Registering a device
SNSCreatePlatformEndpointRequest *request = [SNSCreatePlatformEndpointRequest new];

request.customUserData = @"Here's the custom data for the user.";
request.token = deviceTokenString;
request.platformApplicationArn = @”The Platform Application ARN”;
[snsClient createPlatformEndpoint:request];
SNS Mobile Push
• Publish
– AWS Management Console
– AWS SDKs

• Learn More Here
– http://aws.typepad.com/aws/2013/08/push-notifications-to-mobiledevices-using-amazon-sns.html
– http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html
– MBL308 session (Friday 9:00 – 10:00 am)
• Engage Your Customers with Amazon SNS Mobile Push
AWS Mobile
• Mobile Development Center
– http://aws.amazon.com/mobile

• Get Help
– Forum
https://forums.aws.amazon.com/forum.jspa?forumID=88

– Stack Overflow
AWS Mobile – Next Steps
• Mobile Photo Share
– Server and iOS App
– https://github.com/awslabs/reinvent2013-mobile-photo-share

• Other samples and SDKs
– https://github.com/awslabs/aws-sdk-android-samples
– https://github.com/awslabs/aws-sdk-ios-samples
Connect
• Booth & Office Hours
– Thursday 4:30 – 5:30 pm
– Friday 9:00 – 10:00 am

• AWS Mobile Blog
– http://mobile.awsblog.com
• Twitter
– @awsformobile
Please give us your feedback on this
presentation

MBL402
As a thank you, we will select prize
winners daily for completed surveys!

More Related Content

What's hot

OpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using DjangoOpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using Django
David Lapsley
 
Test-driven Development with AEM
Test-driven Development with AEMTest-driven Development with AEM
Test-driven Development with AEM
Jan Wloka
 
Build Widgets
Build WidgetsBuild Widgets
Build Widgets
scottw
 
Unit Testing at Scale
Unit Testing at ScaleUnit Testing at Scale
Unit Testing at Scale
Jan Wloka
 
Improvements in OpenStack Integration for Application Developers
Improvements in OpenStack Integration for Application DevelopersImprovements in OpenStack Integration for Application Developers
Improvements in OpenStack Integration for Application Developers
Rico Lin
 
Autoscale a self-healing cluster in OpenStack with Heat
Autoscale a self-healing cluster in OpenStack with HeatAutoscale a self-healing cluster in OpenStack with Heat
Autoscale a self-healing cluster in OpenStack with Heat
Rico Lin
 
React lecture
React lectureReact lecture
React lecture
Christoffer Noring
 
Persisting Data on SQLite using Room
Persisting Data on SQLite using RoomPersisting Data on SQLite using Room
Persisting Data on SQLite using Room
Nelson Glauber Leal
 
Angular.js Primer in Aalto University
Angular.js Primer in Aalto UniversityAngular.js Primer in Aalto University
Angular.js Primer in Aalto University
SC5.io
 
Average- An android project
Average- An android projectAverage- An android project
Average- An android projectIpsit Dash
 
Implementing data sync apis for mibile apps @cloudconf
Implementing data sync apis for mibile apps @cloudconfImplementing data sync apis for mibile apps @cloudconf
Implementing data sync apis for mibile apps @cloudconf
Michele Orselli
 
Step by Step Personal Drive to One Drive Migration using SPMT
Step by Step Personal Drive to One Drive Migration using SPMTStep by Step Personal Drive to One Drive Migration using SPMT
Step by Step Personal Drive to One Drive Migration using SPMT
IT Industry
 
Using OpenStack With Fog
Using OpenStack With FogUsing OpenStack With Fog
Using OpenStack With Fog
Mike Hagedorn
 
Why realm?
Why realm?Why realm?
Dbabstraction
DbabstractionDbabstraction
Dbabstraction
Bruce McPherson
 
Server side data sync for mobile apps with silex
Server side data sync for mobile apps with silexServer side data sync for mobile apps with silex
Server side data sync for mobile apps with silex
Michele Orselli
 
Implementing Server Side Data Synchronization for Mobile Apps
Implementing Server Side Data Synchronization for Mobile AppsImplementing Server Side Data Synchronization for Mobile Apps
Implementing Server Side Data Synchronization for Mobile Apps
Michele Orselli
 
Server Side Swift with Swag
Server Side Swift with SwagServer Side Swift with Swag
Server Side Swift with Swag
Jens Ravens
 
Firebase ng2 zurich
Firebase ng2 zurichFirebase ng2 zurich
Firebase ng2 zurich
Christoffer Noring
 
Create a serverless architecture for data collection with Python and AWS
Create a serverless architecture for data collection with Python and AWSCreate a serverless architecture for data collection with Python and AWS
Create a serverless architecture for data collection with Python and AWS
David Santucci
 

What's hot (20)

OpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using DjangoOpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using Django
 
Test-driven Development with AEM
Test-driven Development with AEMTest-driven Development with AEM
Test-driven Development with AEM
 
Build Widgets
Build WidgetsBuild Widgets
Build Widgets
 
Unit Testing at Scale
Unit Testing at ScaleUnit Testing at Scale
Unit Testing at Scale
 
Improvements in OpenStack Integration for Application Developers
Improvements in OpenStack Integration for Application DevelopersImprovements in OpenStack Integration for Application Developers
Improvements in OpenStack Integration for Application Developers
 
Autoscale a self-healing cluster in OpenStack with Heat
Autoscale a self-healing cluster in OpenStack with HeatAutoscale a self-healing cluster in OpenStack with Heat
Autoscale a self-healing cluster in OpenStack with Heat
 
React lecture
React lectureReact lecture
React lecture
 
Persisting Data on SQLite using Room
Persisting Data on SQLite using RoomPersisting Data on SQLite using Room
Persisting Data on SQLite using Room
 
Angular.js Primer in Aalto University
Angular.js Primer in Aalto UniversityAngular.js Primer in Aalto University
Angular.js Primer in Aalto University
 
Average- An android project
Average- An android projectAverage- An android project
Average- An android project
 
Implementing data sync apis for mibile apps @cloudconf
Implementing data sync apis for mibile apps @cloudconfImplementing data sync apis for mibile apps @cloudconf
Implementing data sync apis for mibile apps @cloudconf
 
Step by Step Personal Drive to One Drive Migration using SPMT
Step by Step Personal Drive to One Drive Migration using SPMTStep by Step Personal Drive to One Drive Migration using SPMT
Step by Step Personal Drive to One Drive Migration using SPMT
 
Using OpenStack With Fog
Using OpenStack With FogUsing OpenStack With Fog
Using OpenStack With Fog
 
Why realm?
Why realm?Why realm?
Why realm?
 
Dbabstraction
DbabstractionDbabstraction
Dbabstraction
 
Server side data sync for mobile apps with silex
Server side data sync for mobile apps with silexServer side data sync for mobile apps with silex
Server side data sync for mobile apps with silex
 
Implementing Server Side Data Synchronization for Mobile Apps
Implementing Server Side Data Synchronization for Mobile AppsImplementing Server Side Data Synchronization for Mobile Apps
Implementing Server Side Data Synchronization for Mobile Apps
 
Server Side Swift with Swag
Server Side Swift with SwagServer Side Swift with Swag
Server Side Swift with Swag
 
Firebase ng2 zurich
Firebase ng2 zurichFirebase ng2 zurich
Firebase ng2 zurich
 
Create a serverless architecture for data collection with Python and AWS
Create a serverless architecture for data collection with Python and AWSCreate a serverless architecture for data collection with Python and AWS
Create a serverless architecture for data collection with Python and AWS
 

Viewers also liked

(MBL310) Workshop: Build iOS Apps Using AWS Mobile Services | AWS re:Invent 2014
(MBL310) Workshop: Build iOS Apps Using AWS Mobile Services | AWS re:Invent 2014(MBL310) Workshop: Build iOS Apps Using AWS Mobile Services | AWS re:Invent 2014
(MBL310) Workshop: Build iOS Apps Using AWS Mobile Services | AWS re:Invent 2014
Amazon Web Services
 
Globant and Big Data on AWS
Globant and Big Data on AWSGlobant and Big Data on AWS
Globant and Big Data on AWS
Amazon Web Services LATAM
 
AWS Mobile Hub Overview
AWS Mobile Hub OverviewAWS Mobile Hub Overview
AWS Mobile Hub Overview
Amazon Web Services
 
AWS Mobile Hub - Building Mobile Apps with AWS
AWS Mobile Hub - Building Mobile Apps with AWSAWS Mobile Hub - Building Mobile Apps with AWS
AWS Mobile Hub - Building Mobile Apps with AWS
Amazon Web Services
 
Build Your Mobile App with AWS Mobile Services
Build Your Mobile App with AWS Mobile ServicesBuild Your Mobile App with AWS Mobile Services
Build Your Mobile App with AWS Mobile Services
Amazon Web Services
 
The art of infrastructure elasticity
The art of infrastructure elasticityThe art of infrastructure elasticity
The art of infrastructure elasticity
Harish Ganesan
 
Real-time Data Processing Using AWS Lambda
Real-time Data Processing Using AWS LambdaReal-time Data Processing Using AWS Lambda
Real-time Data Processing Using AWS Lambda
Amazon Web Services
 
Auto scaling using Amazon Web Services ( AWS )
Auto scaling using Amazon Web Services ( AWS )Auto scaling using Amazon Web Services ( AWS )
Auto scaling using Amazon Web Services ( AWS )
Harish Ganesan
 
Deep-Dive: Building Native iOS and Android Application with the AWS Mobile SDK
Deep-Dive: Building Native iOS and Android Application with the AWS Mobile SDKDeep-Dive: Building Native iOS and Android Application with the AWS Mobile SDK
Deep-Dive: Building Native iOS and Android Application with the AWS Mobile SDK
Amazon Web Services
 
Build Mobile Apps using AWS SDKs and AWS Mobile Hub
Build Mobile Apps using AWS SDKs and AWS Mobile HubBuild Mobile Apps using AWS SDKs and AWS Mobile Hub
Build Mobile Apps using AWS SDKs and AWS Mobile Hub
Amazon Web Services
 
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
Amazon Web Services
 
Mobile Web and App Development with AWS
Mobile Web and App Development with AWSMobile Web and App Development with AWS
Mobile Web and App Development with AWS
Amazon Web Services
 
Architecting an Highly Available and Scalable WordPress Site in AWS
Architecting an Highly Available and Scalable WordPress Site in AWS Architecting an Highly Available and Scalable WordPress Site in AWS
Architecting an Highly Available and Scalable WordPress Site in AWS
Harish Ganesan
 
AWS - Managing Your Cloud Assets 2013
AWS - Managing Your Cloud Assets 2013AWS - Managing Your Cloud Assets 2013
AWS - Managing Your Cloud Assets 2013
Amazon Web Services
 
Time to Science, Time to Results: Accelerating Research with AWS - AWS Sympos...
Time to Science, Time to Results: Accelerating Research with AWS - AWS Sympos...Time to Science, Time to Results: Accelerating Research with AWS - AWS Sympos...
Time to Science, Time to Results: Accelerating Research with AWS - AWS Sympos...
Amazon Web Services
 
Your First Week on Amazon Web Services
Your First Week on Amazon Web ServicesYour First Week on Amazon Web Services
Your First Week on Amazon Web Services
Amazon Web Services
 
Using Security to Build with Confidence in AWS
Using Security to Build with Confidence in AWSUsing Security to Build with Confidence in AWS
Using Security to Build with Confidence in AWS
Amazon Web Services
 
Secure Hadoop as a Service - Session Sponsored by Intel
Secure Hadoop as a Service - Session Sponsored by IntelSecure Hadoop as a Service - Session Sponsored by Intel
Secure Hadoop as a Service - Session Sponsored by Intel
Amazon Web Services
 
Enterprise Empowerment & Innovation
Enterprise Empowerment & InnovationEnterprise Empowerment & Innovation
Enterprise Empowerment & Innovation
Amazon Web Services
 
“Spikey Workloads” Emergency Management in the Cloud
“Spikey Workloads” Emergency Management in the Cloud“Spikey Workloads” Emergency Management in the Cloud
“Spikey Workloads” Emergency Management in the Cloud
Amazon Web Services
 

Viewers also liked (20)

(MBL310) Workshop: Build iOS Apps Using AWS Mobile Services | AWS re:Invent 2014
(MBL310) Workshop: Build iOS Apps Using AWS Mobile Services | AWS re:Invent 2014(MBL310) Workshop: Build iOS Apps Using AWS Mobile Services | AWS re:Invent 2014
(MBL310) Workshop: Build iOS Apps Using AWS Mobile Services | AWS re:Invent 2014
 
Globant and Big Data on AWS
Globant and Big Data on AWSGlobant and Big Data on AWS
Globant and Big Data on AWS
 
AWS Mobile Hub Overview
AWS Mobile Hub OverviewAWS Mobile Hub Overview
AWS Mobile Hub Overview
 
AWS Mobile Hub - Building Mobile Apps with AWS
AWS Mobile Hub - Building Mobile Apps with AWSAWS Mobile Hub - Building Mobile Apps with AWS
AWS Mobile Hub - Building Mobile Apps with AWS
 
Build Your Mobile App with AWS Mobile Services
Build Your Mobile App with AWS Mobile ServicesBuild Your Mobile App with AWS Mobile Services
Build Your Mobile App with AWS Mobile Services
 
The art of infrastructure elasticity
The art of infrastructure elasticityThe art of infrastructure elasticity
The art of infrastructure elasticity
 
Real-time Data Processing Using AWS Lambda
Real-time Data Processing Using AWS LambdaReal-time Data Processing Using AWS Lambda
Real-time Data Processing Using AWS Lambda
 
Auto scaling using Amazon Web Services ( AWS )
Auto scaling using Amazon Web Services ( AWS )Auto scaling using Amazon Web Services ( AWS )
Auto scaling using Amazon Web Services ( AWS )
 
Deep-Dive: Building Native iOS and Android Application with the AWS Mobile SDK
Deep-Dive: Building Native iOS and Android Application with the AWS Mobile SDKDeep-Dive: Building Native iOS and Android Application with the AWS Mobile SDK
Deep-Dive: Building Native iOS and Android Application with the AWS Mobile SDK
 
Build Mobile Apps using AWS SDKs and AWS Mobile Hub
Build Mobile Apps using AWS SDKs and AWS Mobile HubBuild Mobile Apps using AWS SDKs and AWS Mobile Hub
Build Mobile Apps using AWS SDKs and AWS Mobile Hub
 
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
 
Mobile Web and App Development with AWS
Mobile Web and App Development with AWSMobile Web and App Development with AWS
Mobile Web and App Development with AWS
 
Architecting an Highly Available and Scalable WordPress Site in AWS
Architecting an Highly Available and Scalable WordPress Site in AWS Architecting an Highly Available and Scalable WordPress Site in AWS
Architecting an Highly Available and Scalable WordPress Site in AWS
 
AWS - Managing Your Cloud Assets 2013
AWS - Managing Your Cloud Assets 2013AWS - Managing Your Cloud Assets 2013
AWS - Managing Your Cloud Assets 2013
 
Time to Science, Time to Results: Accelerating Research with AWS - AWS Sympos...
Time to Science, Time to Results: Accelerating Research with AWS - AWS Sympos...Time to Science, Time to Results: Accelerating Research with AWS - AWS Sympos...
Time to Science, Time to Results: Accelerating Research with AWS - AWS Sympos...
 
Your First Week on Amazon Web Services
Your First Week on Amazon Web ServicesYour First Week on Amazon Web Services
Your First Week on Amazon Web Services
 
Using Security to Build with Confidence in AWS
Using Security to Build with Confidence in AWSUsing Security to Build with Confidence in AWS
Using Security to Build with Confidence in AWS
 
Secure Hadoop as a Service - Session Sponsored by Intel
Secure Hadoop as a Service - Session Sponsored by IntelSecure Hadoop as a Service - Session Sponsored by Intel
Secure Hadoop as a Service - Session Sponsored by Intel
 
Enterprise Empowerment & Innovation
Enterprise Empowerment & InnovationEnterprise Empowerment & Innovation
Enterprise Empowerment & Innovation
 
“Spikey Workloads” Emergency Management in the Cloud
“Spikey Workloads” Emergency Management in the Cloud“Spikey Workloads” Emergency Management in the Cloud
“Spikey Workloads” Emergency Management in the Cloud
 

Similar to Building Cloud-Backed Mobile Apps (MBL402) | AWS re:Invent 2013

Converting Your Mobile App to the Mobile Cloud
Converting Your Mobile App to the Mobile CloudConverting Your Mobile App to the Mobile Cloud
Converting Your Mobile App to the Mobile Cloud
Roger Brinkley
 
【AWS Developers Meetup】RESTful APIをChaliceで紐解く
【AWS Developers Meetup】RESTful APIをChaliceで紐解く【AWS Developers Meetup】RESTful APIをChaliceで紐解く
【AWS Developers Meetup】RESTful APIをChaliceで紐解く
Amazon Web Services Japan
 
DevOps Fest 2019. Alex Casalboni. Configuration management and service discov...
DevOps Fest 2019. Alex Casalboni. Configuration management and service discov...DevOps Fest 2019. Alex Casalboni. Configuration management and service discov...
DevOps Fest 2019. Alex Casalboni. Configuration management and service discov...
DevOps_Fest
 
Getting your app ready for android n
Getting your app ready for android nGetting your app ready for android n
Getting your app ready for android n
Sercan Yusuf
 
IndexedDB and Push Notifications in Progressive Web Apps
IndexedDB and Push Notifications in Progressive Web AppsIndexedDB and Push Notifications in Progressive Web Apps
IndexedDB and Push Notifications in Progressive Web Apps
Adégòkè Obasá
 
Amazon Web Services for PHP Developers
Amazon Web Services for PHP DevelopersAmazon Web Services for PHP Developers
Amazon Web Services for PHP Developers
Jeremy Lindblom
 
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
崇之 清水
 
Cloud Function For Firebase - GITS
Cloud Function For Firebase - GITSCloud Function For Firebase - GITS
Cloud Function For Firebase - GITS
Yatno Sudar
 
Developing iOS REST Applications
Developing iOS REST ApplicationsDeveloping iOS REST Applications
Developing iOS REST Applications
lmrei
 
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
 Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
AWS Chicago
 
Gae Meets Django
Gae Meets DjangoGae Meets Django
Gae Meets Djangofool2nd
 
Alex Casalboni - Configuration management and service discovery - Codemotion ...
Alex Casalboni - Configuration management and service discovery - Codemotion ...Alex Casalboni - Configuration management and service discovery - Codemotion ...
Alex Casalboni - Configuration management and service discovery - Codemotion ...
Codemotion
 
MBL302 Using the AWS Mobile SDKs - AWS re: Invent 2012
MBL302 Using the AWS Mobile SDKs - AWS re: Invent 2012MBL302 Using the AWS Mobile SDKs - AWS re: Invent 2012
MBL302 Using the AWS Mobile SDKs - AWS re: Invent 2012
Amazon Web Services
 
Firebase overview
Firebase overviewFirebase overview
Firebase overview
Maksym Davydov
 
정오의 데이트 for iOS 코드 정리
정오의 데이트 for iOS 코드 정리정오의 데이트 for iOS 코드 정리
정오의 데이트 for iOS 코드 정리
태준 김
 
Sebastian Schmidt, Rachel Myers - How To Go Serverless And Not Violate The GD...
Sebastian Schmidt, Rachel Myers - How To Go Serverless And Not Violate The GD...Sebastian Schmidt, Rachel Myers - How To Go Serverless And Not Violate The GD...
Sebastian Schmidt, Rachel Myers - How To Go Serverless And Not Violate The GD...
Codemotion
 
Basics of AngularJS
Basics of AngularJSBasics of AngularJS
Basics of AngularJS
Filip Janevski
 
Android architecture components with cloud firestore
Android architecture components with cloud firestoreAndroid architecture components with cloud firestore
Android architecture components with cloud firestore
Pankaj Rai
 
Symfony2 from the Trenches
Symfony2 from the TrenchesSymfony2 from the Trenches
Symfony2 from the Trenches
Jonathan Wage
 
We All Live in a Yellow (Serverless) Submarine
We All Live in a Yellow (Serverless) SubmarineWe All Live in a Yellow (Serverless) Submarine
We All Live in a Yellow (Serverless) Submarine
FITC
 

Similar to Building Cloud-Backed Mobile Apps (MBL402) | AWS re:Invent 2013 (20)

Converting Your Mobile App to the Mobile Cloud
Converting Your Mobile App to the Mobile CloudConverting Your Mobile App to the Mobile Cloud
Converting Your Mobile App to the Mobile Cloud
 
【AWS Developers Meetup】RESTful APIをChaliceで紐解く
【AWS Developers Meetup】RESTful APIをChaliceで紐解く【AWS Developers Meetup】RESTful APIをChaliceで紐解く
【AWS Developers Meetup】RESTful APIをChaliceで紐解く
 
DevOps Fest 2019. Alex Casalboni. Configuration management and service discov...
DevOps Fest 2019. Alex Casalboni. Configuration management and service discov...DevOps Fest 2019. Alex Casalboni. Configuration management and service discov...
DevOps Fest 2019. Alex Casalboni. Configuration management and service discov...
 
Getting your app ready for android n
Getting your app ready for android nGetting your app ready for android n
Getting your app ready for android n
 
IndexedDB and Push Notifications in Progressive Web Apps
IndexedDB and Push Notifications in Progressive Web AppsIndexedDB and Push Notifications in Progressive Web Apps
IndexedDB and Push Notifications in Progressive Web Apps
 
Amazon Web Services for PHP Developers
Amazon Web Services for PHP DevelopersAmazon Web Services for PHP Developers
Amazon Web Services for PHP Developers
 
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
 
Cloud Function For Firebase - GITS
Cloud Function For Firebase - GITSCloud Function For Firebase - GITS
Cloud Function For Firebase - GITS
 
Developing iOS REST Applications
Developing iOS REST ApplicationsDeveloping iOS REST Applications
Developing iOS REST Applications
 
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
 Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
 
Gae Meets Django
Gae Meets DjangoGae Meets Django
Gae Meets Django
 
Alex Casalboni - Configuration management and service discovery - Codemotion ...
Alex Casalboni - Configuration management and service discovery - Codemotion ...Alex Casalboni - Configuration management and service discovery - Codemotion ...
Alex Casalboni - Configuration management and service discovery - Codemotion ...
 
MBL302 Using the AWS Mobile SDKs - AWS re: Invent 2012
MBL302 Using the AWS Mobile SDKs - AWS re: Invent 2012MBL302 Using the AWS Mobile SDKs - AWS re: Invent 2012
MBL302 Using the AWS Mobile SDKs - AWS re: Invent 2012
 
Firebase overview
Firebase overviewFirebase overview
Firebase overview
 
정오의 데이트 for iOS 코드 정리
정오의 데이트 for iOS 코드 정리정오의 데이트 for iOS 코드 정리
정오의 데이트 for iOS 코드 정리
 
Sebastian Schmidt, Rachel Myers - How To Go Serverless And Not Violate The GD...
Sebastian Schmidt, Rachel Myers - How To Go Serverless And Not Violate The GD...Sebastian Schmidt, Rachel Myers - How To Go Serverless And Not Violate The GD...
Sebastian Schmidt, Rachel Myers - How To Go Serverless And Not Violate The GD...
 
Basics of AngularJS
Basics of AngularJSBasics of AngularJS
Basics of AngularJS
 
Android architecture components with cloud firestore
Android architecture components with cloud firestoreAndroid architecture components with cloud firestore
Android architecture components with cloud firestore
 
Symfony2 from the Trenches
Symfony2 from the TrenchesSymfony2 from the Trenches
Symfony2 from the Trenches
 
We All Live in a Yellow (Serverless) Submarine
We All Live in a Yellow (Serverless) SubmarineWe All Live in a Yellow (Serverless) Submarine
We All Live in a Yellow (Serverless) Submarine
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
Amazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
Amazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
Amazon Web Services
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Amazon Web Services
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
Amazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
Amazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Amazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
Amazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Amazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
Amazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Recently uploaded

ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdfModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
fisherameliaisabella
 
CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptxCADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
fakeloginn69
 
Buy Verified PayPal Account | Buy Google 5 Star Reviews
Buy Verified PayPal Account | Buy Google 5 Star ReviewsBuy Verified PayPal Account | Buy Google 5 Star Reviews
Buy Verified PayPal Account | Buy Google 5 Star Reviews
usawebmarket
 
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
taqyed
 
Kseniya Leshchenko: Shared development support service model as the way to ma...
Kseniya Leshchenko: Shared development support service model as the way to ma...Kseniya Leshchenko: Shared development support service model as the way to ma...
Kseniya Leshchenko: Shared development support service model as the way to ma...
Lviv Startup Club
 
Recruiting in the Digital Age: A Social Media Masterclass
Recruiting in the Digital Age: A Social Media MasterclassRecruiting in the Digital Age: A Social Media Masterclass
Recruiting in the Digital Age: A Social Media Masterclass
LuanWise
 
Exploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social DreamingExploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social Dreaming
Nicola Wreford-Howard
 
amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05
marketing317746
 
Cracking the Workplace Discipline Code Main.pptx
Cracking the Workplace Discipline Code Main.pptxCracking the Workplace Discipline Code Main.pptx
Cracking the Workplace Discipline Code Main.pptx
Workforce Group
 
Improving profitability for small business
Improving profitability for small businessImproving profitability for small business
Improving profitability for small business
Ben Wann
 
ikea_woodgreen_petscharity_dog-alogue_digital.pdf
ikea_woodgreen_petscharity_dog-alogue_digital.pdfikea_woodgreen_petscharity_dog-alogue_digital.pdf
ikea_woodgreen_petscharity_dog-alogue_digital.pdf
agatadrynko
 
Premium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern BusinessesPremium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern Businesses
SynapseIndia
 
Search Disrupted Google’s Leaked Documents Rock the SEO World.pdf
Search Disrupted Google’s Leaked Documents Rock the SEO World.pdfSearch Disrupted Google’s Leaked Documents Rock the SEO World.pdf
Search Disrupted Google’s Leaked Documents Rock the SEO World.pdf
Arihant Webtech Pvt. Ltd
 
Enterprise Excellence is Inclusive Excellence.pdf
Enterprise Excellence is Inclusive Excellence.pdfEnterprise Excellence is Inclusive Excellence.pdf
Enterprise Excellence is Inclusive Excellence.pdf
KaiNexus
 
Mastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnapMastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnap
Norma Mushkat Gaffin
 
5 Things You Need To Know Before Hiring a Videographer
5 Things You Need To Know Before Hiring a Videographer5 Things You Need To Know Before Hiring a Videographer
5 Things You Need To Know Before Hiring a Videographer
ofm712785
 
Brand Analysis for an artist named Struan
Brand Analysis for an artist named StruanBrand Analysis for an artist named Struan
Brand Analysis for an artist named Struan
sarahvanessa51503
 
Business Valuation Principles for Entrepreneurs
Business Valuation Principles for EntrepreneursBusiness Valuation Principles for Entrepreneurs
Business Valuation Principles for Entrepreneurs
Ben Wann
 
Call 7735293663 Satta Matka Dpboss Matka Guessing Satta batta Matka 420 Satta...
Call 7735293663 Satta Matka Dpboss Matka Guessing Satta batta Matka 420 Satta...Call 7735293663 Satta Matka Dpboss Matka Guessing Satta batta Matka 420 Satta...
Call 7735293663 Satta Matka Dpboss Matka Guessing Satta batta Matka 420 Satta...
bosssp10
 
LA HUG - Video Testimonials with Chynna Morgan - June 2024
LA HUG - Video Testimonials with Chynna Morgan - June 2024LA HUG - Video Testimonials with Chynna Morgan - June 2024
LA HUG - Video Testimonials with Chynna Morgan - June 2024
Lital Barkan
 

Recently uploaded (20)

ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdfModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
 
CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptxCADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
 
Buy Verified PayPal Account | Buy Google 5 Star Reviews
Buy Verified PayPal Account | Buy Google 5 Star ReviewsBuy Verified PayPal Account | Buy Google 5 Star Reviews
Buy Verified PayPal Account | Buy Google 5 Star Reviews
 
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
 
Kseniya Leshchenko: Shared development support service model as the way to ma...
Kseniya Leshchenko: Shared development support service model as the way to ma...Kseniya Leshchenko: Shared development support service model as the way to ma...
Kseniya Leshchenko: Shared development support service model as the way to ma...
 
Recruiting in the Digital Age: A Social Media Masterclass
Recruiting in the Digital Age: A Social Media MasterclassRecruiting in the Digital Age: A Social Media Masterclass
Recruiting in the Digital Age: A Social Media Masterclass
 
Exploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social DreamingExploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social Dreaming
 
amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05
 
Cracking the Workplace Discipline Code Main.pptx
Cracking the Workplace Discipline Code Main.pptxCracking the Workplace Discipline Code Main.pptx
Cracking the Workplace Discipline Code Main.pptx
 
Improving profitability for small business
Improving profitability for small businessImproving profitability for small business
Improving profitability for small business
 
ikea_woodgreen_petscharity_dog-alogue_digital.pdf
ikea_woodgreen_petscharity_dog-alogue_digital.pdfikea_woodgreen_petscharity_dog-alogue_digital.pdf
ikea_woodgreen_petscharity_dog-alogue_digital.pdf
 
Premium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern BusinessesPremium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern Businesses
 
Search Disrupted Google’s Leaked Documents Rock the SEO World.pdf
Search Disrupted Google’s Leaked Documents Rock the SEO World.pdfSearch Disrupted Google’s Leaked Documents Rock the SEO World.pdf
Search Disrupted Google’s Leaked Documents Rock the SEO World.pdf
 
Enterprise Excellence is Inclusive Excellence.pdf
Enterprise Excellence is Inclusive Excellence.pdfEnterprise Excellence is Inclusive Excellence.pdf
Enterprise Excellence is Inclusive Excellence.pdf
 
Mastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnapMastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnap
 
5 Things You Need To Know Before Hiring a Videographer
5 Things You Need To Know Before Hiring a Videographer5 Things You Need To Know Before Hiring a Videographer
5 Things You Need To Know Before Hiring a Videographer
 
Brand Analysis for an artist named Struan
Brand Analysis for an artist named StruanBrand Analysis for an artist named Struan
Brand Analysis for an artist named Struan
 
Business Valuation Principles for Entrepreneurs
Business Valuation Principles for EntrepreneursBusiness Valuation Principles for Entrepreneurs
Business Valuation Principles for Entrepreneurs
 
Call 7735293663 Satta Matka Dpboss Matka Guessing Satta batta Matka 420 Satta...
Call 7735293663 Satta Matka Dpboss Matka Guessing Satta batta Matka 420 Satta...Call 7735293663 Satta Matka Dpboss Matka Guessing Satta batta Matka 420 Satta...
Call 7735293663 Satta Matka Dpboss Matka Guessing Satta batta Matka 420 Satta...
 
LA HUG - Video Testimonials with Chynna Morgan - June 2024
LA HUG - Video Testimonials with Chynna Morgan - June 2024LA HUG - Video Testimonials with Chynna Morgan - June 2024
LA HUG - Video Testimonials with Chynna Morgan - June 2024
 

Building Cloud-Backed Mobile Apps (MBL402) | AWS re:Invent 2013

  • 1. Building Cloud-backed Mobile Apps Glenn Dierkes, AWS Mobile November 13, 2013 © 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
  • 2. Session Goals • Cloud services, great apps • Apps today – – – – Social Logins Geo Tagging File and Data Storage Push Notifications
  • 3. AWS Mobile Landscape User Data Social Login Mobile Push File Storage Amazon DynamoDB AWS IAM Amazon S3 Amazon SNS
  • 4. Demo of the Mobile Photo Share sample App An app to share geo-tagged photos with others.
  • 5. Mobile Photo Share – Architecture Geo Library for Amazon DynamoDB Geo AWS IAM Web Identity Federation AWS Mobile SDKs S3 Transfer Manager Amazon S3 Amazon DynamoDB
  • 6. Web Identity Federation Geo Library for Amazon DynamoDB Geo AWS IAM Web Identity Federation AWS Mobile SDKs S3 Transfer Manager Amazon S3 Amazon DynamoDB
  • 7. Web Identity Auth Flow Access Policy Mobile Client ${id} Amazon S3 Bucket AWS STS AWS Cloud
  • 8. Web Identity Federation • Social Logins – Managing Users is hard – Allow users to connect with their existing accounts. • Facebook, Google, and Amazon. – Provides restricted temporary AWS Credentials • Policy variables • Don’t put credentials in your app’s code (can’t rotate, not secure) • Learn More – SEC401 session with Bob Kinney (Thursday 1:30 – 2:30 pm) – https://mobile.awsblog.com/post/Tx3UKF4SV4V0LV3
  • 9. S3 Transfer Manager Geo Library for Amazon DynamoDB Geo AWS IAM Web Identity Federation AWS Mobile SDKs S3 Transfer Manager Amazon S3 Amazon DynamoDB
  • 10. Amazon S3 Transfer Manager • Upload/Download files to/from Amazon S3 – Pictures – Videos – Music • Pause, Resume, Cancel • Efficiency and failure tolerance • No backend
  • 11. Amazon S3 Transfer Manager – Demo • Upload Photo Page from Mobile Photo Share • View Photo Page from Mobile Photo Share
  • 12. Amazon S3 Multipart Upload -(void)multipartUpload:(NSData*)dataToUpload inBucket:(NSString*)bucket forKey:(NSString*)key { S3InitiateMultipartUploadRequest *initReq = [[S3InitiateMultipartUploadRequest alloc] initWithKey:key inBucket:bucket]; S3MultipartUpload *upload = [s3 initiateMultipartUpload:initReq].multipartUpload; S3CompleteMultipartUploadRequest *compReq = [[S3CompleteMultipartUploadRequest alloc] initWithMultipartUpload:upload]; int numberOfParts = [self countParts:dataToUpload]; for ( int part = 0; part < numberOfParts; part++ ) { NSData *dataForPart = [self getPart:part fromData:dataToUpload]; S3UploadPartRequest *upReq = [[S3UploadPartRequest alloc] initWithMultipartUpload:upload]; upReq.partNumber = ( part + 1 ); upReq.contentLength = [dataForPart length]; upReq.stream = stream; S3UploadPartResponse *response = [s3 uploadPart:upReq]; [compReq addPartWithPartNumber:( part + 1 ) withETag:response.etag]; } [s3 completeMultipartUpload:compReq]; }
  • 13. Amazon S3 Multipart Upload (cont.) -(NSData*)getPart:(int)part fromData:(NSData*)fullData { NSRange range; range.length = PART_SIZE; range.location = part * PART_SIZE; int maxByte = (part + 1) * PART_SIZE; if ( [fullData length] < maxByte ) { range.length = [fullData length] - range.location; } return [fullData subdataWithRange:range]; } -(int)countParts:(NSData*)fullData { int q = (int)([fullData length] / PART_SIZE); int r = (int)([fullData length] % PART_SIZE); return ( r == 0 ) ? q : q + 1; }
  • 14. Amazon S3 Transfer Manager – Code // Creating the transfer manager self.transferManager = [S3TransferManager new]; self.transferManager.s3 = s3client; // Upload image [self.transferManager uploadFile:fileName bucket:bucketName key:objectName]; // Download image [self.transferManager downloadFile:fileName bucket:bucketName key:objectName]; // Pause, Resume, Cancel [self.transferManager pauseAllTransfers]; [self.transferManager resumeAllTransfers]; [self.transferManager cancelAllTransfers];
  • 15. Amazon S3 Transfer Manager • Learn More – http://mobile.awsblog.com/post/TxIRFEQTW9XU8G – http://aws.amazon.com/mobile/
  • 16. Geo Library for Amazon DynamoDB Geo Library for Amazon DynamoDB Geo AWS IAM Web Identity Federation AWS Mobile SDKs S3 Transfer Manager Amazon S3 Amazon DynamoDB
  • 17. Geo Library for Amazon DynamoDB • Java Library – Produces geo-hash indexes for use with DynamoDB • Used in a middle-tier – Helps to minimize client side networking and data manipulation • Geo-tagged data – Example: Store Locator
  • 18. Geo Library for Amazon DynamoDB Amazon DynamoDB Geo Geo Library for Amazon DynamoDB • • • • • getPoint putPoint deletePoint queryRadius queryRectangle
  • 19. Geo Library for Amazon DynamoDB – Demo • Picture Map from Mobile Photo Share
  • 20. Geo Library for Amazon DynamoDB – Server Code // Setup the Amazon DynamoDB Client AmazonDynamoDBClient ddb = new AmazonDynamoDBClient( credentials ); ddb.setRegion( Region.getRegion( Regions.fromName( "us-east-1" ) ) ); // Configure the GeoDataManager GeoDataManagerConfiguration config = new GeoDataManagerConfiguration( ddb, "Photos" ); // Create the GeoDataManager GeoDataManager geoDataManager = new GeoDataManager( config );
  • 21. Geo Library for Amazon DynamoDB – Server Code // Requesting a geo-query server-side GeoPoint centerPoint = new GeoPoint(requestObject.getDouble("lat"), requestObject.getDouble("lng")); // Identify attributes to return from DynamoDB table List<String> attributesToGet = new ArrayList<String>(); attributesToGet.add( “title” ); attributesToGet.add( “userId” ); QueryRadiusRequest request = new QueryRadiusRequest( centerPoint, 5000 ); request.getQueryRequest().setAttributesToGet( attributesToGet ); // Submit the request through the Geo Library QueryRadiusResult queryRadiusResult = geoDataManager.queryRadius( queryRadiusRequest );
  • 22. Geo Library for Amazon DynamoDB – Server Code // Analyzing the results Map<String, AttributeValue> geoItems = geoQueryResult.getItem(); List<String> resultArray = new ArrayList<String>(); for (Map<String, AttributeValue> item : geoItems ) { String userId = item.get( "userId” ).getS(); String title = item.get( “title” ).getS(); if ( filterUserId.equalsIgnoreCase( userId ) || title.startsWith( “public” ) ) { resultArray.add( title ); } } return resultArray;
  • 23. Geo Library for Amazon DynamoDB • Learn More Here – https://github.com/awslabs/dynamodb-geo – http://mobile.awsblog.com/post/TxWTJOSLE7O3J2/ • Sample – Provides an AWS Elastic Beanstalk middle tier – iOS App
  • 24. AWS Mobile SDKs Geo Library for Amazon DynamoDB Geo AWS IAM Web Identity Federation AWS Mobile SDKs S3 Transfer Manager Amazon S3 Amazon DynamoDB
  • 25. AWS Mobile SDKs – Demo • Favorite Pictures from Mobile Photo Share
  • 26. AWS Mobile SDKs • Supports a number of AWS services • Amazon DynamoDB, Amazon S3 • Amazon SQS, Amazon SNS, and more • Fine-grained access control • Segregates user data in DynamoDB • Multiple Platforms • iOS • Android
  • 27. AWS Mobile SDKs – Pattern Consistent usage pattern • • • • Create the service client Create the request Submit the request Process the results
  • 28. AWS Mobile SDKs – get favorites // Create the client AmazonDynamoDBClient *ddb = [[AmazonDynamoDBClient alloc] initWithCredentialsProvider:self.provider]; // Create the get request DynamoDBAttributeValue *userId = [[DynamoDBAttributeValue alloc] initWithS: [AmazonKeyChainWrapper userId]]; DynamoDBGetItemRequest *getItemRequest = [DynamoDBGetItemRequest new]; getItemRequest.tableName = DYNAMODB_TABLENAME; getItemRequest.key = [NSMutableDictionary dictionaryWithObject:userId forKey:@"UserId"]; getItemRequest.consistentRead = YES; // Submit the request DynamoDBGetItemResponse *getItemResponse = [ddb getItem:getItemRequest]; // Process the results DynamoDBAttributeValue *favorites = [getItemResponse.item valueForKey:@"Favorites"]; return favorites.sS;
  • 29. AWS Mobile SDKs – put favorites // Create the put request DynamoDBPutItemRequest *putItemRequest = [DynamoDBPutItemRequest new]; putItemRequest.tableName = DYNAMODB_TABLENAME; DynamoDBAttributeValue *userId = [DynamoDBAttributeValue new]; userId.s = theUserId; DynamoDBAttributeValue *newFavorites = [DynamoDBAttributeValue new]; newFavorites.sS = theFavorites; [putItemRequest.item setValue:userId forKey:@"UserId"]; [putItemRequest.item setValue:newFavorites forKey:@"Favorites"]; // Submit the request [ddb putItem:putItemRequest];
  • 30. AWS Mobile SDKs • Learn More Here – http://mobile.awsblog.com/post/Tx1U4RV2QI1MVWS/ – AWS SDK for Android • http://aws.amazon.com/sdkforandroid – AWS SDK for iOS • http://aws.amazon.com/sdkforios
  • 31. SNS Mobile Push • Push Notifications – Single Topic – Push to users all platforms • Apple, Amazon, Google • Push to individual devices – Console for easy setup • Certificates • Keys
  • 32. SNS Mobile Push – Register Device Create a Platform Application • • • Specify the support push notification service (APNS, GCM, etc.) Console Platform Application ARN // Registering a device SNSCreatePlatformEndpointRequest *request = [SNSCreatePlatformEndpointRequest new]; request.customUserData = @"Here's the custom data for the user."; request.token = deviceTokenString; request.platformApplicationArn = @”The Platform Application ARN”; [snsClient createPlatformEndpoint:request];
  • 33. SNS Mobile Push • Publish – AWS Management Console – AWS SDKs • Learn More Here – http://aws.typepad.com/aws/2013/08/push-notifications-to-mobiledevices-using-amazon-sns.html – http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html – MBL308 session (Friday 9:00 – 10:00 am) • Engage Your Customers with Amazon SNS Mobile Push
  • 34. AWS Mobile • Mobile Development Center – http://aws.amazon.com/mobile • Get Help – Forum https://forums.aws.amazon.com/forum.jspa?forumID=88 – Stack Overflow
  • 35. AWS Mobile – Next Steps • Mobile Photo Share – Server and iOS App – https://github.com/awslabs/reinvent2013-mobile-photo-share • Other samples and SDKs – https://github.com/awslabs/aws-sdk-android-samples – https://github.com/awslabs/aws-sdk-ios-samples
  • 36. Connect • Booth & Office Hours – Thursday 4:30 – 5:30 pm – Friday 9:00 – 10:00 am • AWS Mobile Blog – http://mobile.awsblog.com • Twitter – @awsformobile
  • 37. Please give us your feedback on this presentation MBL402 As a thank you, we will select prize winners daily for completed surveys!