By Nicholas Wright, co-founder and CEO of AppInstruct
Whether you’re building an app for yourself or your business, you’ll need infrastructure to support it. Building that infrastructure in the cloud lets you create a back end for your app without much fuss; you can focus on your app’s value proposition without the distraction of purchasing and building your own server systems.
In previous posts, I’ve outlined the basic steps to start your app development process:
- Should you hire someone or learn how to code on your own?
- How much should it cost to hire an app developer?
- How can you find and hire the right developer for your project?
- Choosing the best mobile app development technology
- Should you build your app for iOS or Android?
In this post, I’ll explain cloud platforms and services — the infrastructure you need to keep your app going.
Why your app will need a back end
Apps typically fall into one (or more) of several requirements categories. Offline apps don’t need much infrastructure: users download an app and it works. However, other apps may need:
- Data storage and synchronization
- Real-time communication
- Push Notification Services
- Web app service hosting
Offline apps tend to be single player games like Angry Birds or completely self-contained apps like Fairfax Media’s Essential Baby app. Other types of apps will require different support systems to work properly.
Data storage and synchronization services
Data storage and synchronization apps don’t need anything to run in the cloud, they simply need to store and synchronize data across multiple devices. A good example is Safari, which can store your favorite bookmarks across iPhone, iPad and iMac.
For storage — of user information or app-related data — the following services can be integrated into your app:
These services are like universally accessible disk drives, but they do have limitations.
Storage and synchronization services are more sophisticated as they allow your app to synchronize user data across multiple devices.
For example if your app is offline, then jumps back online, these more sophisticated systems can notify the app of any changes to the user data (e.g. add, remove, update, delete). Parse Data and Simperium are great because they don’t require your users to have existing accounts. iCloud is super simple to use in your app and very popular, but it’s limited to iOS and Mac only.
Support for real-time communication
A fast-growing category of cloud services is emerging that enables real-time communication (or close to) between apps, like instant messaging, document collaboration, or multi-player gaming.
There are a few good options for apps that call for this type of service, including:
If your app doesn’t require service guarantees for real-time communication, which the above services provide, Simperium is another a viable option.
Push notification services
Push notification services enable the delivery of massive amounts of cross-platform (iOS, Android, Windows Phone, Mac, Windows 8) notifications. For example, SXSW used push notifications to get important alerts to attendees, using push notifications to cut through the noise of other applications like Twitter.
Your app will need this if it’s typically used in conjunction with a custom web application.
These services can handle the delivery of large volumes of push notifications to any desired platform:
- Urban Airship
- Parse Push
- Microsoft Windows Azure Mobile Services
- Amazon SNS (Simple Notification Service)
Web app service hosting
Web app service hosting is for organizations who need to host custom PHP, Ruby, .NET, or Java applications in the cloud.
This is a mature service category and, for most apps, will be entirely unnecessary. It allows you to construct your software technology stack of choice — basically, a virtual computer that has all the system applications needed to run your web application.
The two biggest providers in this area are:
By far, EC2 is the biggest and most popular provider, used by companies like Netflix, Etsy and Flipboard. Google also has a platform, called Google App Engine, which is used by the popular Snapchat app. Others in this category include:
- Heroku, which can run Ruby, NodeJS, Java and Java-based apps only
This is a high-level summary of the main types of cloud services you can use when building an app. To learn more about building your own app, AppInstruct’s online course provides all the business and technical elements you need to learn to understand how to create an app.
In my next post, I’ll explain what’s meant by “user experience design” and why it’s so important for your mobile app users.