Introduction to Mobile Cloud Platforms
If you are building a mobile application of any sophistication, you are likely to need some services to support your app. You’ll need a way to distribute your app for testing prior to submitting to the app store(s), as well as analytics, error logging, crash reporting, and possibly user and data management services. Of course, you could write these services yourself and provision servers to host these services, but why do that when you don’t have to?
Mobile Cloud Platforms provide these services for mobile (and web) applications and more. By using Mobile Cloud Platforms, you can eliminate the need to write boilerplate backend code and focus on the implementation of your mobile app. There are plenty of options out there to choose from when it comes to these services. We’ll discuss three that I’ve used recently: Fabric (aka Crashlytics), Google Firebase, and Microsoft Azure Mobile.
Fabric (aka Crashlytics)
Fabric is widely know for its beta distribution capabilities and crash reporting functionality in its Crashlytics offering, but they offer much more. Based in Boston, MA and founded in 2011, Fabric offers a smorgasbord of services (called ‘kits’) from app analytics/logging to payment processing. Setup typically includes registering with a service on their website to get API tokens, then adding a CocoaPod (iOS) or gradle module (Android) to your project, and a few lines of code.
One downside to Fabric is that their online dashboard for analytics, beta distribution management, and crash reporting can be a little confusing at first. It also does not offer a single portal to manage all the ‘kits’; You’ll need to visit 3rd party websites for some of them.
Fabric was acquired by Twitter in 2013, then by Google in early 2017. Google is now integrating Fabric into its Firebase product, which we will discuss now.
Google Firebase
Firebase was started as an independent company in 2012, based out of San Francisco. Google bought them in 2014. Unlike Fabric, Firebase supports web as well as mobile projects. It is usually associated with cloud data storage, but it is much more than that. Firebase offers a tightly integrated set of services, including the aforementioned data storage, as well as authentication, push notifications, analytics, and crash reporting. A particularly interesting service is Functions. This allows you to write functions in javascript locally and easily deploy them to a server, which can then be easily called from your app’s code. You can review a ton of sample functions in this github repo.
As I mentioned earlier, Google has now integrated Crashlytics into the Firebase suite. It looks like it is only a matter of time before the Fabric product is deprecated and fully baked into Firebase.
Microsoft Azure Mobile
Azure Mobile is Microsoft’s cloud offering. It is an offshoot of Microsoft’s main cloud offering, Azure, which is similar to Amazon Web Services (AWS). Azure Mobile is not as mature as Fabric and Firebase, so it is not as feature-rich. It does include analytics, crash reporting, device testing, build services, and distribution services. One very interesting distribution feature they offer is called CodePush.
For mobile applications written in React Native, Cordova or Universal Windows Platform (UWP), CodePush can make updates to your app(s) without going through the app store. This is possible because applications written in these ‘hybrid’ languages are interpreted and rely on code bundles apart from the native application code. Not all features can be delivered in this way (adding push notifications, for example), but standard UI updates, bug fixes and even new functionality can be introduced. This is allowed by both Apple and Google (and Microsoft, obviously) as long as the purpose of the app remains the same. You can’t use CodePush to deploy code that would turn a calculator into a dating app, for example.
Wrapping it up
Mobile Cloud Platform services allow you to create complex apps without worrying about server-side infrastructure or writing server code. They provide many boilerplate functions, such as authentication, analytics, notifications, and more. Google has a strong Mobile Cloud offering, and others such as Microsoft are putting together some interesting services. If you are preparing to build a mobile app, you should consider leveraging Mobile Cloud Platforms.