Backend as a Service: Parse
-
Upload
maurizio-moriconi -
Category
Technology
-
view
656 -
download
3
description
Transcript of Backend as a Service: Parse
ROME 11-12 april 2014ROME 11-12 april 2014
Backend as a Service: Parse
Maurizio Moriconi
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
ROME 11-12 april 2014 - Maurizio Moriconi
Develop an app Push Notification Analytics User management Social integration Shared data Web Hosting Database hosting
3
ROME 11-12 april 2014 - Maurizio Moriconi
Challenges
!
• Time • Skill • Scalability • Cost
4
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
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
ROME 11-12 april 2014 - Maurizio Moriconi
Some examples
7
ROME 11-12 april 2014 - Maurizio Moriconi
8
ROME 11-12 april 2014 - Maurizio Moriconi
One backend to rule them all
9
ROME 11-12 april 2014 - Maurizio Moriconi
Parse pricing
10
BASIC PRO ENTERPRISEfree $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 collaboratorAdvanced Push Targeting Push Scheduling …
Phone support Enterprise SLA Individual Push opens metrics …
ROME 11-12 april 2014 - Maurizio Moriconi
11
Parse Services
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
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
ROME 11-12 april 2014 - Maurizio Moriconi
Parse Analytics
• Measure App usage • Optimize Push Campaign • Track Custom Analytics • Powerful Dashboard
14
ROME 11-12 april 2014 - Maurizio Moriconi
Let’s start!
15
ROME 11-12 april 2014 - Maurizio Moriconi
1 - Sign up for Parse
16
ROME 11-12 april 2014 - Maurizio Moriconi
2 - Create your first app
17
ROME 11-12 april 2014 - Maurizio Moriconi
3 - Dashboard
18
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
ROME 11-12 april 2014 - Maurizio Moriconi
Connect you app to Parse
20
ROME 11-12 april 2014 - Maurizio Moriconi
Data Browser
21
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
ROME 11-12 april 2014 - Maurizio Moriconi
Save an object
23
Auto generate Class!!!
ROME 11-12 april 2014 - Maurizio Moriconi
Save an object
24
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
ROME 11-12 april 2014 - Maurizio Moriconi
Data Types
26
ROME 11-12 april 2014 - Maurizio Moriconi
Some features!Saving objects offline
!
!!!!Relational Data
27
ROME 11-12 april 2014 - Maurizio Moriconi
Some features
28
!!!!!!Queries
!
!!!!
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
ROME 11-12 april 2014 - Maurizio Moriconi
Signing up
30
ROME 11-12 april 2014 - Maurizio Moriconi
Loggin in
31
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
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;
ROME 11-12 april 2014 - Maurizio Moriconi
Facebook / Twitter integration
34
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
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
ROME 11-12 april 2014 - Maurizio Moriconi
User
37
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
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 libraries39
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: [email protected] Password: 1:MyApp Select an App: 1 $ cd MyCloudCode
• A simple function in cloud/main.jsParse.Cloud.define("hello", function(request, response) { response.success("Hello world!"); });
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!" }
ROME 11-12 april 2014 - Maurizio Moriconi
Cloud Code
42
ROME 11-12 april 2014 - Maurizio Moriconi
Web hosting
43
/publicindex.html
Cloud Parse PRJ
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
ROME 11-12 april 2014 - Maurizio Moriconi
Thank You!
45
Backend as a Service: