Blog: BaaS Platforms. Is it needed for your mobile app?

29 Jan 2016 admin Application Development, Mobile

Backend as as Service

What is mobile Backend as a Service (BaaS)?

Mobile backend as a service (usually called mBaaS or simply BaaS) is the next-generation approach of building both mobile and web applications. It allows an easy and cost-efficient way to develop a fully working backend of an application. Basically, BaaS is an approach that provides web and mobile app developers with a way to hook up their apps to a backend, located in a cloud storage, while also providing regular necessary set of features, such as managing users, sending push notifications, and connecting to various third-party cloud services. It also enables you to authenticate users via multiple identity systems like LDAP and OAuth, access firewalled enterprise data through mobile-friendly APIs, and use encryption protocols to keep your data safe on the network and the devices. There is a great variety of other uses and practical features that a BaaS approach provides, but we will concentrate on why you should consider choosing this method of development, what to look at while choosing a BaaS provider, and which service is the most reliable.

The main reason companies are choosing this approach is to eliminate the need for setting up a new resource-consuming server and developing an individual backend for each separate application or service. As we dive a little deeper, we will show you how BaaS works and how it reduces development time and deployment time to market.

How does mobile backend as a service work?

Generally, an app consists of two parts: the client side (frontend) and the server side (backend). BaaS offers nothing new on the client side; it still focuses on UI/UX and the overall experience the consumer has while using the app. The server-side is where the advantages of BaaS rest in their entirety.

The best approach in any programming-related job is to operate using re-usable methods, which is why BaaS is so effective addition to development process.

The server side consists of two parts: business logic (a combination of business rules and workflows) and data processing (user authentication, file transfer, geo-data, etc.)

The advantages of these methods are substantial. For example, developers can save a lot of time by packing data processing code and later re-using it as a micro-service in any other client-server application. This applies to GPS services, push notification services, user authentication, and even for file transfer systems.

Even more impressive is that developers can build business logic on top of the data processing component, which allows application to use needed data exactly the way it needs. Separating business logic from data processing also allows developers to independently work on each component without touching the data processing and management layers.

Schematic diagram of how mobile backend as a service works

How BaaS works

BaaS API Features

As in any other client-server application, the client side of a BaaS-based application connects to back-end service via API. But what makes it different from other approaches is that BaaS provides developers with a single stack set of common and essential third-party API resources, preventing developers from having to go gather them separately. The basis for BaaS is not only about shortening the development process and making maintenance easier, but also about helping developers build apps the smart way, where complicated server code can be wrapped up and later be reused on other apps or projects.

How to choose the best BaaS for you?

There are many different BaaS providers out there, but there are generally only a few common features you should look for, including user management, push notifications, file transfers, geo-data support, and the ability to store custom information. To decide which BaaS provider will work for you, you must first ask yourself these questions:

  • What platforms do I plan to support?
  • What BaaS features do I really need?
    • Push Services
    • Analytics
    • Control Panel
    • Social Networks Integration
    • User Management
    • Custom Code Integration

BaaS, as you can see above, provides many features, which makes the right decision a little harder to determine, but it is very important to understand the needs of your app before selecting a BaaS provider.

Advantages and disadvantages of using Baas

 Advantages:

  • Save time: Setting up a BaaS takes just a few minutes, while setting up your own backend could take hours or even days.
  • Save money: BaaS eliminates the need to hire an additional backend developer. Also, customers don’t have to pay to use a cloud provider like Amazon.
  • Feature-complete apps: Customers are provided with a core set of mobile features, like geo-data support, social integration, push services, data storage, user management, analytics, versioning, and BLOB file storage.
  • More productivity: Users care about the actual product and not the development or backend. Backend as a service allows developers to focus on what’s important: the front-end.
  • Data Liberation: REST API support through a unified interface is also an important feature. This way developers only need to learn one single backend API and can easily switch between data providers with several clicks. Without a BaaS provider, this would require learning multiple APIs, which takes more time and makes a team less productive.

Disadvantages:

  • Customers don’t have full under-the-hood control of the infrastructure. Software stack that backend is based on is controlled only by the BaaS provider, and the customer only controls the data and the used features.
  • Usually backend-as-a-service platforms are based in a single data center or cloud platform, which often leads to latency issues if the application users are on the other side of the world.
  • The BaaS provider may go out of business, which could lead to dozens of non-working applications and complete mobile business suspension.
  • BaaS is not the best option for a huge project with a large user base. It scales and takes a lot of resources, which usually costs a lot. It would be more cost-effective to use a cloud service, such as Microsoft Azure or Amazon Web Services.
  • It’s almost impossible to transfer your project from one BaaS provider to another or to a third-party cloud platform, due to specific backend API.

The best BaaS for your buck

To ease up your decision making, we’re providing list and a short description of the top three BaaS providers:

parse Parse

Parse is a Facebook-owned BaaS provider startup, that unfortunately is closing, according to official company announcement. But it’s still one of the best BaaS services out there. To help it’s clients move to another service, or even setup their own Parse-compatible service, company has released Database Migration guides and opensource Parse-compatible API server for Node.js/Express. There’s even a developer wiki, which can be found here.

It supports file storage, geo-data, social integration, push notifications, and real-time usage analytics. Analytics are highly configurable, so customers can setup tracking for custom events for different types of devices; they also provide a customizable and flexible reports generator. Parse officially supports many SDKs (e.g. iOS, Android, Windows, Windows Phone, Mac OS X, JavaScript and Unity). It also has great community support, many third-party developers have created client libraries for different languages, such as .NET, ActionScript, Clojure, Java, Qt, Ruby, PHP, Python, and WebOS.
Firebase Firebase

Firebase is a new player on the BaaS scene. It specializes in real-time data synchronization. DB Best has used this service in several projects for our customers, all of whom were really happy with their results. Real-time support provides multiple clients with the ability to access the same data and see its updates in real-time. Also, it eliminates the latency problem, which other big BaaS providers have, so if instant response is something that you are looking for, go with Firebase.

Another strong aspect of Firebase is its highly configurable security system—users can incorporate third-party-provided authorization tokens or any of their own. Provided SDKs cover all the basic needs: there are SDKs for JavaScript (both web clients and node.js), Objective-C (iOS), and Java (Android), and an HTTP REST API also is an option for those who need it. Firebase provides officially supported integrations with AngularJS, Backbone.js, and EmberJS (all client-side JavaScript frameworks). Third-party library support also exists in Firebase, so the community has developed a number of third-party libraries that extend Firebase client support to Python, PHP, Ruby, Clojure, and Perl.

KinveyKinvey

Kinvey generally specializes in the enterprise sector of mobile apps, and this can be seen by looking at its price. But there are also cost-efficient options; for example, there is a starting plan that supports up to 200 active users per month, completely free of charge. There is also an option to roll up onto a paid plan once the app is used by more than 200 users. Kinvey is also great in terms of its support. Their support team is responsive and actually supports its customers to get their app up and ready. Furthermore, Kinvey provides a neat set of tools that helps to price up app development projects based on future feature requirements and usage estimates.

Conclusion:

Backend as a service may sound like the solution for all your problems, but there are still many considerations to make when choosing a BaaS provider for your app. Choosing the wrong provider could lead to big problems in the future, including the need for a complete rewrite of the application for the new service. More importantly, you need to decide if you actually need a service like this or if it would be better to stick with traditional methods. You need to estimate how your app will scale and which services you will need because pricing of the service will rely on this information.
DB Best has used many BaaS providers, so we know which would be best for our clients. We can advise which services are good and suitable for a given app. We also have a highly skilled custom development team, which can not only configure your backend, but also write a fully functional frontend. So if you have any questions or are planning to build your app on top of a service like this, let us know, and we will provide the best service possible.