Building great app experiences by with scalable cloud services - David Poll
Upcoming SlideShare
Loading in...5
×
 

Building great app experiences by with scalable cloud services - David Poll

on

  • 772 views

 

Statistics

Views

Total Views
772
Views on SlideShare
772
Embed Views
0

Actions

Likes
0
Downloads
22
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Building great app experiences by with scalable cloud services - David Poll Building great app experiences by with scalable cloud services - David Poll Presentation Transcript

  • ParseDavidPoll@depollThursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Building Great Experiences With Scalable CloudServices• What is Parse?• Saving data• Managing users• Rich querying• Going beyond the clientThursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101About Me• Software Engineer, Parse• In a past life, I was...• Program Manager, MicrosoftSilverlight• Software Engineer, Google• Avid a cappella enthusiast• I have app!Thursday, May 9, 13
  • mobile apps areHARDThursday, May 9, 13
  • DatabaseThursday, May 9, 13
  • Database REST APIZZZ+Thursday, May 9, 13
  • Database REST APIZZZServer+++ users+ securityThursday, May 9, 13
  • Database REST APIZZZServer+++ users+ securityNetworkingThursday, May 9, 13
  • Database REST APIZZZServer+++ users+ securityCachingNetworking+Thursday, May 9, 13
  • Database REST APIZZZServer+++ users+ securityCachingNetworking+ +The fun stuff!Thursday, May 9, 13
  • Database REST APIZZZServer+++ users+ securityCachingNetworking+ +The fun stuff!Thursday, May 9, 13
  • Database REST APIZZZServer+++ users+ securityCachingNetworking+ +The fun stuff!nono nononoyes!Thursday, May 9, 13
  • Database REST APIZZZServer+++ users+ securityNetworking+ +The fun stuff!nono nononoyes!+REST APIZZZServer++nonoParseThursday, May 9, 13
  • Database REST APIZZZServer+++ users+ securityNetworking+ +The fun stuff!nono nononoyes!ParseFilesObjectsGeoPointsFacebookQueriesQueriesCloud CodeACLsUI ComponentsSecurityData BrowserREST APIImagesUsersJavaScriptAndroidEmailsAndroidRolesSDKsThursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Thursday, May 9, 13
  • iOS AndroidJavaScript REST APIOS XWindows 8Windows Phone 8Thursday, May 9, 13
  • DATASaving stuff in theThursday, May 9, 13
  • var comment = new ParseObject ("Comment");comment ["text"] = "Great pic!";comment ["user"] = ParseUser.CurrentUser;await comment.SaveAsync ();Thursday, May 9, 13
  • var comment = new ParseObject ("Comment");comment ["text"] = "Great pic!";comment ["user"] = ParseUser.CurrentUser;await comment.SaveAsync ();Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Demo: Saving your first ParseObjectThursday, May 9, 13
  • So what about locaThursday, May 9, 13
  • var comment = new ParseObject ("Comment");comment ["text"] = "Great pic!";comment ["user"] = ParseUser.CurrentUser;await comment.SaveAsync ();var evolve = new ParseGeoPoint (30.265348, -97.738613);comment ["location"] = evolve;Thursday, May 9, 13
  • And?PicturesThursday, May 9, 13
  • var picture = new ParseObject ("Picture");picture ["title"] = "What?! Parse is Evolving!";picture ["image"] = imageFile;await picture.SaveAsync ();var imageData = GetStreamForImage (image);var imageFile = new ParseFile ("evolving.png", imageData);await imageFile.SaveAsync ();Thursday, May 9, 13
  • THE DATABROWSERWorking with your data iseasy!Thursday, May 9, 13
  • Thursday, May 9, 13
  • USERSThe in your appThursday, May 9, 13
  • Sign up a userThursday, May 9, 13
  • Sign up a uservar user = new ParseUser {Username = "Apps",Password = "r0ck"};await user.SignUpAsync ();Thursday, May 9, 13
  • Sign up a userLogin a uservar user = new ParseUser {Username = "Apps",Password = "r0ck"};await user.SignUpAsync ();Thursday, May 9, 13
  • Sign up a userLogin a uservar user = new ParseUser {Username = "Apps",Password = "r0ck"};await user.SignUpAsync ();await ParseUser.LogInAsync ("Apps", "r0ck");var current = ParseUser.CurrentUser;Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Demo: User Signup/LoginThursday, May 9, 13
  • What about sharing on FThursday, May 9, 13
  • Facebook Usersawait ParseFacebookUtils.LinkAsync (ParseUser.CurrentUser,facebookId, accessToken, expiration);await ParseFacebookUtils.LogInAsync (facebookId, accessToken, expiration);Thursday, May 9, 13
  • Facebook Usersawait ParseFacebookUtils.LinkAsync (ParseUser.CurrentUser,facebookId, accessToken, expiration);await ParseFacebookUtils.LogInAsync (facebookId, accessToken, expiration);Thursday, May 9, 13
  • QUERIESGetting stuff from theThursday, May 9, 13
  • var query = ParseObject.GetQuery("Picture").WhereEqualTo("user", ParseUser.CurrentUser).WhereGreaterThan("createdAt", DateTime.Now - TimeSpan.FromDays(7));IEnumerable<ParseObject> pictures = await query.FindAsync();Thursday, May 9, 13
  • var query = ParseObject.GetQuery("Picture").WhereEqualTo("user", ParseUser.CurrentUser).WhereGreaterThan("createdAt", DateTime.Now - TimeSpan.FromDays(7));IEnumerable<ParseObject> pictures = await query.FindAsync();Or, if you’re using Xamarin.Android...Thursday, May 9, 13
  • var query = ParseObject.GetQuery("Picture").WhereEqualTo("user", ParseUser.CurrentUser).WhereGreaterThan("createdAt", DateTime.Now - TimeSpan.FromDays(7));IEnumerable<ParseObject> pictures = await query.FindAsync();Or, if you’re using Xamarin.Android...var query = from pic in ParseObject.GetQuery ("Picture")where pic ["user"] == ParseUser.CurrentUserwhere pic.CreatedAt > DateTime.Now - TimeSpan.FromDays (7)select pic;IEnumerable<ParseObject> pictures = await query.FindAsync ();Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Demo: Rich QueriesThursday, May 9, 13
  • RELATIONSIt’s better togetherThursday, May 9, 13
  • var comment = new ParseObject("Comment");comment["user"] = ParseUser.CurrentUser;Thursday, May 9, 13
  • var user = ParseUser.CurrentUser;var relation = user.GetRelation<ParseUser>("following");relation.Add(newFriend);relation.Add(anotherFriend);await user.SaveAsync();Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101It’s code in theThursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101It’s JavaScript in the CloudThursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Parse.Cloud.define("averageLikes", function(request, response) {});Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Parse.Cloud.define("averageLikes", function(request, response) {});  var query = new Parse.Query("Photo");  query.equalTo("user", Parse.User.current());Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Parse.Cloud.define("averageLikes", function(request, response) {});  var query = new Parse.Query("Photo");  query.equalTo("user", Parse.User.current());query.find({  });Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Parse.Cloud.define("averageLikes", function(request, response) {});  var query = new Parse.Query("Photo");  query.equalTo("user", Parse.User.current());query.find({  });    success: function(results) {      var sum = 0;      for (var i = 0; i < results.length; ++i) {        sum += results[i].get("likes");      }      response.success(sum / results.length);    },Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Parse.Cloud.define("averageLikes", function(request, response) {});  var query = new Parse.Query("Photo");  query.equalTo("user", Parse.User.current());query.find({  });    error: function() {      response.error("Oops, something went wrong.");    }    success: function(results) {      var sum = 0;      for (var i = 0; i < results.length; ++i) {        sum += results[i].get("likes");      }      response.success(sum / results.length);    },Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Is that it...?Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Parse.Cloud.beforeSave("Comment", function(request, response) {});Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Parse.Cloud.beforeSave("Comment", function(request, response) {});  var text = request.object.get("text");Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Parse.Cloud.beforeSave("Comment", function(request, response) {});  var text = request.object.get("text");if (text.length > 140) {request.object.set("text",text.substring(0,137 + "...");}Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Parse.Cloud.beforeSave("Comment", function(request, response) {});  var text = request.object.get("text");if (text.length > 140) {request.object.set("text",text.substring(0,137 + "...");}response.success();Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Demo: Cloud CodeThursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101What about 3rd party APIs?Thursday, May 9, 13
  • 0101011101011011000010010010101010111001100010101010100010110001100101100101001111000111001010111000111000101010101101000101010010101010011110010100110110110101011001001000100110101010101110101101100001001010111001100010101010100010110001100111000100110010100111100011100100111000101010101101000101010010101010101010101111001010011011011010001000100110101010101110101101100001001001010101011100110001010101010001100111000100110010100111100011100101011100011100010101010110100010101010101010101111001010011011011010101100100100010011010101010111100001001001010101011100110001010101010001011000110011100010011001010011100101011100011100010101010110100010101001010101010101010111100111011010101100100100010011010101010111010110110000100100101010101110010101010001011000110011100010011001010011110001110010101110001110000110100010101001010101010101010111100101001101101101010110010010001001010111010110110000100100101010101110010101011101011011000010010010110011000101010101000101100011001110001001100101001111000111001010110001010101011010001010100101010101010101011110010100110110110101011001001101010101011101011011000010010010101010111001Parse.Cloud.httpRequest({   url: http://www.parse.com/,   success: function(httpResponse) {     console.log(httpResponse.text);   },   error: function(httpResponse) {     console.error(Request failed: + httpResponse.status);   }});Thursday, May 9, 13
  • 0101011101011011000010010010101010111001100010101010100010110001100101100101001111000111001010111000111000101010101101000101010010101010011110010100110110110101011001001000100110101010101110101101100001001010111001100010101010100010110001100111000100110010100111100011100100111000101010101101000101010010101010101010101111001010011011011010001000100110101010101110101101100001001001010101011100110001010101010001100111000100110010100111100011100101011100011100010101010110100010101010101010101111001010011011011010101100100100010011010101010111100001001001010101011100110001010101010001011000110011100010011001010011100101011100011100010101010110100010101001010101010101010111100111011010101100100100010011010101010111010110110000100100101010101110010101010001011000110011100010011001010011110001110010101110001110000110100010101001010101010101010111100101001101101101010110010010001001010111010110110000100100101010101110010101011101011011000010010010110011000101010101000101100011001110001001100101001111000111001010110001010101011010001010100101010101010101011110010100110110110101011001001101010101011101011011000010010010101010111001Thursday, May 9, 13
  • 0101101000101010010101010101010101111001010011011011010101100100100001010101110101101100001001001010101011100110001010101010001011000110100110010100111100011100101011100011100010101010110100010101001010100101111001010011011011010101100100100010011010101010111010110110000110101011100110001010101010001011000110011100010011001010011110001110100011100010101010110100010101001010101010101010111100101001101101100100100010011010101010111010110110000100100101010101110011000101010111000110011100010011001010011110001110010101110001110001010101011010001010101010101010111100101001101101101010110010010001001101010101010110000100100101010101110011000101010101000101100011001110001001100110001110010101110001110001010101011010001010100101010101010101011110101101101010110010010001001101010101011101011011000010010010101010110101010101000101100011001110001001100101001111000111001010111000111001011010001010100101010101010101011110010100110110110101011001001000010101011101011011000010010010101010111001010101110101101100001001000111001100010101010100010110001100111000100110010100111100011100101011000101010101101000101010010101010101010101111001010011011011010101Building Great Experiences With Scalable CloudServices• What is Parse?• Saving data• Managing users• Rich querying• Going beyond the clientThursday, May 9, 13
  • 0101011101011011000010010010101010111001100010101010100010110001100101100101001111000111001010111000111000101010101101000101010010101010011110010100110110110101011001001000100110101010101110101101100001001010111001100010101010100010110001100111000100110010100111100011100100111000101010101101000101010010101010101010101111001010011011011010001000100110101010101110101101100001001001010101011100110001010101010001100111000100110010100111100011100101011100011100010101010110100010101010101010101111001010011011011010101100100100010011010101010111100001001001010101011100110001010101010001011000110011100010011001010011100101011100011100010101010110100010101001010101010101010111100111011010101100100100010011010101010111010110110000100100101010101110010101010001011000110011100010011001010011110001110010101110001110000110100010101001010101010101010111100101001101101101010110010010001001010111010110110000100100101010101110010101011101011011000010010010110011000101010101000101100011001110001001100101001111000111001010110001010101011010001010100101010101010101011110010100110110110101011001001101010101011101011011000010010010101010111001Resources• Parse Xamarin Platform Page: http://www.parse.com/xamarin• .NET Guide: http://www.parse.com/docs/dotnet_guide• API docs: http://www.parse.com/docs/dotnet/api• Twitter: @depoll or @ParseItThursday, May 9, 13
  • ParseDavidPoll@depollThursday, May 9, 13