What Back-End Technologies Are Used to Set Up a Mobile App?

December 9, 2016 7:38 pm Published by

 

If you are developing a mobile app, you may be trying to figure out which back-end technologies to use. The good news is there are plenty of choices that work, but you must be aware of the trade-offs for each.

Consider what elements are most important to you: lots of bandwidth, low latency, regular frequency updates, static or dynamic data, concurrent sharing or other features.

Let’s take a closer look at some of the popular options you can choose from.

Cloud Platforms

Cloud platforms like platform as a service (PaaS) and infrastructure as a service (IaaS) are increasingly popular. Examples of PaaS include Parse and Google App Engine.

Cloud platforms allow you to get started quickly because you can utilize their free tier to begin operations and then tap into the pay-as-you-go option as you grow.

With this approach, you don’t have to be concerned about setting up a server, performing upgrades, shutting down the server when needed and other time-consuming tasks.

Infrastructure as a service options include Amazon Web Services (AWS), Google Compute Engine, Microsoft’s Azure and others.

In this case, you are provided with a Linux server for adding whatever you want: Apache, Ruby on Rails, Java, Node.js and databases. The trade-off is that you must handle everything yourself — if your product scales quickly, you will be responsible for adding more servers, each with similar maintenance and security needs.

Languages

You can select from a wide variety of languages, including Ruby, PHP, Python and Java.

PHP was developed to be a server language, while Python and Ruby are scripting languages. Which one you choose depends on your proficiency with the basics of the language and how it performs as a server back-end.

Ruby and Python are relatively easy to learn and have a significant number of valuable open-source libraries.

PHP is still very popular and powers much of the web, although some industry observers feel it is losing ground every year. On the other hand, the Laravel framework for PHP is growing.

It will also benefit you to learn CSS and HTML, but you will naturally pick up much of that knowledge in the process.

For each language, there is a server framework that will make it easier for you to build the server. Python has a number of frameworks, including Bottle, Django, Tornado and Flask. Ruby has Sinatra and Ruby on Rails.

Also consider Node.js, a JavaScript runtime that will allow you to add JavaScript to the server.

Look into a framework called Express for working with Node.js.

If you go with JavaScript, consider using Mongoose for accessing MongoDB, and look at Feathers, an API layer and open-source REST.

Database Servers

Database servers are software programs that allow computers to access databases. Examples include Informix, DB2, Microsoft SQL Server and Oracle.

The servers locate, change and save information that can be handled using back-end languages.

Smaller operations will typically use a database server that also performs the function of hosting applications.

In enterprise companies, the database server and application server usually have their own dedicated machines.

Application Servers

Application servers handle transaction-based applications. They take care of all computing between end-users and back-end business apps.

Apache Tomcat, Internet Information Services (IIS) and IBM WebSphere are examples of popular application servers.

Selecting the proper back-end technology for your situation requires you to understand your options for languages, servers and frameworks.

In the end, your choice will depend on your technical resources, the skills of your team and their specialized knowledge. Whether they are more proficient in Ruby, Python, PHP or another option will play a large part in the path you choose.

Beyond programming language, however, you must have a clear vision of what business goals you are trying to achieve.

For more information, contact us today or visit our website.

Categorized in: