Sayonara Direct Downloads

It’s with a heavy heart that I’m discontinuing direct sales of iKanji and iKana for macOS. Given their low direct sales and how onerous the new notarisation process is, it just doesn’t make sense given the limited time* I now have to work on my apps. They will now be exclusively available on the Mac App Store. I’m happy to transition existing…

Death by Search Ranking

For a decade iKana and iKanji touch (yeah it’s been that long!) have generally enjoyed really good search rankings on the App Store. For pretty much any combination of relevant search terms they would show up within the top 10-20 results. For all those years my apps have enjoyed 4-5 star overall ratings and seen regular updates. Then something went wrong. I’m…

Going Freemium

After much deliberation, I’ve decided to make a big change to the way iKana touch is sold on the App Store with version 2.7. Before I get into that, let me give you some background. Since it first appeared on the App Store, nearly 10(!) years ago, iKana touch has used the paid up front business model. You bought the software, then…

Coding to keep the lights on

This has been a really busy year of coding for me so far – not that you’d be able to tell from looking at any of my own apps, which haven’t seen as much activity this year as I’d have liked. With ever declining App Store revenues, I’ve had to start spending a lot of my time doing contract work. The upside is…

Performance vs. responsiveness

Striking the balance between performance and application responsiveness isn’t particularly easy. Heck even engineering a solution that offers some kind of balance isn’t that straightforward. But before I go into that, what’s the difference between responsiveness and performance? Well responsiveness refers to how quickly the application responds to your input, whether it beachballs and stutters or whether it runs smoothly. Performance on…

Removing entities from HTML in Cocoa

To display accented characters and certain symbols in a HTML or XML document you need to encode them. For example the copyright symbol © is represented in HTML as © Applications like NewsMac Pro need to be able to decode these entities and translate them to the appropriate character. Straightforward you might think, but actually it isn’t. There are multiple ways in…

The tyranny of broken HTML in RSS

One of the problems with rendering RSS content nicely is broken HTML tag pairs. It seems certain RSS generators are very careless when it comes to preparing item summaries, often chopping through the middle of link tags when snatching the first few lines of an article. This isn’t such a big deal if you’re just displaying one item, but if you’ve got…

NSURLConnection woes

I’ve been trying to improve the speed at which things download in NewsMac Pro as well as provide support for things like feeds which require authentication. The logical choice seemed to be moving from using NSURLHandle and friends to NSURLConnection which was introduced with WebKit back in OS X 10.2.7. The first thing that struck me about NSURLConnection was that it was…