Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mobile backend as a Service aka mBaaS

uaMobiTech
November 14, 2015

Mobile backend as a Service aka mBaaS

uaMobiTech

November 14, 2015
Tweet

More Decks by uaMobiTech

Other Decks in Programming

Transcript

  1. 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
  2. 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.
  3. 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
  4. 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
  5. 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)
  6. Backend Structure of MBaaS Business logic Push services Analytics Other…

    Additional Base Database User Management Logic File Storage
  7. Structure of MBaaS REST API iOS SDK Android SDK Other

    SDKs iOS Client App Android Client App Other Client App Backend
  8. 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
  9. 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.
  10. 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.
  11. 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
  12. 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
  13. 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
  14. 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.
  15. 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
  16. NetworkManager Supports* 3 most popular MBaaS providers Settings via configuration

    file Installation through cocoapods * authentication and data management
  17. 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;
  18. API Reference Retrieve item details: - (void)retrieveItemsOfEntityWithName:(NSString *)entityName completion:(NMCompletionBlock)completionBlock; -

    (void)retrieveItemDetails:(NSString *)itemID forEntity:(NSString *)entityName completion:(NMCompletionBlock)completionBlock;
  19. 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
  20. 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
  21. 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