On Mac App Subscription Service Setapp’s iPhone and iPad Debut

Setapp, the subscription service that provides access to nearly 200 paid Mac apps for a flat monthly fee, recently announced its arrival on iOS (and iPadOS). While the move has undoubtedly been anticipated since Setapp’s launch in 2017, not many would’ve expected it would become a reality given the restrictions on Apple’s mobile platforms.

Setapp launched on iOS (and iPadOS, argh, I hate doing this) in August with eight apps, with two more seemingly added since. Arguably the most high profile of these apps is Ulysses, the text editor that’s gained its fair share of fans — with @prawnway being the most dedicated user I know — since its launch a few years ago.

I too have spent a fair amount of time using Ulysses — in fact I’m typing this in Ulysses, before I post this via MarsEdit, another longtime favourite Mac app available via Setapp — thanks at least in part to the fact that it was included as part of Setapp, a service I was already using. I have never completely embraced it thanks to its few quirks, not least of which is the way it handles links in Markdown.

Before this becomes a post about Ulysses, let’s switch back to talking about Setapp. The new iOS offering also includes apps like 2Do, Paste, and SQLPro Studio, but what’s more interesting than the selection of apps is how Setapp is getting around Apple’s restrictions to effectively “unlock” in-app purchases on iOS and iPadOS.

The Setapp app on macOS has a new section called Available on iOS, which lists apps available as part of the new offering. Open the listing page of any of these apps and you will see an ‘iOS app’ button. Tap on this button and you’ll see two options — one to download the iOS app, if you don’t have it already, and the other to unlock all features of the app.

Both these things are done via QR codes. The idea is to first install the app via the App Store and then, in the second step, to scan a QR code that unlocks all features of the said app. The app then behaves exactly how it would have if you completed an in-app purchase via the App Store.

Setapp has a webpage explaining how this setup doesn’t violate Apple’s policies, but one can’t help but wonder if Apple will one day wake up and decide this kind of behaviour is no longer allowed. That fear aside, the most disappointing fact about Setapp for iOS (and iPadOS, sigh) is probably the limited number of apps on offer right now.

As mentioned earlier, there are only ten iOS apps on offer, and all of them are “companions” to Mac apps that are already available via Setapp. That’s a disappointingly low number, but it’s worth remembering that Setapp’s entry to Mac was similar in terms of the relatively small set of apps on offer, and now the platform has grown to 198 apps (at the time of publishing this post).

Given App Store’s terms of service, it’s unlikely that Setapp will be able to offer access to “standalone” iOS/ iPadOS apps (i.e. ones without a corresponding app on other platforms) anytime soon, but one hopes that at least some other high profile Setapp partners like Screens will include their iPhone and iPad apps as part of the service.

This is especially important given some of the service’s changes around policy and pricing. Even before the launch of Setapp on iOS, the likes of Ulysses were already offering Setapp users unrestricted access to their iPad and iOS apps. But with the introduction of Setapp for iOS, each iPhone or iPad added to a Setapp account counts towards your device quota.

Those on the Setapp personal plan ($9.99 per month) are limited to using their apps on a single Mac, while if you have a Family plan ($19.99 per month) you can enjoy the same access across four different devices. Setapp now lets you add an iPad or iPhone to your account for $2.49 per month, which means if you are using, say, Ulysses across a Mac, iPhone, and iPad, you will end up paying more for that privilege.

With that said, the advantage of using a service like Setapp is unlimited access to 198 fully-unlocked premium Mac apps, including the likes of iStat Menus, Screens, BetterZip, CleanShot X, and many, many more. If you are interested in just one or two specific premium apps, you’ll undoubtedly be better served by signing up for those services directly.

What I like about Setapp is the fact I have discovered a handful of apps that otherwise may not have become part of my workflow. Every time I have a new requirement, the Setapp store is usually my first port of call, and invariably I end up finding something I can use (and at least tolerate, if not like).

Late last year, Setapp also extended its standard offering to business customers, in addition to offering custom plans that provide access to a subset of apps at an agreed per-user price. With a handful of popular developer tools and eduction apps in its portfolio, the company certainly has the potential to target a wide variety of companies. And if my work email inbox is any indication, Setapp certainly knows this too. PS – Sorry Tanya, I promise I will answer your email soon!

Using Scriptable on iOS 14 to Show Real-Time SL Departures in a Widget

I finally got around to playing with the Scriptable app, something that had been on my list since I heard about the app’s newest ability — letting you turn custom Javascript into iOS 14 widgets.

The obvious place for me to start was to try and replicate the departure boards you see at Stockholm’s bus stops, since I had (very recently) also tried to write a macOS screensaver that would do just that, before life got in the way. Continuing that abandoned project in what seemed — and, as my experiments showed, definitely is — a “friendlier” environment seemed like the logical thing to do.

Getting started with Scriptable was pretty simple, thanks largely to the sample scripts within the app, specifically the View JSON and News in Widget scripts which do exactly what their names suggest. Taking the relevant bits from the two scripts and pointing them to SL’s awesome real-time API was as easy as I thought developing the screensaver would be.

I’ve released the script as a Gist (and embedded it below), and here are some thoughts on Scriptable and writing widgets on iOS 14, as well as the script itself:

  1. This is very much a quick-and-dirty script put together in a couple of hours, and is specific to my use case as someone who lives close to a bus stop (and no train line nearby) but hates waiting there. The idea is to monitor upcoming departures at a specific bus stop in one direction so I can time my own departure from the house to minimise waiting. It should be trivial to customise the script for a more generic requirement.
  2. I use a pure black background as my iPhone wallpaper, hence the motivation to use a pure black background colour for the widget. With that said, though the screenshot shows the widget being used on the home screen, I don’t foresee continuing to use it like this on a daily basis largely to the fact that there’s no way (that I’ve come across) to force the widget to update periodically (every minute would be ideal). Which is why I was forced to add the “Updated:” bit in the footer, so I know how dated the information that I’m looking at is, and to manually run the script again (which shows the updated widget as a popup), if necessary.
The widget in action on iPhone and iPad
  1. Scriptable offers plenty of options that let you customise the look and feel of the widget but I didn’t bother experimenting with most of those. Ideally, I would love for the widget to look exactly like the boards you see at bus stops — the “stacks” added in the current TestFlight build should make it easier to do stuff like that — giving this very much “functional” widget some much-needed “whimsy”.
  2. As you can see I went the good-old fashioned “tabs and fixed-width fonts” route for formatting. For some reason using “regularMonospacedSystemFont” wouldn’t return a fixed-width font (as I understood it should), so I ended up hardcoding the font name itself, though Menlo wouldn’t have been my first pick otherwise. If you know why the regularMonospacedSystemFont approach didn’t work, please let me know via Twitter or the comments.
  3. I did all the development on the iPad (Scriptable of course is available for both iPhone and iPad) and while the development process itself was pretty straightforward, figuring out how to add a Scriptable widget to the ‘Today View’ when I was done took a lot more time than I’m willing to publicly admit. I kept looking for Scriptable under (what I now know is the old) list of widgets you see when you go to Edit > Customize from the bottom of the Today view. Maybe it’s just me, but that “+” sign to add iOS 14-only widgets is really easy to miss, especially when you are in landscape mode (which is how I use the iPad 99 percent of the time).

While it’s convenient to have this information on the iPhone and iPad, the need to build that screensaver still remains — the idea is to have the Macs in the house act as giant departure boards you can glance at while getting ready. I hope to return to development soon and add to my screensaver collection of one.

HomePod Finally Available In India — Thoughts Of A Long-Term User

The HomePod is finally available in India, roughly three-and-a-half months after Apple announced its India launch and released a software update that enabled Siri support for English (India) on the device. The Rs. 19,900 price tag is a pleasant surprise if you compare it to the official price in the US ($299), but it’s exactly what you would expect if you take in the unofficial market price, which stands at $199.

I’ve been using a HomePod — in both India and Sweden — since March 2018 and my experience is pretty much in line with what you might have read elsewhere. In a nutshell, it’s by far and away the best-sounding smart speaker available in India right now. While the newest high-end Echo devices feature much-improved sound quality, nothing comes close to the richness, clarity, and sheer loudness that the HomePod can offer.

However, Siri’s well-documented shortcomings mean that it, sadly, falls short as far as the “smarts” are concerned. While adding support for English (India) means that the HomePod is now as good as Siri on iOS in understanding Indian accents and ‘Indianisms’ (like Bollywood song names), its ability to offer useful answers and information is just as limited as that of the iPhone.

At home, we use our HomePod regularly to set timers and to look up weather, something we’ve been doing a lot more frequently since we moved to Stockholm, as the weather plays a much bigger part in day-to-day lives in this part of the world. Other HomePod features like personal requests, Siri Shortcuts, and HomeKit-support haven’t gained any traction in our household.

The boy will ask Siri to play the occasional tune, but I’ve noticed he now turns to Alexa more often, probably having been scared by the “Sorry, I’m having trouble…” response that the HomePod used to give every once-in-a-while until I figured out how to solve the problem for good (more on that in a later post). Of course the real reason he turns to the Echo Spot for his music requests is that he likes seeing lyrics as he’s listening to a song, and that he doesn’t mind the tinny sound.

But the most use we get out of our HomePod every day is by using it as a speaker for our Apple TV over AirPlay. We’ve been cord-cutters for the best part of a couple of years now, which means we do 100 percent of our TV viewing via the Apple TV, and the HomePod is our audio output device of choice.

Minor annoyances aside, this works really well, and at various points I’ve considered adding another HomePod to the setup, what with $199 sales extremely common in the US, and enjoying a true stereo pair. The only thing that’s stopped me from doing that is long-term — and I mean really long-term — question marks over the utility of the product.

I’ve already invested nearly $400 in a HomePod (yes, I am one of the “suckers” who bought it at full retail prices when it first launched in the US) knowing fully well that this device will one day become a very expensive (albeit beautiful) paperweight.

One day, in the mid- to long-term future, Apple will stop shipping HomePod firmware updates. And some day, Siri will no longer work on the device because Apple has moved on to a new voice-based assistant. And finally, WiFi and AirPlay standards on the HomePod will go out of date and will no longer be compatible with the digital infrastructure of the time.

Once all that happens — and that day will surely come — the HomePod, like many other smart devices that rely entirely on modern interfaces like wireless audio, will be completely useless.

Which brings me to the biggest thing I wish the HomePod did differently — it should have shipped with an aux-in port. I know that makes me sound like the one dude who still complains about the iPhone’s missing headphone jack (hi, @reckless) but it’s the inclusion of this “legacy” port that would’ve made the HomePod a truly “future-proof” product. Let me explain.

Before I cut the cord and switched entirely to the current Apple TV + HomePod setup, I had a whole host of devices connected to an A/V receiver. And the device I was using for my audio needs was a Cambridge SoundWorks Radiio CD 740 unit that I love for the same reasons I love the HomePod — it’s relatively compact (for what you get), and the sound quality is top-notch.

I paid top dollars for both products at purchase (and didn’t mind doing that for the most part), but I can’t imagine I will have my HomePod hooked on to my TV in 2038, the same way the 740 I bought nearly twenty years ago is still connected to my TV back home in India — all thanks to the good-old aux-in port.