Mobile Backend
as a Service

Petr Šnobelt / @petrsnobelt

BaaS is an approach for providing web and mobile app developers with a way to connect their applications to backend cloud storage and processing while also providing common features.

Pros

  • Faster on Market/Lower Initial Cost
  • Someone take care about infrastructure
    • (patching, upgrading)
  • Proof of concept

Requirements for BaaS

  1. User Management and ACLs
  2. Login via various OAuth (Google, FB, Twitter)
  3. DaaS (Database as a Service)
  4. File Storage
  5. Push Notification
  6. Run Custom Business Logic
  7. Send Emails
  8. Real-time data synchronization
  9. Offline data caching, synchronization
  10. Security and Data Encryption

Nice to have

  • Analytics
  • Automatic Backup
  • Hosting with CDN
  • Support for Payment gateways
  • Integration with 3rd party data/services

Cons/Adoption

  • vendor trust
  • vendor lock
  • customization
  • resistance to give up their own toys by Web developers

OpenSource

Opensource solutions can be installed on own hardware or deployed to cloud

appache usergrid

usergrid.incubator.apache.org

Complete SDKs for iOS, Android, HTML5/JS, Node.js, Ruby, Java, .NET, and PHP.
Open source since 2011.

loopback.io

node.js framework for creating apis and easily connecting to backend data sources.

deployd.com

based on MongoDB and Node.js providing a JavaScript API

v0.6.10 preview
nice short (6 mins) introducing video

Others

helios.io - Ruby, Postgress
baasbox.com SDKs for iOS, Android but Javascript ("comming soon")
open source alternative for parse.com

Commerce solutions

Most providers have free plan to try

Examples I/III

firebase

jsfiddle chat
jsfiddle tree quickstart

Examples II/III

parse.com

not well choosen name - try google something :-(
                        
                        $.ajax({
                            headers: { "X-Parse-Application-Id": "---YOUR APP ID---",
                                       "X-Parse-REST-API-Key": "--- YOUR KEY ---" },
                            type: "POST",
                            url: "https://api.parse.com/1/" + "classes/Test",
                            data: '{ "name": "Alan Turing", 
                                     "birthday": "June 23, 1912" }',
                            success: function () { },
                            dataType: "json",
                            contentType: "application/json"
                        });
                        
                    

Examples III/III

UI of firebase and parse.com

Sources