Published Monday, 26 January, 2015
Russell Ivanovic (@rustyshelf) joins the couch to discuss back-end services for mobile apps, the differences between software-as-a-service and building your own web service, and go into why you might choose one over the other.
After several side tracks, including trying to figure out who has the higher Crossy Road score, and a whole bunch of French, Jake kicks things off by asking why you might want to integrate web services to begin with. Since everyone pretty much agrees on the answer (and that iCloud does not a good back-end make), they move onto discussing some of the services out there, like Parse and Azure, that allow you to create something with some amount of transparency.
Jelly feels left out, and begins to explain that his method of choice is to build a service from scratch, usually in (the abhorrently evil) PHP, and Russell chimes in to explain how the web services for Pocket Casts and Pocket Weather are built from scratch in Java and Ruby on Rails.
Jake doesn’t feel like this is an option for him, since he hasn’t kept on top of the advancements in this area, and he feels that it would take him too long to get things up and running. Using an example of generating scaled images using Cloudinary, he explains how he set a basic thumbnail creating service up for an app he’s building in around 20 minutes. After this, the discussion takes a quick turn to scaling: Jake doesn’t need it for this project, but it’s definitely something you need to consider.
Jelly hears Ben mention a bug, and after having Jake explain it (Azure having a dependency conflict), he launches into the biggest issue he’s had with a third-party service: when Giphy changed their API and broke GIFwrapped’s built-in search feature. This brings up the discussion of how to guard against issues with third-party systems: encapsulating all the third-party related code in a single class, or providing alternate solutions.
Finally, the couch discuss the process you would go through in choosing to use a third-party system, such as expertise, time, existing libraries, and the like. They go into the details of Jake’s situation — developing apps for clients — and weight up the potential benefits and issues in comparison with Jelly and Russell, who are building products.