How do backends work for mobile apps

Backend as a service for mobile apps

If you're a mobile developer, you might be wondering how to manage user data in your next app. Should you be using a database, a dedicated server, or just a front end? This article will help you make a better decision.

1. What is back end?

Before we dive into the details of the services available, let's get a few terms out of the way.

When it comes to mobile and web apps, we often talk about the front and back end. While Front end Defines the user interface, the user interaction and the presentation of information Back end handles the business logic, data storage and security. The front end is the users' web browser or mobile device, and the back end is the server or servers on which data is stored and shared.

A growing number of modern mobile apps are based on at least some functions that require a back end. User and usage analysis, push notifications, enhanced security, user-to-user communication (e.g. in multiplayer games or messaging apps) and monetization of the app through advertising are the most common examples.

2. Who is developing it?

From a mobile developer's point of view, the backend seems to be a completely different world populated with databases and servers. Not only are developers expected to create beautiful and powerful mobile interfaces, but they must also have network infrastructure such as web servers, database management software, server-side scripting languages, and more.

In addition, they are expected to be experts in modern cryptography and computer security, big data and data mining, cellular networks (mobile apps that mostly run on smartphones that are connected to a cellular network), and an ever-growing list of additional technologies.

Of course, even if a simple mobile app has to be developed with a back end, the developer has to master many tools and languages ​​that are outside the realm of ordinary app development. This situation prevents many developers from integrating a backend into their apps.

3. Backend as a service (BaaS) to the rescue

As cloud computing is integrated into the mainstream, XaaS (i.e. BaaS, SaaS, PaaS, etc. - backend as a service, software as a service, or platform as a service) has already begun to recreate the way software is developed, published define. and consumed.

The basic idea is similar to outsourcing your backend development, maintenance and administration to another party. In other words, the backend is made available to developers as a web service.

While different BaaS providers offer different features through a variety of pricing models, most of them use a "freemium" model. This means that core functions such as data storage, user / usage analyzes, push notifications and authentication are made available free of charge up to a certain usage limit. As soon as the usage exceeds this limit or additional functions are requested, a fee will be charged. This makes it easy for you to create and launch an app at the free usage tier and then upgrade to a paid tier as you add customers.

Usually the developer has to use the SDKs and APIs of the BaaS provider to connect their app to the back end.

4. Advantages and disadvantages of BaaS

The biggest advantage of BaaS is that developers take the burden off developers from creating and managing backends themselves. This allows the developer to focus on more important things, such as: B. the design of a compelling user experience that represents the real success factors of the app. It also helps the developer avoid steep learning curves typically associated with most back-end technologies. This reduces costs and development time. It also provides an inexpensive way to experiment with app ideas and see how they work in the real world.

As with everything else, BaaS also has some tradeoffs. The biggest downside is the risk of your BaaS provider suddenly going out of business and going out of service. In such a scenario, even if you switch to a different provider, you might have to fundamentally redesign and re-code the app as the new service might have a completely different API. In fact, one of the most famous BaaS providers, Parse, recently shut down, affecting many developers (although the Parse infrastructure has been released under an open source license and new providers have emerged to provide a Parse-compatible BaaS) ..

Another disadvantage is that the adaptation of the back-end infrastructure in a BaaS is often limited. This can mean that some features you want in your app are not available.

5. How to choose a BaaS provider?

You need to ask yourself a few questions about each BaaS provider before choosing one for your mobile app.

The first question is whether the provider can meet the needs of your app. It's worth noting that redefining the scope of your app for the features offered by a BaaS provider can produce really amazing results. But don't give up the features that make your app unique and engaging!

Most BaaS providers only offer their services free of charge until a certain point in time. This limit point is usually defined by the number of API calls, the number of active users, or a similar parameter. Sometimes it can be very difficult for the developer to predict the amount of usage or the number of users of the app. So it is entirely possible to get a platform that is not profitable for the developer.

Check this ahead of time by projecting the cost and revenue onto a range of possible values ​​corresponding to usage or number of users. You can then see how much of the app's revenue is used for BaaS fees, and you can adjust your revenue model if necessary. Alternatively, the developer can look for a BaaS provider whose pricing model best matches the revenue model of the app.

Because there are limits to adaptability, some apps may be difficult or impossible to develop with some of the common BaaS offerings. Interestingly, some BaaS providers offer more specific features for a certain app category, such as games. If your app falls into such a category, there is a greater chance that the required feature will be supported by such a provider. You have to do a bit of research for BaaS providers targeting your specific app category.

The developer must also consider the life cycle of the app. The longer the app runs, the higher the costs of staying with the BaaS provider. For an app that will be around for a long time, it might be worth investing in building your own backend.

6. Popular BaaS providers

Now that we have some insight into BaaS from both a developer's and an app launcher's point of view, let's take a look at some of the popular BaaS packages and their features. While the industry is dominated by commercial vendors, a number of emerging open source vendors also appear to be growing.

Firebase

Google's BaaS platform, Firebase, offers a comprehensive list of features that are categorized into three tiers, namely "Develop", "Earn" and "Grow". The development phase includes real-time databases, authentication, cloud messaging, storage, hosting, test lab (for testing apps on a device) and crash reports. As a commercial provider, it has also integrated its AdMob platform to monetize your app. On the way to growth you will find features like app indexing, AdWords, notifications and much more.

Since Firebase comes from Google, the creator of Android, Firebase is usually thought of as an Android platform. However, the Firebase SDK is also available for iOS.

At Envato Tuts + we have a number of tutorials and courses to help you get started with Firebase. Look at her!

AWS

Another commercial provider, Amazon Web Services (AWS), was one of the first PaaS providers. It offers a variety of cloud services and associated tools that can control all aspects of your virtual servers if needed. In fact, many other cloud service providers are using AWS in the background.

All of these options come at a cost, although AWS has a much steeper learning curve than other BaaS providers. Features include mobile SDKs, email and SMS notifications, app analytics, and the device farm for testing your app on various mobile devices.

Back4App (Parse SDK)

Parse was a popular BaaS platform, but unfortunately Facebook decided to close the platform. But don't worry the Parse SDK will die! Facebook stopped hosting parse.com in January 2017, but the Parse SDK was released as open source. There are a lot of great developers working on it at Parse SDK, and there are a number of brand new websites that offer back-end hosting as a service.

One of the best isBack4App. It has a free tier with a generous storage and requirements budget, and APIs for Android and iOS.

Mesosfer

Mesosfer introduces its highly elastic BaaS and is a commercial provider with interesting functions that supports mobile, web and even IoT embedded apps.

BaasBox

Unlike the previous members on this list, BaasBox is an open source provider of BaaS. The developer and API usage statistics displayed on their website suggest a competitive and high performing provider on par with the commercial providers.

Apache usergrid

Another open source BaaS is Apache Usergrid (from the creator of the popular web server). Usergrid supports the execution on a conventional server infrastructure, so that you can provide your own BaaS platform. Functions include user management, file and data storage, and retrieval.

Azure Mobile Services

Microsoft has added a BaaS platform to its popular Azure cloud suite. Azure Mobile Services supports push notifications, data synchronization, and authentication. For developers working in the corporate domain, Azure Mobile Services also support connectivity to corporate networks using technologies such as Active Directory and VPN. Azure Mobile Services reflects Microsoft's recent move to cross-platform development and works on Android, iOS and of course Windows Phone.

Apple CloudKit

Apple introduced its CloudKit framework alongside iOS 8 in 2014. The main goal was to act as an online database for iOS applications. However, CloudKit has many more features, including push notifications. For some developers, the best thing about CloudKit is how much you get for free. For example, with CloudKit there is no limit to the number of push notifications you can send to your users.

One downside to be aware of when using CloudKit is that it is not currently available on platforms other than Apple. This means that if you want to build an Android version of your app, CloudKit won't work!

7. Conclusion

BaaS is a practical and timely solution to the problem of adding a backend to your mobile apps. It also helps the developer to optimally control his limited time. There are a growing number of BaaS providers out there, and now you know how to take advantage of them!