We live in a new world of apps that have richer user experiences than the web has to offer. When you’re on your way to producing a prototype app to prove your concept, business model or just for fun you may get distracted with “backend” infrastructure. It’s a distraction as it gets in the way of building an engaging and valuable user experience, most of which exists in the app itself.
To avoid these distractions many cloud services and platforms have emerged so you can focus on what’s important to your app’s value proposition.
What are cloud services/platforms? Put simply, servers somewhere in the world connected to the Internet running software.
Your Mobile App’s Cloud Requirements
Your app is generally going to fall into one or more of the following requirement categories:
- Offline apps
- Data storage and synchronization
- Real-time communication
- Push Notification Services
- Web app service hosting
Data storage and synchronization apps don’t need any smarts or programs to run in the cloud, they simply need to store and synchronize data of the app across installations on different devices. A good example is Apple’s Safari internet browser storing favorite bookmarks across iPhone, iPad and Mac.
A new category of cloud services are emerging that facilitates real-time communications; such as instant messaging, document collaboration or multi-player gaming.
Push notification services enable the delivery of massive amounts of cross-platform (iOS, Android, Windows Phone, Mac, Windows 8) notifications.
And the final category is for hosting your custom PHP, Ruby, .NET, or Java application in the cloud.
Depending on the type of app you’re building, it’s possible to avoid using the last category entirely.
Mobile app development utilizing data storage
For just storage, the following services can be integrated into your app:
An simple way to understand what these services provide, is to think of them as comparable to a universally accessible disk drive, but have their limitations.
Mobile app development utilizing data storage and synchronization
Storage and synchronization services are more sophisticated as they allow your app to synchronize user data across multiple app installs.
For example if the mobile app your developing is offline and jumps back online, your app is notified by the service of changes to the user data (e.g. add, remove, update, delete). The underlying technology behind these services is called Operational Transformation. This technology can be very complicated. Fortunately, the above services have made utilizing data synchronization in your mobile app development process very easy. Services in this category are in high demand from app developers so there are more companies sprouting up to meet the demand.
Apple’s iCloud is super simple to use in your app and very popular, but limited to iPhone app development, iPad app development and Mac app development only.
Mobile app development utilizing real-time Communication
Another fast growing category enables real-time (or close to) communication between mobile apps.
Good examples include:
- Apple’s GameKit – iOS Only and dedicated to gaming
- Layer (currently in Beta as of October 2013)
If you’re app doesn’t require service guarantees on real-time communication, Simperium is also a viable option.
Mobile app development utilizing push notification services
If your mobile app needs this category it’s typically used in conjunction with also developing a custom web app. The following services are used to 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 hosting
This very mature service category allows you to store and run virtual machines (VMs) in the cloud so you can construct ad-hoc infrastructure that uses your software technology stack of choice. A common technology stack is LAMP (Linux, Apache, MySQL and PHP).
The two biggest providers in this area are:
To learn more about cloud services, take our Course to learn more about mobile app development.