Share
Embed
Mobile backend as a Service aka mBaaS
By Kirill Kormiltsev - https://www.facebook.com/kirill.kormiltsev
uaMobiTech
November 14, 2015
Transcript
30 slides
-
Observed Services Google Cloud Platform Appcelerator Arrow IBM Bluemix Parse
Backendless Kinvey -
Google Cloud Endpoints 1. Download “Android Studio” for 2.
Create backend project 3. Create entity classes 4. For each entity generate a Cloud Endpoints class 5. Create Client app 6. Retrieve IDs and credentials from Google Developers Console 7. Set up BE app with credentials, build and deploy 8. Set up Client app with BE credentials and run -
Appcelerator Arrow Real-time mobile analysts to power user engagement and
measure success. Fast, simplifies access to data via mobile optimized APIs. Native, cross-platform app development & testing. -
Appcelerator Arrow 1. Download Appcelerator CLI 2. Create new Arrow
project 3. Create Models 4. Create endpoints for models 5. Run Arrow project (runs on localhost:8080/arrow) 6. Create Client app 7. Set up Client app with Arrow app credentials (API Key) and run -
That’s it! Parse/Backendless/Kinvey 1. Create Models (entity classes on backend)
2. Create Client App 3. Set up Client app with Parse / Backendless / Kinvey credentials and Run -
Observed Services Google Cloud Platform Appcelerator Arrow IBM Bluemix Parse
Backendless Kinvey -
Observed Services Google Cloud Platform (requires implementing backend) Appcelerator Arrow
(requires implementing backend) IBM Bluemix (30-days free trial) Parse (free plan) Backendless (free plan) Kinvey (free till distribution) -
Backend Structure of MBaaS Business logic Push services Analytics Other…
Additional Base Database User Management Logic File Storage -
Structure of MBaaS REST API iOS SDK Android SDK Other
SDKs iOS Client App Android Client App Other Client App Backend -
Parse Backendless Kinvey Active users Not limited 100* 1000* Environments
per app Not limited 1 1 App collaborators Not limited 1 1 User roles Not limited 5 Not limited Max requests 30 / sec 1,000,000 Database storage 20 GB 200 tables 30 GB File storage 20 GB** 20 GB File transfer 2 TB* * per month, ** 10 MB file size -
Business Logic Backendless Event Handlers (Triggers) - custom code for
extending the default logic of the API implementation. Timers - code which Backendless executes on the specified schedule. -
Business Logic Kinvey Collection Hooks (Triggers) - custom code executed
by a request to any Kinvey collection and allow for server-side logic to occur pre/post fetch, pre/post save, and pre/post delete. Custom Endpoints - triggered on demand through a custom HTTP endpoint or via a function call in the client libraries. Scheduled Code - executing a custom endpoint on a scheduled basis. -
Parse Backendless Kinvey Scripts Not limited 5 5 Execution duration
20 req/sec 5 sec 2 sec Execution timeout 1 concurrent job 1 min Business logic features comparison -
Parse Backendless Kinvey $100 for every 10 requests / sec
$200 2 jobs 50 req/s $400 3 jobs 70 req/s $600 4 jobs 90 req/s … $5700 29 jobs 600 req / sec $99: 1000 users / month 5 environments 5 collaborators 40 GB storage 500 DB tables 5,000,000 requests 20 sec BL exec time $999: All Unlimited 500 GB Storage 120 sec BL exec time $200: 100k users / month 2 environments 3 collaborators $2,000: All Unlimited* 3 environments 5 sec BL exec time $5,000: All Unlimited* 4 environments 60 sec BL exec time * 30GB per Backend Extensions -
Parse Backendless Kinvey $100 for every 10 requests / sec
$200 2 jobs 50 req/s $400 3 jobs 70 req/s $600 4 jobs 90 req/s … $5700 29 jobs 600 req / sec $99: 1000 users / month 5 environments 5 collaborators 40 GB storage 500 DB tables 5,000,000 requests 20 sec BL exec time $999: All Unlimited 500 GB Storage 120 sec BL exec time $200: 100k users / month 2 environments 3 collaborators $2,000: All Unlimited* 3 environments 5 sec BL exec time $5,000: All Unlimited* 4 environments 60 sec BL exec time * 30GB per Backend Good for rapid development Good for growing It's OK Extensions -
MBaaS Setup 1. Create Models (entity classes on backend) 2.
Create Client App 3. 3. Implement logic / use SDK for interacting with backend service ? Set up Client app with BE credentials 4. -
MBaaS SDKs Kinvey specific SDKs: iOS, Android, HTML5, Xamarin, Titanium,
PhoneGap etc. Parse specific SDKs: iOS, Android, Unity, Xamarin, React, Windows, PHP, Raspberry Pi, Arduino, Atmel, Broadcom etc. Backendless specific SDKs: iOS, Android, Windows Phone, JS, Java, ActionScript, .net. NetworkManager * limited support (user and data management) iOS specific framework Supports* Parse, Backendless, Kinvey -
NetworkManager Supports* 3 most popular MBaaS providers Settings via configuration
file Installation through cocoapods * authentication and data management -
API Reference User-management: - (BOOL)loginWithUsername:(NSString *)userName password:(NSString *)password completion:(NMCompletionBlock)completionBlock; -
(BOOL)signUpWithUserName:(NSString *)userName loginName:(NSString *)loginName password:(NSString *)password completion:(NMCompletionBlock)completionBlock; - (void)logout:(void (^)(BOOL))callback; -
API Reference Retrieve item details: - (void)retrieveItemsOfEntityWithName:(NSString *)entityName completion:(NMCompletionBlock)completionBlock; -
(void)retrieveItemDetails:(NSString *)itemID forEntity:(NSString *)entityName completion:(NMCompletionBlock)completionBlock; -
API Reference Item management: - (void)addItem:(id)item forEntity:(NSString *)entityName completion:(NMCompletionBlock)completionBlock -
(void)removeItem:(NSString *)itemID forEntity:(NSString *)entityName completion:(NMCompletionBlock)completionBlock - (void)updateItemDetails:(NSString *)itemID forEntity:(NSString *)entityName details:(NSDictionary *)item completion:(NMCompletionBlock)completionBlock -
How-to Install $ cd $PROJECT_DIR # Add NetworkManager pod specs
to pods list $ echo "source 'https://.../privatepods.git' pod "NetworkManager"" >> Podfile # Add NetworkManager as static lib to your project $ pod install # Open project $ open ${PROJECT_NAME}.xcworkspace -
Links InfoWorld - http://www.infoworld.com/article/2842791/application-development/mbaas-shoot-out-5- cloud-platforms-for-building-mobile-apps.html Parse REST API - https://www.parse.com/docs/rest/guide/#objects
built.io API References - http://apidocs.builtapp.io built.io Quick Start - https://docs.built.io/quick-start IBM Bluemix: getting started - http://www.tricedesigns.com/2015/02/09/getting-started-with-ibm- bluemix-mobile-services-mbaas-video-series/ Google Cloud App Sample - https://cloud.google.com/solutions/mobile/how-to-build-mobile-app- with-app-engine-backend-tutorial/#ios Appcelerator tutorial on Arrow - https://web.appcelerator.com/product/arrow