Download presentation
Presentation is loading. Please wait.
Published bySibyl Dalton Modified over 6 years ago
1
FASTER PROTOTYPING USING PARSE AND AZURE MOBILE SERVICES Goran Đonović
July 15th 2015 FASTER PROTOTYPING USING PARSE AND AZURE MOBILE SERVICES Goran Đonović
2
About me Mobile app developer Connect with me on LinkedIn
on twitter for some #androiddev posts Recent remote worker #developerslife Do or die kind of a guy
3
… and who are you?
4
What are going to talk about
Prototyping Development from mobile perspektive Backend as a service platforms (Parse and Azure) (M)Bass most used features Pros & Cons The next steps Q&A
5
So... What is prototype? "A prototype is an incomplete version of software, built so users can experience some of the proposed features or properties"
6
Business requirements Vs. Business hypothesis
7
Requirements... I want it all, I want it all, and I want it now!
8
Hypothesis asdas
9
Tools for your toolbox
10
It's all about the base What is your base activity? Mobile Dev?
Web Frontend Dev? Web Backend Dev? Game Dev? U no Dev?
11
Parse services overview
12
Azure Mobile Services Overview
13
Parse Vs. Azure
14
It is your choice
15
Getting started Create account and app Download SDK
Download seed project Check app key and secret Initialize
16
User management user.signUpInBackground user.loginInBackground
ParseUser.getCurrentUser (and fetch()) ParseUser.logout ParseUser.requestPasswordResetInBackground ParseAnonymusUtils (for anonymous users) ParseFacebookUtils ParseTwitterUtils ParseUser user = new ParseUser(); user.setUsername("my name"); user.setPassword("my pass"); //Adding users to roles ParseRole role = new ParseRole(roleName, roleACL); for (ParseUser user : usersToAddToRole) { role.getUsers().add(user) }
17
Data modeling 128K maximum size permitted Parse is using MongoDB
Azure mobile services use Azure SQL DB (can change) Define tables via portal Creating columns dynamically 128K maximum size permitted Task scannedTask = new Task(); scannedTask.put("title","SomeTitle"); scannedTask.put("assigned_to", ParseUser.getCurrentUser()); scannedTask.put("fulfilled", false); scannedTask.saveInBackground
18
Data relations One-to-Many Many-to-Many One-to-One pointers and arrays
parse relations, joint tables, arrays One-to-One ParseRelation<ParseObject> relation = book.getRelation("authors"); relation.add(authorOne);
19
Accessing the data ParseQuery<ParseObject> query = ParseQuery.getQuery("Task"); query.whereEqualTo("title", "SomeTitle"); query.findInBackground(new FindCallback<ParseObject>() { public void done(List<ParseObject> taskList, ParseException e) { if (e == null) { Log.d("tasks", "Retrieved " + taskList.size() + " tasks"); } else { Log.d("tasks", "Error: " + e.getMessage()); } } });
20
Cloud code Parse.Cloud.beforeSave(Parse.User, function(request, response) { var user = request.object; if (!user.get(" ")) { response.error("Every user must have an address."); } else { response.success(); } });
21
Cloud code Parse.Cloud.beforeSave Parse.Cloud.afterSave
Parse.Cloud.beforeDelete Parse.Cloud.afterDelete Parse.Cloud.define("SomeFunction", function(request, response) { . } [PFCloud block:^(NSArray *results, NSError *error) { if (!error) { // this is where you handle the results and change the UI. } }];
22
Analytics Map<String, String> dimensions = new HashMap<String, String>(); // Define ranges to bucket data points into meaningful segments dimensions.put("priceRange", " "); // Did the user filter the query? dimensions.put("source", "craigslist"); // Do searches happen more often on weekdays or weekends? dimensions.put("dayType", "weekday"); // Send the dimensions to Parse along with the 'search' event ParseAnalytics.trackEvent("search", dimensions);
23
Push notifications push.gcm.send(results[0].handle, item.text, {
success: function(response) { console.log('Push notification sent: ', response) }, error: function(error) { console.log('Error sending push notification: ', error); }
24
Portal demo If we have time?
25
Conclusion
26
Q&A
27
One more thing :) mobiledevelope.rs
29
My contact info M: L:
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.