Free with in-app purchases

It happened. Podcast Chapters can, finally, be tried before you actually buy it.

Getting there was not actually all that tricky. The slightly nerve-wracking part was to provide the new in-app purchase solution while at the same time ensuring that anyone who had already bought the app did not need to pay again. Technically, it was just a matter of checking the app receipts, unlocking full functionality if the app was originally purchased before the free version. Mentally, though, it was kind of hard to convince myself that I had not missed some detail which would lock everyone out. Testing purchases and receipts seems to have become a lot easier over time, but as a first time developer of the functionality it was not always obvious what was developer error and what was correct behaviour that I simply did not grasp the details of just yet.

It was with some trepidation I finally pushed the version live last night, updated on all machines I could think of and settled into quite frequent checking of email and Twitter, hoping to not discover I had broken the world for all paying users.

Then, the Scare happened.

The Scare

A user reported on Twitter that he did not get the app unlocked, that restoring purchases did nothing, and that his only option seemed to be paying again.

Oh no.

I got in touch, and prepared a build without any purchase checks, wondering whether I should pull the version or hope to fix it quickly.

The turnaround

Fortunately, I got some quick responses, and the situation rapidly started looking better. The problem did not seem to be the actual purchase validation code, but rather the much more garden-variety code which was supposed to update the user interface to show that the user is on the unlocked version. Suddenly, I had a problem which could be worked around and which felt nice and familiar, rather than a new and complex one which I had no idea how to rapidly reproduce and debug.

I went to bed (it was … late-ish at this point) feeling rather relieved (and not having received any more problem reports). Today, I have submitted a small update which should resolve the user interface update problems as well.

What comes next?

Good question. The list of possible new features is as long as ever, but it feels really good to have got this out of the way. Not only can people try the app in a good way before paying, I now know I can handle in-app purchases in a reasonable (you can take some fun shortcuts when you only have a single purchase to worry about) manner. It is not my intention to make anything else another purchase, but it is good to know I can handle the option if I were to, for instance, add a feature which meant recurring costs for me.

I mean to start playing with Swiftui too, any day now.