Exploring mobile app backend options

 

If you are planning to develop a mobile app, chances are that you will require a backend for storing information, or managing content. These days, there are very few apps that do not require a backend at all. So here are the options for developing a backend:

Custom server

You can set up your own server and host the backend on it. But many developers find it time consuming to set up a dedicated server, assign static IP addresses and manage the server in case things go wrong. The advantage of setting up your own server would be that you will have complete control over the server and you can customize it to your specific requirements. But if you don’t have the time to monitor your own server you can consider a cloud server.

Cloud servers

Cloud servers seem to be a favourite choice for all types of app requirements. These are a flexible and affordable solution for most applications, including mobile apps. This is the reason why hundreds of thousands of developers use cloud servers for their apps. Following are a few popular cloud server options:

Amazon AWS: AWS SDK for iOS and Android is the most widely used cloud service for mobile apps. It is well documented and includes useful libraries to get you started.

Google App Engine: This is also a popular choice, and is easy to manage and scale if your app becomes hugely popular over night.

Windows Azure: Again a strong player in cloud servers. Can be a great option if you are developing apps for windows phone 8 and even offers services such as user authentication and push notifications for iOS.

All three platforms allow developers to use the service for free initially. Thus opening up more avenues for testing your apps, and once your app gets enough users you can easily scale.

mobile app backend options

 

Mobile Backend as a Service (MBaaS)

Relatively new, as most MBaaS startups have emerged in the last few years. MBaaS can be  a great option if you don’t want to write your own backend. API’s and SDK’s offered by MBaaS providers allow you to easily connect to cloud servers and have functionalities such as user authentication, management and push notifications. So these services can offer many advantages:

  • Eliminates the hassle of configuring cloud servers.
  • Easy to use through RESTful API’s
  • Allow developers to focus on core functionality of the app and thus reduce development time
  • Some providers allow integrated analytics to monitor your apps

Here are some startups offering MBaaS:

StackMob: Techcrunch called it Heroku for Mobile, StackMob offers a range of back-end services a mobile app will require such as: Social media, storage, authentication, messaging, analytics and so on.

Kinvey: One of the oldest, and probably the first MBaaS vendor. Make it super easy for developers to setup their cloud backend.

Appcelerator: Allows developers to create cross platform apps and also provides services such as geo location and sharing.

Parse: Offering a fermium model, parse allows developers to quickly get started on their platform and only pay once they cross a certain API threshold.

Mobile payments to reach $1.3 Trillion by 2017

According to the infographic released by M for Mobile, global mobile payments will reach $1.3 trillion in the next 5 years.

Currently 80% of shoppers would prefer to use a Paypal mobile wallet as compared to other wallets such as Google or Apple.

It is expected that 50% of the phones will be NFC enabled by 2015. We will have to wait and see what direction the technology moves to. Currently, there is a lot of scepticism regarding adoption of NFC technologies by large retailers, specially around the cost of implementing NFC Point of Sales system. Oren Betzaleli, executive VP and head of marketing and products for Israeli-based Retalix, speaking to Information Week said that Implementing NFC will be extremely expensive even for the largest retailers as it requires additional hardware.

Regardless of the technology used for mobile payments, we can say for sure that the future of payment is mobile.

Source: M for Mobile

 

Building secure mobile apps

As mobile apps move from casual gaming apps to financial management and enterprise, security is becoming increasingly important. Thinking about mobile apps from perspective of security can bring many challenges, and security is often ignored in the development process, which results in apps that are easily hacked and can expose private data if exploited.

Following infographic by Kaspersky Lab shows the growing threat of Malware on Android:

Developers should keep in mind certain ways of securing the data in mobile apps. More often than not, mobile apps are not a standalone system; they interact and exchange data between different systems, which can potentially expose the data when it is being exchanged, or can easily expose the source of the data for example a private API. Hence, it is important for developers to follow the best practices in developing mobile apps with enhanced security.

Planning the application with security in mind

Identify the level of security that will be required for the type of app you are developing, for example a financial app that manages a users credit card information will require a robust level of security as compared to a gaming app. Brainstorm the security threats that may arise: platform vulnerabilities, in case the device is stolen, code reviews and so on.

Data storage

Retrieving encrypted information from a mobile phone storage can be a lot easier than hacking a secure server. Thus, you should consider storing user information such as credit cards or other sensitive data on a web server (Using a secure mechanism for data transfer of course).

Securing the APIs

If the mobile app is relying on an API, for example an enterprise web service, make sure that the API is secured. In Android apps hackers can reverse engineer an app to see what APIs it is using. Various authentication mechanisms can be used to secure an API such as OAuth, two way SSL, WS-security and so on. Sometimes you may find that you are not in charge of the API. Well in that case you can at least tell the company about possible pitfalls of not securing the API.

Testing and Tweaking

There are many types of tests that can be performed to check for security for example Static testing to check for source code vulnerabilities and Dynamic testing to check vulnerabilities once the app has been deployed to a live server to installed on the device.

Employing Experts to do the Job

If you feel that the mobile app security is really important and want to exhaustively test your app, you can always hire experts to do it.

Choosing the right CMS

Simply put, a Content Management System (CMS) is a system for managing content. Unfortunately, this basic definition fails to capture what a successful content management solution entails. 

A CMS refers to a Web application that provides a centralized database, allowing for the creation, revision and storage of various content through a predefined interface. Digital content is managed through a combination of rules, specific workflows and processes, which are applied to the content in order to facilitate the effective and efficient “output” of said content. These rules and workflows are meant to ensure that the data is easily accessible, systematically organized and fully functional.

The particular content being governed is digital information and HTML content such as video, image, graphics, text, sounds and documents. Depending on the content and how it is being used, the feature of a CMS can vary drastically from one system to the next. Generally, a CMS will have functions including indexing, search, retrieval, format management, revision control and web-based publishing. In a CMS, website content is developed and edited withing the administrative area of the application, which is referred to as the Backend CMS. The content that is displayed on the website for viewers to see is referred to as the Frontend CMS.

Choosing the right CMS for your business is an important decision. The goal of any CMS is to make the creation and revision of content as straightforward and easy as possible. Keep this in mind while conducting your search. Focusing on functionality instead of ease may results in the selection of a CMS that fails to serve your basic needs. You need to find a CMS that offers the functionality you want without sacrificing the ease of use that your customer needs. A quality CMS is one that allows users to focus on the Frontend design rather than worrying about functionality or the implementation of extensions.

Many developers rely on open source CMS’s when building their websites. The popularity of CMS’s, paired with their open source roots, has resulted in the creation of thousands of various CMS’s. As such, finding the CMS that best suits you or your company’s needs can prove daunting.

Here are some important tips to remember when choosing a CMS:

  • Not everyone who’ll be using the CMS is as tech savvy as you might be, so unless you’re building the website for yourself, you need to take the customer into account when selecting a system. You want to find a CMS that allows the customer to use the website they’re creating just as they’d like it to work. This means forgoing complicated functionality for a simple administrative interface, even if this requires more customization of the CMS so that it meets the customer’s needs.
  • Don’t be misled to think that a widely used CMS is indicative of a good CMS. Some developers make the mistake of choosing popular CMS’s based on their large community of developers. While a large following may result in a greater number of available extensions or plugins, this doesn’t guarantee that they will be best suited for your needs.
  • On a similar note, don’t pick an overly simplistic CMS just so it will be easy to use. You need to make sure that the CMS you choose includes all the functionality that you’ll need. Some of the best CMS’s are still in development, so even if you happen upon a CMS that looks promising, always check it see if it will satisfy your needs.
  • Do your research before deciding upon a CMS. Most CMS’s will offer example websites as a sample of their functionality, so evaluate these sits as a measure of the CMS’s capabilities. Read what others have said about a CMS to find out the pros and cons of a particular system. If you have questions, try reaching out to the developers for guidance.

There are several important factors to consider when searching for a CMS. These are:

  1. Installation that’s quick and easy.
  2. Simple template control and manipulation.
  3. An administrative interface that’s easy to understand.
  4. A user community that’s active and helpful.

When evaluating a CMS, be sure to take these tips and considerations into account. If you do, you’re sure to find a CMS that not only meets your development needs, but is also user-friendly.