I keep hearing about how the Tories slashed the NHS. The data says otherwise.

Let’s start with the chart because I want that to be the main image for this article!

I saw another facebook post today about how the evil Tories have been bad to the NHS

tldr; Dishonest marketing becomes apparent as soon as you try to subscribe.

Photo by Kolar.io on Unsplash

I have been following the FT’s excellent Coronavirus stats article

I decided that they had earned my custom, and I should start paying to try the rest of their content. …

Codable is a kind of magic.

@Published certainly behaves like magic.

But if you try to add a @Published property to your codeable, then XCode complains

This one had me frustrated for many hours. The issue is that the encoder gets an instance of Published<Type> to encode. As far as…

In the last week or so, both Apple and Google informed me that one of my apps was in a small way breaching store guidelines.

I’ll paraphrase both messages here:

One of your apps hasn’t been updated in years. It doesn’t meet current guidelines. …

Use GSuite Routing to dynamically handle different iTunes Connect test emails.

iTunes connect testing is a pain. One of the pain points is that you have to create a bunch of iTunes Connect accounts when you want to test your purchase flows. Each of those needs a separate email address.

When you add an attachment with Active Storage, Rails kicks off a background job to analyse the attachment. You can add your own analyzer — but the documentation is very thin on the details.

One of my apps uploads .heic image files. Unfortunately as of Rails 5; this triggers a crash in the image analyzer because imageMagick can’t yet handle this filetype.

My solution to the crash is to create a custom analyzer that handles image/heic files, and returns no metadata.

# lib/models/heic_analyzer.rb

class HeicAnalyzer < ActiveStorage::Analyzer

def self.accept?(blob)
blob.content_type == "image/heic"

def metadata


Make sure the class is loaded

# application.rb

config.autoload_paths << "#{Rails.root}/lib/models"

then add the Heic analyzer to active storage

# config/initializers/image_analyzer.rb

Rails.application.config.active_storage.analyzers.prepend HeicAnalyzer

That’s it. Rails now handles my .heic attachment without crashing

Originally published at https://blog.hobbyistsoftware.com on April 24, 2019.

I recently started experimenting with free trials in the Mac App Store.

Photo by AbsolutVision on Unsplash

The first App I changed is Icon Tool. This is an incredibly simple app that lets developers generate icon assets for iOS or Mac OS apps.

Because the app is so simple, I only wanted to give a…

One of the apps I maintain recently got this message from Google Play:

After review, <your app> has been removed from Google Play due to a policy violation. This app won’t be available to users until you submit a compliant update.

Issue: Violation of Usage of Android Advertising ID policy…

The EU is really really scared of smugglers*

If the UK leaves the EU, then it is possible that we could have different regulations and tariffs.

This would make it more enticing for people to smuggle goods into Europe across the Irish border.

This isn’t a new problem. We already…

What really happens with an auto-renewing subscription?

It’s one thing testing in the sandbox, but I also wanted to know what screens and emails were sent in real life.

I subscribed to my app Remote for Netflix! to see. It has a monthly subscription with a 7-day trial.

  1. First screen…

Rob Jonson

Mobile developer since before there was an iPhone. I use Rails to run server-stuff.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store