Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rethinking the mobile universe with Amazon Web ...

Rethinking the mobile universe with Amazon Web Services

Simone Brunozzi

January 24, 2013
Tweet

More Decks by Simone Brunozzi

Other Decks in Technology

Transcript

  1. Simone Brunozzi ( @simon ) Senior Technology Evangelist, Amazon Web

    Services Rethinking the mobile universe with Amazon Web Services
  2. Location awareness Mobile App complexity / Richness Payments Intimacy Camera/GPS/

    NFC/Bluetooth/ Voice Bandwidth/ Power/Screen/ Keyboard Desktop
  3. Using the AWS Mobile SDK (Android) 1) Download + install

    Eclipse 2) Download + install ADT (Android Dev Tools) plugin 3) Configure the ADT plugin (prompted after restart) 4) Download + setup the Android SDK Manager 5) Setup an Android Virtual Device (AVD) 6) Download and install the AWS toolkit for Eclipse 7) You can easily start a new AWS Android Project 50
  4. 51

  5. 52

  6. 53

  7. 54

  8. 55

  9. Why do I need the AWS Mobile SDKs? 57 Simplifies

    Development Thick client Architecture iOS: v 4.3 and above x y Android: v 2.2 (API level 8) and above
  10. Why do I need the AWS Mobile SDKs? 58 Simplifies

    Development x y No back end needed High/Low level interfaces Credentials management
  11. 62 Compute / Networking Amazon EC2 Elastic Load Balancing Auto

    Scaling App services Amazon SQS Amazon SNS Amazon SES Database Amazon DynamoDB Amazon SimpleDB Deployment/Management Amazon CloudWatch Storage/CDN Amazon S3 EXTRA Security Token Service
  12. App integration 64 Single framework that can be added to

    your application Single or service level jars available Android iOS
  13. App integration 65 Single framework that can be added to

    your application Single or service level jars available Statically linked (only parts that are used will be added) Proguard integration (obfuscate/minimize) Android iOS
  14. Why Proguard is important 1) Removes unused code (usage.txt) 2)

    Classes/fields/methods names are obscured (mapping.txt) 3) Non obfuscated ones are listed in “seeds.txt” 4) The resulting .apk is smaller, harder to reverse engineer 66
  15. Why Proguard is important 1) Removes unused code (usage.txt) 2)

    Classes/fields/methods names are obscured (mapping.txt) 3) Non obfuscated ones are listed in “seeds.txt” 4) The resulting .apk is smaller, harder to reverse engineer 1) Proguard just needs to be enabled 2) You can customize it through “proguard-project.txt” 67
  16. AmazonS3Client s3 = new AmazonS3Client ( new BasicAWSCredentials ( ACCESS_KEY_ID,

    SECRET_KEY ) ); s3.createBucket ( PICTURE_BUCKET ) ; 71 Create Amazon S3 client Create Amazon S3 bucket
  17. AmazonS3Client s3 = new AmazonS3Client ( new BasicAWSCredentials ( ACCESS_KEY_ID,

    SECRET_KEY ) ); s3.createBucket ( PICTURE_BUCKET ) ; PutObjectRequest por = new PutObjectRequest ( PICTURE_BUCKET, PICTURE_NAME, new java.io.File ( image ) ); s3.putObject ( por ) ; 72 Create Amazon S3 client Create Amazon S3 bucket Put object into bucket
  18. AmazonS3Client s3 = new AmazonS3Client ( new BasicAWSCredentials ( ACCESS_KEY_ID,

    SECRET_KEY ) ); s3.createBucket ( PICTURE_BUCKET ) ; PutObjectRequest por = new PutObjectRequest ( PICTURE_BUCKET, PICTURE_NAME, new java.io.File ( image ) ); s3.putObject ( por ) ; S3Object data = s3.getObject ( PICTURE_BUCKET, PICTURE_NAME ) ; 73 Get object from bucket Create Amazon S3 client Create Amazon S3 bucket Put object into bucket
  19. Key primaryKey = new Key().withHashKeyElement(targetValue); DeleteItemRequest request = new DeleteItemRequest()

    .withTableName(PropertyLoader .getInstance() .getTestTableName()) .withKey(primaryKey); ddb.deleteItem(request); mapper.delete(deleteUserPreference); 77 Low level API DynamoDB mapper for Android
  20. Never store credentials in the App 1) Credentials can be

    extracted from an App 2) No individual revocation (all or none) 3) No rotation (the App would not work) 80
  21. Token Vending Machine Security Token Service IAM 1) Anonymous TVM

    (identity of the phone user is not stored) 2) Identity TVM (user registration and login)
  22. The Mobile Universe PART ONE AWS Mobile SDK PART TWO

    ??? PART THREE Conclusions PART FOUR
  23. 88

  24. Simone Brunozzi ( @simon ) Senior Technology Evangelist, Amazon Web

    Services Rethinking the mobile universe with Amazon Web Services Thank you!