Choosing a Backend Technology Stack for Your Mobile App

ausios_comic5

Okay, so you need a backend for your mobile app.

Do you use a BaaS like Firebase or roll your own custom backend?

If you’re rolling your own backend, what database to use? MySQL or MongoDB?

What about server hosting? EC2 or DigitalOcean?

You can spend your time racking your brain out on these decisions.

Or you can look at the AusiOS Backend Decision Making Matrix to help you decide. Here’s the download link to the PDF:

Backend Decision Making Matrix

Did you find this guide helpful? Feedback and suggestions are always appreciated.

Architect Your iOS App For Easy Backend Replacement, Part 2: Currying and Partial Application

ausios_comic4

In Part 1, we discussed how to architect your iOS app for more modularity and easier backend replaceability. Following the wisdom of John Carmack and Debasish Ghosh, we decided to use plain old functions instead of classes to model behaviours. We stuck those functions inside of protocol extensions. We built each function to accept a repository object, so that the functions are never coupled with any particular backend.

In this part, we’re going to take things further and make our functions more composable so that our functions can be pieced together before evaluating them against a backend.
Continue reading →

Architect Your iOS App For Easy Backend Replacement, Part 1: Functional Domain Design

ausios_comic3

Using a third party backend service (BaaS) for your iOS app’s backend can be risky, as you have no control over a third party. They can shut down your backend and put you in a tough spot. But there are cases when you need to use third party backend services. How to mitigate the risk of the third party pulling the plug on your backend? The solution, of course, is to architect your iOS app so that you can easily switch backends when required.

Continue reading →

How to Achieve iOS Networking Proficiency in 10 Steps

ausios_comic2

Most iOS apps require at least some kind of network connectivity for data transfer, which means network programming is an important area to master as an iOS developer.

How to get on the path toward mastery?

I’ve found that the best approach to a learning topic in iOS — or programming in general — is to look at the topic from several different angles.

So in the spirit of viewing things with a wide perspective (rather than merely searching for “best practices”) I present to you 10 steps that can help you kick ass at iOS network programming:

Continue reading →

How to Start Building a Backend For Your iOS App Without Relying on Parse or Firebase

ausios_comic1

You need a backend for your iOS app. With Parse closing shop, what to do now? Find a Parse replacement or build your own backend?

I am firmly in the “learn to build your own” backend camp.

Many developers advise not to build your own backend. After a BaaS shuts down, those developers scramble to find the next replacement BaaS. And then they’ll try to convince you to use a replacement BaaS too. But we all know the inevitable will happen all over again. One day you’ll get a surprise email from your BaaS provider informing you that they’re shutting down right in the middle of your new app version launch.

Continue reading →