Backend as a Service: Parse - Moriconi

781 views
566 views

Published on

Slides from Maurizio Moriconi talk @ codemotion roma 2014

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
781
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
28
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Backend as a Service: Parse - Moriconi

  1. 1. ROME 11-12 april 2014ROME 11-12 april 2014 Backend as a Service: Parse maurizio.moriconi@mobilesoft.it Maurizio Moriconi
  2. 2. ROME 11-12 april 2014 - Maurizio Moriconi Maurizio Moriconi 2 • CTO @ Mobilesoft • Mobile Developer • Co-founder • Main Developer http://www.facebook.com/maurizio.moriconi http://www.linkedin.com/in/bugman @bugman79 - Maurizio Moriconi
  3. 3. ROME 11-12 april 2014 - Maurizio Moriconi Develop an app Push Notification Analytics User management Social integration Shared data Web Hosting Database hosting 3
  4. 4. ROME 11-12 april 2014 - Maurizio Moriconi Challenges ! • Time • Skill • Scalability • Cost 4
  5. 5. ROME 11-12 april 2014 - Maurizio Moriconi Backend as a Service (Baas) • MBaaS (mobile backend as a service) ! • Link application to backend cloud storage • Custom software development kit (SDK) • Custom application programming interfaces (APIs) ! Global Market • $216.5 million in 2012 • $7.7 billion by 2017 5
  6. 6. ROME 11-12 april 2014 - Maurizio Moriconi Baas Service • Custom objects • model, relationships and store/retrieve from central databases • File storage • images, large documents, association with a custom object • Geolocation • query object near a certain location • Users • creation, integration with Facebook/Twitter, ACL for objects • Push notifications • single way to push many platforms 6
  7. 7. ROME 11-12 april 2014 - Maurizio Moriconi Some examples 7
  8. 8. ROME 11-12 april 2014 - Maurizio Moriconi 8
  9. 9. ROME 11-12 april 2014 - Maurizio Moriconi One backend to rule them all 9
  10. 10. ROME 11-12 april 2014 - Maurizio Moriconi Parse pricing 10 BASIC PRO ENTERPRISE free $199 per month ask Requests
 1 Million/month Requests
 15 Million/month Custom Pushes
 1 Million/month Pushes
 5 Million/month Custom File Storage
 1 GB File Storage
 10 GB Custom App open metrics 1 concurrent background jobs ! 2 App collaborator
 Advanced Push Targeting
 Push Scheduling
 … Phone support
 Enterprise SLA Individual Push opens metrics
 …
  11. 11. ROME 11-12 april 2014 - Maurizio Moriconi 11 Parse Services
  12. 12. ROME 11-12 april 2014 - Maurizio Moriconi Parse Core ! • Parse Dashboard • Save data in the cloud • Make your app social • Run custom app code in the Parse Cloud • Background jobs 12
  13. 13. ROME 11-12 april 2014 - Maurizio Moriconi Parse Push ! • Push for: • iOS, Android, Windows, Windows Phone • Send notification via: • web console, REST API, client SDKs !!! • Advanced targeting (PRO, ENTERPRISE) • Advanced scheduling (PRO, ENTERPRISE) ! ! 13
  14. 14. ROME 11-12 april 2014 - Maurizio Moriconi Parse Analytics • Measure App usage • Optimize Push Campaign • Track Custom Analytics • Powerful Dashboard 14
  15. 15. ROME 11-12 april 2014 - Maurizio Moriconi Let’s start! 15
  16. 16. ROME 11-12 april 2014 - Maurizio Moriconi 1 - Sign up for Parse 16
  17. 17. ROME 11-12 april 2014 - Maurizio Moriconi 2 - Create your first app 17
  18. 18. ROME 11-12 april 2014 - Maurizio Moriconi 3 - Dashboard 18
  19. 19. ROME 11-12 april 2014 - Maurizio Moriconi Setup SDK on iOS • Download SDK • Latest version 1.2.18 • Support Xcode (5.0+) iOS 5.0 or higher 19
  20. 20. ROME 11-12 april 2014 - Maurizio Moriconi Connect you app to Parse 20
  21. 21. ROME 11-12 april 2014 - Maurizio Moriconi Data Browser 21
  22. 22. ROME 11-12 april 2014 - Maurizio Moriconi Parse Object • Contains key-valued pairs of JSON-compatible data • This data is schema-less • Each Parse Object has a class name ! PFObject in iOS • ParseObject in Android/Windows 22
  23. 23. ROME 11-12 april 2014 - Maurizio Moriconi Save an object 23 Auto generate Class!!!
  24. 24. ROME 11-12 april 2014 - Maurizio Moriconi Save an object 24
  25. 25. ROME 11-12 april 2014 - Maurizio Moriconi Special Class Name • User • for authentication, log in, sign up and more • Installation • store push notification subscriptions for each device • Role • to specify groups of users with shared permissions • Product • stores your in-app product data 25
  26. 26. ROME 11-12 april 2014 - Maurizio Moriconi Data Types 26
  27. 27. ROME 11-12 april 2014 - Maurizio Moriconi Some features ! Saving objects offline ! ! ! ! ! Relational Data 27
  28. 28. ROME 11-12 april 2014 - Maurizio Moriconi Some features 28 ! ! ! ! ! ! Queries ! ! ! ! !
  29. 29. ROME 11-12 april 2014 - Maurizio Moriconi User • specialized user class called PFUser in iOS • several properties • username (required) • password (required on signup) • email (optional) • basic functionality: • sign up • login • email verification 29
  30. 30. ROME 11-12 april 2014 - Maurizio Moriconi Signing up 30
  31. 31. ROME 11-12 april 2014 - Maurizio Moriconi Loggin in 31
  32. 32. ROME 11-12 april 2014 - Maurizio Moriconi PFLogInViewController • Manage Login via PFLogInViewControllerDelegate ! - (BOOL)logInViewController:(PFLogInViewController *)logInController shouldBeginLogInWithUsername: (NSString *)username password:(NSString *)password; ! - (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user; ! - (void)logInViewController:(PFLogInViewController *)logInController didFailToLogInWithError:(NSError *)error; ! - (void)logInViewControllerDidCancelLogIn: (PFLogInViewController *)logInController; 32
  33. 33. ROME 11-12 april 2014 - Maurizio Moriconi PFSignUpViewController 33 • Manage Sign up via PFSignUpViewControllerDelegate ! - (BOOL)signUpViewController: (PFSignUpViewController *)signUpController shouldBeginSignUp:(NSDictionary *)info; ! - (void)signUpViewController: (PFSignUpViewController *)signUpController didSignUpUser:(PFUser *)user; ! - (void)signUpViewController: (PFSignUpViewController *)signUpController didFailToSignUpWithError:(NSError *)error; ! - (void)signUpViewControllerDidCancelSignUp: (PFSignUpViewController *)signUpController;
  34. 34. ROME 11-12 april 2014 - Maurizio Moriconi Facebook / Twitter integration 34
  35. 35. ROME 11-12 april 2014 - Maurizio Moriconi Facebook • Setup FB application on developer.facebook.com • Add App ID and App Secret on Parse settings • Setup application follow https://developers.facebook.com/docs/ios/getting- started • Adding this line on application:didFinishLaunchingWithOptions ! • Add also:
 35
  36. 36. ROME 11-12 april 2014 - Maurizio Moriconi Facebook // Create the log in view controller PFLogInViewController *logInViewController = [[PFLogInViewController alloc] init]; [logInViewController setFacebookPermissions:[NSArray arrayWithObjects:@"friends_about_me", nil]]; ! [logInViewController setFields: PFLogInFieldsTwitter | PFLogInFieldsFacebook | PFLogInFieldsDismissButton]; 36
  37. 37. ROME 11-12 april 2014 - Maurizio Moriconi User 37
  38. 38. ROME 11-12 april 2014 - Maurizio Moriconi Facebook / Twitter integration • Login • Sign up • Linking existing PFUser to Twitter/Facebook • Unlinking existing PFUser to Twitter/Facebook • After authentication is possible to use: • Query Graph on Facebook • Twitter API on Twitter 38
  39. 39. ROME 11-12 april 2014 - Maurizio Moriconi • A bit of logic that running in the Cloud • Javascript SDK (same for apps) • You don't have to wait for a new release of your application • Schedule jobs • Cloud Modules for integrate your Parse app with third-party services and libraries 39
  40. 40. ROME 11-12 april 2014 - Maurizio Moriconi Cloud Code curl -s https://www.parse.com/downloads/cloud_code/installer.sh | sudo /bin/bash 40 • Install the command line tool • Create new project $ parse new MyCloudCode Email: ninja@gmail.com Password: 1:MyApp Select an App: 1 $ cd MyCloudCode • A simple function in cloud/main.js Parse.Cloud.define("hello", function(request, response) { response.success("Hello world!"); });
  41. 41. ROME 11-12 april 2014 - Maurizio Moriconi Cloud Code 41 $ parse deploy • Deploy • Run function on iOS [PFCloud callFunctionInBackground:@"hello" withParameters:@{} block:^(NSString *result, NSError *error) { if (!error) { // result is @"Hello world!" } }]; • Response { "result": "Hello world!" }
  42. 42. ROME 11-12 april 2014 - Maurizio Moriconi Cloud Code 42
  43. 43. ROME 11-12 april 2014 - Maurizio Moriconi Web hosting 43 /public index.html Cloud Parse PRJ
  44. 44. ROME 11-12 april 2014 - Maurizio Moriconi and now? 44 Parse Analytics File storage Push notifications Data relations Users ACL Geopoint File storage In-app purchase Web hosting Query Email-verification
  45. 45. ROME 11-12 april 2014 - Maurizio Moriconi Thank You! 45 Backend as a Service:

×