Mobile app development utilizing cloud services

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

Offline apps are generally single player games like Angry Birds or completely self-contained apps like Fairfax Media’s Essential Baby app.

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.

Parse Data and Simperium are great because they don’t require your users to have existing accounts.

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:

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:

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:

By far, EC2 is the biggest and most popular provider. Google have their own platform called Google App Engine which is used by the very popular Snapchat. Other’s in this category include:

To learn more about cloud services, take our Course to learn more about mobile app development.

 

 

Vijay Santhanam

Vijay Santhanam wrote on

Vijay's a co-founder of AppInstruct. He won the Vodafone Java Games Challenge in 2003 with his Skidlock Racer mobile game. Vijay taught various School of Software subjects at University of Technology, Sydney from 2010-12. He has built numerous apps for Big Name clients, including the Lasoo app and Optus (Australia's second largest mobile carrier). His favorite app is Tweetbot, for its beautiful design and elegant functionality.