Posts in Ios (20 found)
Unsung Today

Got your back, pt. 8

A nice moment in iOS – even if you delete an app, you might still be on the hook for its subscription, so the operating system shows this right after deletion: = 3x)" srcset="https://unsung.aresluna.org/_media/got-your-back-pt-8/1-framed.1600w.avif" type="image/avif"> (Context for the screenshot: I’m only uninstalling Quiche Browser to reinstall it and get back to the pristine onboarding for the previous post .) #got your back #ios

0 views
Unsung Yesterday

Windows does it better, pt. 3: Cut in File Explorer

Dragging and dropping files with your mouse in the Finder is nice, but there are many moments you wanna reach for the keyboard instead. Finder supports that. You dragged the file to a wrong place by accident? ⌘Z can undo it in a jiffy. You already have the right windows open? ⌘C and ⌘V can start a copy faster than the fastest of mouse gestures. And for cutting, there’s always… = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/1.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/1.1600w.avif" type="image/avif"> …well, no, there isn’t. To the best of my knowledge, the Cut item in the menu never lights up around files or folders; you simply cannot ⌘X or cut in the Finder. I think I understand the reasoning here. Of the Fantastic Four that is ⌘ZXCV, it’s ⌘X that is the truly dangerous one. Putting something in a clipboard is always a balancing act – a moment of inattention, and ⌘X turns into Delete. We generally accept it for text because the stakes are not very high, and text undo is basically too cheap to meter . Even then, occasionally, disaster strikes. For files, the stakes are quite a bit higher. The creators of the File Explorer in Windows knew all that – yet, Cut still works there: The way this is done is that the file isn’t immediately removed and put on the clipboard. No, only the intention of cut is registered – one half of the handshake, if you will – but the file stays put and nothing happens until the deal gets closed via a subsequent paste. Or, almost nothing. There is a signal that ⌘X took effect – the cut files turn slightly transparent to indicate they put on their shoes and they’re ready to go. But if you don’t finish the paste, they become solid again the moment you cut something else, or when you restart the computer. (I wouldn’t be surprised if there’s a timeout, too, although I couldn’t verify that.) I am not sure why macOS doesn’t do it the same way, particularly since they have a half-finished state designed already, for copying larger selections: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/3.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/3.1600w.avif" type="image/avif"> This feels like a strange omission I don’t fully understand, particularly given that it was vintage Mac OS that put the ⌘XCV combination on the map: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/4.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/4.1600w.avif" type="image/avif"> = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/5.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/windows-does-it-better-pt-3-cut-in-file-explorer/5.1600w.avif" type="image/avif"> What’s even stranger is that the Finder has a command to move files – but an unusual one, buried inside the secret area in one of the menus, as an ⌥ alt to Paste: It works. By putting the action on the other side, it avoids the “file floating in outer space” challenge, too. But it’s so undiscoverable that even though Move Item Here was introduced in 2011, I only learned about it a month ago as I started researching this more – and even though I know about it now, it still feels profoundly alien, being on the wrong side of the cut/paste continental divide. In a reversal of typical state of things, it feels to me is that it was Mac that did a simple/​cheap thing, and Windows that spent extra effort to dress it up into clothes of an existing Cut for reasons of familiarity, consistency, and better experience. Sure, a keyboard way to move files like Move Item Here is somewhat valuable, but nowhere near as valuable as a traditional cut, put under ⌘X ahead of ⌘V, working the same as everywhere else for years, even for decades, as one of the first denizens of motor memories all around the world. #finder #flow #keyboard #sins of our finders #system design #windows #windows does it better

0 views
Justin Duke 2 days ago

Conjury

A difficulty I have when reviewing Slay the Spire -likes is a certain anchoring bias. It can feel unfair to judge an otherwise good game, even partially, by dint of it being so aggressively inspired by a game that I consider, on a mechanical level, literally the best ever made. Conjury exists almost as a perfect distillation of this trickiness, because it is fundamentally a very good iOS game with much to love that — after a while of playing it — I cannot help but find wanting in comparison to its forebear. Structurally, and aesthetically, it is almost like a demake of Slay the Spire. Each run consists of a handful of acts, shorter and with fewer branches than Slay the Spire. Combat is a simplification of the same engine: using energy to play and draw cards, balancing attack and defense, leaning on emergent interactions between cards. And it is particularly well optimized for its format. It looks gorgeous on an iPhone; the pixel art is done just right, as are the audio and the scaffolding around it. Where the game struggles, on the gameplay side, is in the monotony — both at a micro and a macro level. In a micro sense, encounters do very little to differentiate themselves from each other; even bosses feel fairly samey, and whatever variety a given fight offers comes much more from the order in which your cards are dealt than from any need to tailor your tactics or decision-making to the enemy you happen to be facing. At a macro level, the various characters you can play in Conjury do feel fresh and distinct from one another, but repeated runs of a given character do not. This would be much less of a problem if it weren't for the fact that, in order to unlock new characters, you have to grind through a lot of runs. Where Slay the Spire is very generous with handing you new mechanics and play styles and characters as soon as you're ready to appreciate them, Conjury makes the exercise feel daunting and chore-like. In a way — and to its credit — that is not entirely dissimilar from games of the era whose aesthetic it so successfully emulates. So it's not as good as Slay the Spire. Is that so brutal a condemnation? No. And, to end on an earnest and positive note: the more honest comparison would be with other iOS games, where all of my quibbles are rendered moot. I don't think it's unreasonable to say that the average iOS game ranges somewhere from offensive to actively malicious. Obviously, there are many counterexamples. But if you're evaluating this game from the perspective of is this a better choice than anything else on the App Store, given that I've already played Slay the Spire to exhaustion? , the answer is an emphatic yes. Hmm.

0 views
Unsung 2 days ago

“A tricky problem I had to be thoughtful about.”

Phones grow big and their top edges inch closer and closer toward the horizon. Over time, iOS and apps moved some of the important surfaces to the bottom (for better or worse – I still struggle with seeing results and completions appearing above inputs), and the well-designed Reachability gesture helps, too. Still, the iOS web browser called Quiche Browser chose to tackle the problem, not the symptoms. It offers “Comfort Mode,” where you can ask it to move down the top edge of a bunch of surfaces closer to your fingers: = 3x)" srcset="https://unsung.aresluna.org/_media/a-tricky-problem-i-had-to-be-thoughtful-about/1-framed.1600w.avif" type="image/avif"> On top of that, true to the spirit of the app which revels in power-user customization, Quiche Browser allows you to decide precisely where the top should go in order to accommodate different people’s hands, and it even offers to do so per surface: These are the affected surfaces with the option off and on: The author, Greg de J., expanded on that on Threads : While designing Comfort Mode in Quiche Browser, a tricky problem I had to be thoughtful about: When you hold your phone in your right hand, favorite icons in the top left are harder to reach than ones on the right. Search suggestions don’t have this problem, since they span the width of the screen. That’s why favorites need to sit slightly lower than search suggestions, and why Comfort Mode lets you position both independently, so they all stay easy to reach one-handed. It’s an interesting idea and I wonder if it’s seeing a lot of use. The only design thought I had was: could the top space be filled or stylized so that this looks more intentional, rather than a potential rendering bug? Reachability does a good job of making it feel physical and adding a little arrow: Then again, given my job, my brain might be perfectly primed to see rendering errors everywhere. #ergonomics #touch

0 views
Stratechery 2 weeks ago

Apple Settles With E.U., U.S. App Store Fees, ATT Rules in Germany

Apple's App Store is finally facing the reality of lower fees, and the EU should be satisfied with its work; it's ok it's late.

0 views
Unsung 3 weeks ago

Tap to top: Ivory

Safari broke tap to top for tabs (say it three times fast), and Bear added two-fingers gestures . Ivory – a Mastodon client for iOS – tries a different approach in a slightly different setting. The normal tap to top gesture works as expected, but tapping the top again returns you back where you were before: I believe this is meant to be a small gesture of help if you tap to top accidentally, yet I am not entirely sure it’s effective. Would you, in a moment of panic, decide to do the same thing again, after years where every other gesture like this in the entire system taught you those taps are idempotent ? It gets a little bit worse, too. There is another established standard of going to the top – tap the selected tab again. This works across the entire operating system, too. But Ivory changes it, requiring you to tap twice, not once: I don’t have access to the combined feedback of Ivory’s users, but I am much less of a fan of this than of Bear’s approach , as it doesn’t feel like it comes together as a system. At the bottom of the screen, the interface teaches you that you have to tap one more time than usual, likely putting in your fingers the idea that you just have to tap many times , especially if you never figure out it’s a double tap and not two taps that trigger the interaction. But then, at the top, this is how the interface reacts like this when you do exactly the same thing: It feels like a system that’s well-intentioned, but inconsistent not just with the rest of iOS, but also with itself. #system design #touch

0 views
Unsung 3 weeks ago

iPod’s circular apps

iPhone’s home button and then the swipe up home gesture are so important and well done that they probably need to be covered as Unsung Heroes , but I wanted to mention something else today as we’re revisiting the whole “app icons in squircles” story ( my most recent post + Louie Mantia’s post ). The first iPhone in 2007 put apps as squircles on the home screen, and it also put a matching shape on the home button: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/ipods-circular-apps/1.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/ipods-circular-apps/1.1600w.avif" type="image/avif"> The shape on the button didn’t survive very long. It was removed starting with iPhone 5S in 2013, which introduced Touch ID – I guess it wasn’t possible to print the icon atop the button without sacrificing the finger detection quality. Then, in 2017, the button itself disappeared with the iPhone X. The iPod Touch was the iPhone without the cellular radio – it was made from 2007 to 2019, supported all the same apps as the iPhone, and sported a home button with a squircle up until the end. (Ironically, despite its name, it never got a Touch ID.) = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/ipods-circular-apps/2.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/ipods-circular-apps/2.1600w.avif" type="image/avif"> But there was another iPod that entered the app fray. It was the iPod Nano, whose last edition from 2012 had a home button – except it looked slightly different: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/ipods-circular-apps/3.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/ipods-circular-apps/3.1600w.avif" type="image/avif"> What was the reason? I don’t know if Apple ever explained it, but I believe the idea was that this iPod did not have downloadable apps, nor the App Store, nor even iOS. Those were all built-in apps, and I imagine Apple wanted to indicate visually that they’re different. Because it wasn’t just home button. The apps – eight of them, across 2 pages, although you could rearrange them! – all sported circular icons: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/ipods-circular-apps/4.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/ipods-circular-apps/4.1600w.avif" type="image/avif"> I don’t know if this approach was in any way effective, but I found it a funny little footnote. #apple #iconography

0 views
Unsung 1 months ago

Safari and system design, pt. 2

Around the time I was writing about iPhone’s Safari breaking the expected “tap to jump to the top” gesture , a conversation on social media pointed to yet another thing that this tab control does strangely. A typical use of Safari means two groups of sites: a regular set on the right, and “private” pages on the left (this is what Chrome calls “incognito mode”): = 3x)" srcset="https://unsung.aresluna.org/_media/safari-and-system-design-pt-2/1-framed.1600w.avif" type="image/avif"> As expected, you can tap on either label, and switch to the relevant group with ease: It also feels like you could slide it – and you can, except… …you immediately encounter a Scroll Lock problem . You are not dragging the pill – you are dragging what’s underneath the pill. To switch, you have to go the other way : You can immediately intuit some inherent unpleasant complexity of the whole system – not just in it “going the wrong way,” but also in how it creates room and then contracts it, in two separate steps, after you’re done. The reason is that you can actually have more site groups than just the initial two. You can even drag to where the new site group would be, and create it this way: I normally welcome these kinds of accelerators. But here, this feels overdesigned and confusing, as if someone drugged the tab instead of dragging it. The very same natural gesture – a left swipe – that should feel safe and send you to Private, will now put you in a scary new full-screen/​keyboard-out flow you almost never need. Why this relates to system design is that on/off toggles in iOS were recently redesigned to resemble oblong pills: = 3x)" srcset="https://unsung.aresluna.org/_media/safari-and-system-design-pt-2/6-framed.1600w.avif" type="image/avif"> = 3x)" srcset="https://unsung.aresluna.org/_media/safari-and-system-design-pt-2/7-framed.1600w.avif" type="image/avif"> Those do respond to dragging as you’d expect: Along the same lines, on the springboard pagination pill, dragging to the right means the next page: And so now the system is schizophrenic and identical-looking design primitives mean the opposite things. It’s as if the computer itself kept randomly pressing Scroll Lock for you, preventing you from developing a solid understanding of the system first, and motor memory second. I think the mistakes made here were twofold. First, the design overoptimized for two unnecessary things: people actually using site groups (not common), and ease of use in creating site groups (not important). My slightly cynical hypothesis is that this design presented really well in demos, which sometimes can derail a project. A more cynical theory is that this led to “accidental discoverability” that made the site group metrics look better . Second, and more important part: This particular design received an exception that it didn’t deserve. No one noticed the systemic challenge of similar UI elements doing opposite things, or people who did were not effective in pushing back. The metrics for new feature discovery are easy; the metrics for user confusion or frustration do not usually exist. This is how interaction systems slowly fall apart. As I mentioned in the first part , it is likely that Safari’s exception will now be treated as “blessed,” and start spreading further. Given enough time, more and more pills will go in whatever direction they want when dragged – and people will learn not to trust any of them. (I know the feature is actually called “ tab groups ” but I called it “site groups” intentionally, because otherwise it’s a tabbed control controlling tab groups, and things get confusing really quickly . Also, thank you to Martin Hoffman for initiating this post.) #flow #interface design #ios #process #system design #touch

0 views
Unsung 1 months ago

“Try quickly typing 1+2+3. I bet you won’t get 6.”

Earlier this month, I talked about a rotation button in photos that behaved really nicely in iOS, and not so great on the Nothing Phone . Here’s a story of a similar fumble iOS once made that might bring the point home even more. The calculator app has been preinstalled on iPhones ever since their debut in 2007. For the longest time it hasn’t been anything more than a standard four-function calculator with a decades-old feature set. If you’re not careful, however, you can mess up even that. Ten years into iPhone’s history, iOS 11 introduced a problem just like the Nothing Phone rotation – quickly tapping on keys would show them as responding, but the actual action wouldn’t be registered. Michael Tsai’s aggregator’s first entry has a video from Stephen Heaps: It shows typing 1+2+3+4 where iOS forgets one press of +, resulting in 1+23+4 = 28. Many more people posted about it afterwards, and showed various other examples . It is oddly enthralling to see a computer fail at basic math. But what’s particularly historically interesting and perhaps even more embarrassing for Apple is the absolutely rich history of solving this kind of a problem. Calculators evolved alongside typewriters as the earliest devices with button-like (as opposed to piano-like) keyboards. But the stakes were different. Imagine a badly constructed typewriter and all the ways it can disappoint you: the letter might be faint if you press the key lightly or puncture the paper if you press it too hard, the output might be misaligned, or the typebars will jam in some way, forcing you to go again. A typewriter has to work hard to divvy up a blank, analog piece of paper into a reliable grid via escapements, ratchets, and so on. But a calculator’s work to convince the analog world to be digital is more important. After all, it’s not likely that the typewriter key you pressed will output the wrong letter – but on a badly constructed calculator, a light press of 5 could absolutely output 4, or 6, or 4.5. And, while the typewriters only take your words verbatim, the calculator’s job is precisely to create new numbers out of the numbers you type. An imprecise mechanism can mess up that math. A jam could perform a partial or nondeterministic calculation. Adding 1 to 999,999 and the force necessary for the resulting cascading carry could break a device in the middle of work. On top of all that, languages have a built-in redundancy. Evn if yuo mak many typoes, th sentece can stil be understod. But all numbers basically look alike. A calculator could make a mistake when it comes to a number that is absolutely vital for your payroll, for engineering, or for navigation – and you would never spot it. Understanding all this, many calculator makers even already in the 19th century spent a wild amount of effort convincing people not just that their devices are helpful, and fast, and easy to use, but also that they can be trusted . Buttons were carefully weighted. Comptometers came with a locking mechanism. If a machine felt something didn’t go right, it would stop working and require a hard reset. The message was: “You can trust me, because I won’t ever show you bad math, and I’ll stop myself before I will ever lie to you.” Charles Babbage was so confident in his Difference Engine that he welcomed people to try to mess with its mechanical wheels in the middle of the calculation, confident even a sabotaged machine won’t ever make a mistake. Just like with the Selectric decades later , those things were solved by people who cared, in the much harsher mechanical conditions. Of course, I don’t expect everybody at Apple core iOS team to be a calculator UI historian (although it would be nice for at least one person on the team to be one!). It is embarrassing that no one on the team had enough imagination to realize that making a button respond to a quick press during animation, but not register it would cause all sorts of serious trouble. (The bug was fixed in iOS 11.2 by removing the animations, and subsequently the animations were brought back without the original problem in iOS 11.3.) But maybe the bigger embarrassment is that Apple didn’t have a battery of tests to run on top of the UI at various speeds, mimicking fingers of what must be millions of people using the calculator app. That, too, has been a standard procedure for decades. = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/try-quickly-typing-123-i-bet-you-wont-get-6/2.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/try-quickly-typing-123-i-bet-you-wont-get-6/2.1600w.avif" type="image/avif"> = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/try-quickly-typing-123-i-bet-you-wont-get-6/3.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/try-quickly-typing-123-i-bet-you-wont-get-6/3.1600w.avif" type="image/avif"> Those tests seemed missing in 2017. I hope 2+3+4 years later that’s no longer the case. #apple #bugs #flow #history #real world #touch

0 views
マリウス 1 months ago

Apple iPhone Air

tl;dr: I bought an Apple iPhone Air , not because I believe in Apple ’s self-congratulatory “privacy is a fundamental human right” marketing, but because after years of replacing Google Pixel hardware roughly every 18 months I have, again, reached the point where I need exactly one mobile device that will reliably run the closed-source financial, corporate and government apps that modern societies insist on. The Air is a fascinating piece of engineering, despite the new Liquid Glass in iOS being the UI equivalent of a bad car accident , and the device’s raw performance for things like mobile RAW photo development is, sadly, significantly ahead of anything Android offers in 2026. I still do not recommend using an iPhone as a primary device, because Apple remains a surveillance company. Long-time readers of this blog will know that I have spent the better part of the last decade trying to engineer my way out of the surveillance economy. I switched away from iOS and stock Android to GrapheneOS a long time ago, I run my own infrastructure , my own cloud , my own mail , my own Lastpass ( update ), my own Dropbox , my own search , my own Spotify , my own messenger , heck, even my own Zapier (sort of), and have generally tried to minimize the surface area that any single vendor has on me. The fact that I just spent a frankly absurd amount of money on a brand-new Apple phone should therefore probably come with an explanation, which is what this post is. It’s also a review of the iPhone Air itself, and a brief tour of how badly iOS has aged on a device that costs roughly the same as a decent used car in many parts of the world. Disclosure: I paid for the device with my own money. I have no relationship with Apple , and would honestly prefer not to give them my money in the first place. The opinions in this post are entirely my own. To understand why a GrapheneOS apologist would willingly buy a brand-new iPhone , it helps to know the road that led me here. The tl;dr is that for the past four years I have run a compartmentalized multi-phone setup , with one primary device on GrapheneOS that is as clean of corporate spyware as it gets, and one dedicated spyware phone that runs all the banking, travel, government identity, and other apps that I have to use to participate in modern society , but that I refuse to have anywhere near my actual life. The iPhone Air is the latest incarnation of that second device. Before the Air I kept an iPhone 11 Pro Max around for almost seven years. Of every smartphone I have ever owned across the past two decades, the only two devices that survived such long periods of time without a single hardware-level fault were the Motorola Razr V3i (yeah, I’m that old) and the iPhone 11 Pro Max . And with most of the banking, government, and corporate know-your-customer software that I am forced to interact with on a regular basis simply refusing to run on a de-Googled device, and, more importantly, being a gigantic PITA to recover onto any new phone if the current one should ever give up, it made sense to keep one rock solid device around that I could rely on. And because iOS is the best-supported target for specifically these apps, the iPhone is the only realistic alternative for someone who refuses to deal with Google Play Services . Running this kind of software on a separate physical device, that is kept in a Faraday bag when not in active use, is the cleanest way I have found to limit the blast radius of surveillance capitalism. In other words, the iPhone 11 Pro Max was not my phone , but more like my spyware appliance . The decision to specifically go with the iPhone (17) Air , as opposed to a more mainstream iPhone 17 or even a used predecessor, came down to two things: form factor, and longevity. I wanted a device that wouldn’t add a ton of weight to my travel setup , yet was still capable enough to survive (ideally) the next decade. I intentionally didn’t buy a used iPhone , because I’m planning for this device to hold up for a very long time, so I wanted Apple ’s initial one-year warranty, plus the reassurance that no previous owner had beaten up the battery, burned in the screen or let the device melt or freeze in their car for hours. For a spyware phone that occasionally rides along in a pocket as a backup, or that travels along in my carry-on, I do not want a brick. The iPhone 11 Pro Max that I am retiring weighed a frankly miserable 226 grams and the current iPhone 17 Pro Max is even heavier at 233g. The non- Max variant is only slightly lighter at 206g, and even the regular iPhone 17 , despite having a .2" smaller screen, is still 12g heavier than the Air . The iPhone Air , by contrast, is 5.64mm thin (excluding the camera plateau) and weighs only 165 grams, all while carrying a 6.5" OLED display. For comparison, the Google Pixel 6a , which for some time had been my spyware device and that the Air is also replacing, is a 6.1" device made predominantly of cheap plastic and glass, and weighs 178g. That’s 13g more than the larger and sturdier iPhone . The Air is, by far, the lightest 6.5" flagship I have ever held. While its footprint is significantly larger than I had expected from photos, and it is definitely not a one-handed device for people with small- to medium-sized hands, if you, like myself, are coming from a Pro Max , you will probably feel like you are holding a piece of cardboard, and I mean that in a positive sense. With most of the mobile phone industry having converged on the same slab-of-glass-with-a-camera-bump template, and the differentiators usually being marketing language rather than actual engineering, the iPhone Air is somewhat of an exception. The frame is Ti-6Al-4V , which is supposedly made with 80% recycled titanium . And while Apple has used titanium on Pro -line iPhones since, I believe, the 15 Pro , the Air clearly pushes the thickness budget to a different level. The closest competitor in the realm of well-established premium smartphones, which I believe is the Samsung Galaxy S25 Edge , is slightly thicker and is shown in many reviews to have build-quality compromises. Because the Air is too thin to fit a conventional stamped USB-C connector, Apple ’s engineers 3D-printed the metal connector frame out of titanium powder, fused with a laser, and machined to spec. As reported by Engadget , Apple ’s justification is that at this thickness, there is no other way to fit a standard-compliant USB-C connector. I am skeptical of the claim that this was the only option (a redesigned stamped part would presumably also work), but the fact that they shipped a 3D-printed titanium structural component in a consumer phone is an interesting engineering choice. Another interesting engineering choice is the camera plateau . Rather than the widespread camera trypophobia bumps , the Air has a raised horizontal rail at the top of the back, under which sit the A19 Pro SoC , the new C1X modem, the networking silicon, and the single 48MP Fusion camera. This concentration of components in a thicker strip is what makes the rest of the chassis flat. From a thermal perspective it makes total sense, as it concentrates the device’s heat generation in a region that is the easiest to keep away from the user’s hand. This is one thing that always bugged me about the 11 Pro Max , which is that the moment the device is under load (which is pretty much all the time when running a recent iOS version) the backside area, where your fingers naturally rest when holding the phone, will get uncomfortably hot. On the Air you need to actively move your fingers underneath the plateau to feel the heat. However, because the Air does not have the vapor chamber that the Pro line introduced this generation, it throttles more aggressively under sustained load than the 17 Pro . For my use case (banking apps, occasional photo editing, very occasional video) this is irrelevant, but for someone trying to play a demanding game for two hours straight, it probably isn’t. Speaking of heat, the Air packs quite a lot of it with its 6-core CPU with 5-core GPU and the Neural Accelerators , which in benchmarks scores 9,497 points in Geekbench 6 multi-core. For comparison, the Pixel 10 Pro ’s Tensor G5 , in the same benchmark, sits at roughly two thirds of that number . The C1X modem, which is Apple ’s second-generation in-house cellular modem, is also an interesting piece of engineering. It has replaced the Qualcomm silicon that has been in every iPhone since the 12 and in real-world testing the C1X appears to be noticeably more power-efficient than both the Qualcomm modem in the 16 Pro and the Samsung Exynos 5300 modem that has been making the Pixel family miserable for the past several generations. For a device whose battery is a comparatively modest 3,149 mAh , that efficiency gain is what makes the Air ’s battery life usable at all. One big difference from literally every phone that I have ever owned is the fact that the Air has no physical SIM tray. If I were planning to use this phone as my primary phone, this would be a huge PITA for travel . Pre-paid SIMs in many countries are usually not available as eSIM, or when they are, they’re significantly more expensive and privacy-invasive due to KYC measures. I have written before about why I strongly prefer physical SIMs for both privacy and practical-travel reasons, and Apple ’s decision here is a real downside for any full-time traveller . The reason for the lack of a physical SIM tray appears to be that Apple needed the volume for the already small enough battery, which makes sense. It is nevertheless a regression. Another engineering decision that somewhat made me question the whole thing is the USB port. In 2026 the world’s most valuable company decided that, on a flagship-priced device, you still only get USB 2.0 transfer speeds out of the USB-C port. For whatever reason, Apple reserves USB 3 speeds for the Pro line. This means that transferring 50MB RAW files off an SD card via a USB-C card reader is not exactly slow , but it is also not fast , and it is straightforwardly insulting on a device as expensive as the iPhone Air . Plus, the whole USB design choice also leads to absurd incompatibility issues with plenty of built-in USB controllers within SSDs, making a good number of external drives simply unusable with the Air . One big letdown at this price point for many people seems to be the single 48MP rear camera. Coming from an iPhone 11 Pro Max , or even the cheaper Pixel 6a , both of which had multi-camera arrays, I understand that the average user might perceive this as a step down for photography. However, personally, I don’t care too much as I take essentially all of my photos on dedicated cameras anyway. GSMArena ’s review calls the single rear camera the device’s “big pain point” , and I think that is fair at this price. Taken together, the Air is probably the most opinionated phone Apple has shipped in a long time. The company was willing to sacrifice camera count, port performance, and thermal headroom to deliver a piece of hardware that is as thin and light as it is, and that is built around in-house silicon. Whether this approach turns out to be a good idea, history will tell. As a piece of standalone consumer electronics, however, it is pretty impressive, and I say that as someone who, in almost every other domain , finds modern consumer hardware profoundly depressing . And then there is the software. iOS 26 ships with Liquid Glass , Apple ’s new design language, which applies a translucent, light-refracting, glass-like aesthetic to basically every system surface, from the lock screen to the notifications, Control Center, app icons, menus, and even system alerts. Apple ’s clearly high af marketing department describes it as “a new material that combines the optical qualities of glass with a fluid, responsive feel that brings depth and dynamism to every interaction” … whatever that is supposed to mean. What it actually feels like, in daily use, is sadly less flowery , and the user backlash and performance issues have been covered extensively . The kindest thing I can say about Liquid Glass is that, despite it being the Ferrari Luce of UIs , the engineering underneath it is impressive. The amount of real-time blur, refraction, and material simulation Apple is pulling off on the A19 Pro at 120Hz is a graphics feat that the Android system can only dream about. Having said that, however, I don’t think that any of that engineering would be truly necessary if somebody at Apple had asked the question “does this design language actually make the device easier to use?” before shipping it on a billion devices. The primary purpose of the Air for me, as with its predecessors, is to host all of the closed-source corporate spyware that I refuse to put on my primary GrapheneOS device . This includes: On the Air , all of this just works . Apps launch instantly, attestation succeeds, and the device does not get anywhere near as hot as the average Pixel phone doing any of it. After four years of fighting with Google ’s hardware and Android ’s gradual decay, I am, embarrassingly, enjoying the boring reliability of iOS . The thing I did not expect, and the thing that has surprised me about the Air , is how good it is at mobile RAW photo development. For a long time I had been doing all of my photography workflow on a Pixel Tablet running GrapheneOS , using Lightroom Mobile . The arrangement worked, but it didn’t work well. Lightroom Mobile on the Tensor G2 -powered Pixel Tablet has increasingly become a sluggish, crash-prone mess , with editing operations that take noticeable seconds to render preview updates, occasional import failures, and a battery life under heavy editing that is less than three hours. On the iPhone Air , the same workflow (using a USB-C SD card reader, plus the free Snapseed app) is vastly faster. Importing a card full of 50MB RAW files from my Fuji is bottlenecked by the USB 2.0 port rather than the phone. Edit operations on RAW files are essentially instantaneous, even with multiple layered adjustments. Exporting to JPEG happens in well under two seconds per image. Obviously the Air ’s A19 Pro SoC was released several years after the Tensor G2 , and it is orders of magnitude faster on graphics workloads, but the Pixel Tablet is nevertheless a 2023 product that Google is still selling new in 2026. The fact that an in-pocket, 5.6mm-thin iPhone runs circles around it on the same workload is, frankly, embarrassing for Google . The mobile content-creation software ecosystem on iOS is also significantly better than what is available on Android , and not just because the hardware is faster. Lightroom Mobile on iOS is more polished than the Android version, and even Snapseed , an app by Google , runs noticeably more smoothly on iOS than it does on Android . Even free, ad-supported photo apps tend to be visibly better on iOS than anything on Android . Some of this is because developers prioritize iOS for revenue reasons, because literally every little sh.t app on iOS these days can seemingly charge a price or, worse, a subscription fee. However, some of it is also because Metal and Core Image are better-integrated graphics and imaging stacks than what Android exposes to third-party developers. Whatever the reason, in the specific category of mobile RAW photo development, iOS is not just ahead, but it is literally pulling Android ’s pants down and slapping its Baklava . Even setting RAW editing aside, the device feels noticeably snappier than any Android phone I have used, including the Pixel 8 . App launches are faster, animations are smoother, and background apps stay in memory longer. Apple ’s memory management on iOS , even with comparatively modest RAM (the Air has 12GB), is more aggressive about keeping apps warm than Android ’s. Tom’s Guide ’s real-world performance testing shows iPhones consistently lapping Android flagships on workloads like video transcoding, where the iPhone 17 Pro models complete a standard test in 22 seconds, while every Samsung Galaxy S25 variant takes over twice as long. On purely synthetic Geekbench 6 multi-core, the Snapdragon 8 Elite Gen 5 does outperform the A19 Pro , but the Snapdragon ’s lead in synthetic CPU benchmarks does not translate consistently into real-world responsiveness, because Android as an operating system still carries a significant amount of overhead that even the fastest silicon cannot entirely paper over. On the iOS side, the A19 Pro ’s single-core performance (around 3,871 points in Geekbench 6 ) is still the highest of any shipping mobile SoC. A heuristic that I have used for years, and that has consistently held up, is that an iPhone from year N tends to feel as snappy in everyday use as an Android flagship from year N+1 or N+2 , and I’m certain that the iPhone Air is no exception to that rule. This is a generic OS observation rather than a comment on the Air specifically, but it is a real observation, and it is one of the reasons why iOS devices keep getting recommended even by people who would much rather be using something else. Besides the superior hardware of Apple ’s phones over specifically the Google Pixel devices, the ecosystem of accessories that are intentionally designed to fit the iPhone lineup is another thing that Google , as well as most other Android manufacturers (with the exception of Samsung and Xiaomi ), has failed to establish. In recent years, Apple managed to further increase their ecosystem’s lead with their MagSafe quick-attach feature, for which you can find literally everything, from snap-on card holders through powerbanks all the way to actual stands. Because I was curious to give the MagSafe system a try, I decided to pick up a powerbank that unintentionally fits the “Space Black” iPhone Air better than Apple ’s own, plain white iPhone Air MagSafe Battery . I chose the Xiaomi UltraThin Magnetic Power Bank 5000 not only because its design was clearly targeted at iPhone Air users, but also because it is the thinnest (6mm) and lightest (98g) 5000 mAh power bank on the market, thanks to its relatively new high-energy-density silicon-carbon battery. When attached to the back of the Air it brings up the device’s weight to 263g in total, which is noticeably heavier than most other smartphones, but it also almost doubles the phone’s battery life. While the Xiaomi power bank can deliver 22.5W, it only does so via USB-C, and because it is not MagSafe -certified, it drops to 7.5W when charging the phone wirelessly (by snapping it on using MagSafe ), rather than the 15W that Qi2 phones get out of it. With the Air locked and inactive it takes about two to three hours to charge it to around 92%. It never reaches 100%, despite the power bank carrying considerably more capacity than the phone’s integrated battery, due to the inefficiency of wireless charging . Note: I’m aware that Google introduced MagSafe compatibility into its Pixel line with the Google Pixel 10 , however, there is no dedicated ecosystem targeting specifically the Pixel and its hardware design . For the narrow use case that I have personally been struggling to solve, which is “I need a single, lightweight, and highly reliable device to host all the closed-source corporate spyware I am forced to interact with, and I already have a primary GrapheneOS device for my actual life” , the iPhone Air seems like a very good option, at least ignoring the absurd price tag. It is light enough to carry in a Faraday bag inside my cabin luggage with me and it’s flat enough to occasionally bring it alongside a Pixel without making my pockets look like I pack big data. It appears to be reliable enough that I do not expect to repeat this exercise for at least another five to seven years, and it runs every attestation-dependent banking, travel, and near-future dystopian government app I might need it to run. On top of that, the mobile content-creation software story on iOS is, sadly, lightyears ahead of Android , as well as Windows and Linux . For anybody whose use case is “I want this device to be the primary, always-with-me phone that handles my nudes photography, my manifestos notes, my 4chaning web-browsing, and my doomscrolling actual life” , I cannot in good conscience recommend the Air , or any other iPhone , for exactly the same reasons I have been writing about for the past years . Apple is, with all due respect to its marketing department, a surveillance company . The fact that it chooses to surveil its users somewhat more politely than Google does is not, by itself, a reason to grant it custody of your private life. You cannot audit the OS, you cannot disable any hidden surveillance subsystem, and you most certainly cannot install a hardened replacement. The iPhone Air is a fascinating piece of engineering and a perfectly competent spyware appliance . It is however not, and will never be, my primary phone. Banking apps for several jurisdictions, most of which now require Google Play Integrity or equivalent attestation on Android and basically refuse to function on GrapheneOS without disabling the very protections that make GrapheneOS worth running in the first place. Apple Wallet for boarding passes and, in some jurisdictions, virtual VISA and MasterCards. Luckily I’m neither a citizen nor a resident of a country that imposes the absurdity of digital state-issued identifiers . Corporate apps that some clients might use and require, as well as privacy-invasive bs like WhatsApp , using throwaway phone numbers, in jurisdictions in which large parts of public life run on it . Travel apps (airlines, hotels, rental cars), most of which are technically available on GrapheneOS but which are also ill-behaved, ad-laden, and absolutely should not be on the same device as my personal data.

0 views
Unsung 1 months ago

Max one weird thing

If you want to record the screen from your iPhone on your Mac, open the QuickTime Player app but ignore New Screen Recording, and click on New Movie Recording instead. = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/max-one-weird-thing/1.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/max-one-weird-thing/1.1600w.avif" type="image/avif"> This instruction is a fever dream of three weird things in sequence: It’s interesting to me to think how we got here: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/max-one-weird-thing/2.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/max-one-weird-thing/2.1600w.avif" type="image/avif"> = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/max-one-weird-thing/3.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/max-one-weird-thing/3.1600w.avif" type="image/avif"> Long ago, the Player was the only free, consumer-facing part of QuickTime, so it needed special branding. You could purchase QuickTime Pro – you would even get aggressive ad banners for it inside Mac OS! – and its encoding and saving capabilities would then be sprinkled across the entire system. = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/max-one-weird-thing/4.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/max-one-weird-thing/4.1600w.avif" type="image/avif"> “New Movie Recording” originally offered recording from external video cameras (like iSight , another cute name). “New Screen Recording” was added later, for recording from internal screens. My guess is that technically, architecturally, or both, it was easier to treat external screens (like iPhone or Apple TV) as external video cameras since the UI and affordances matched them more closely. So that’s why screen recording from external devices ended up under “New Movie Recording.” As a UX historian, this is fun and fascinating! I love tracing back that kind of stuff and learning how certain strange things came to be. As a user… not so much. “If you want to record the screen from your iPhone on your Mac, open the QuickTime Player app but ignore New Screen Recording, and click on New Movie Recording instead.” This feels thrice arbitrary, closer to a magical incantation than a computer command, requiring you to hold a bunch of counterintuitive things in your head, or look them up every time. “Wait, what was the strange name?“ “Yeah, it’s called a player, but that’s ok.” “Hmm, I remember something about not choosing the obvious command.“ I have this internal rule that a flow or a space in the UI should have at most one weird thing. I can’t prove it to you mathematically, and I would be the first to find exceptions to my own rule. But one weird thing makes me nervous, and two or more weird things in concert raise the hair at the back of my neck. Two weird things is when the “launch blocking” bulb lights up in my head. Work needs to happen to bring the weirdness count back to 1 or 0. This is one example of what I dragged Apple earlier for : it’s not just speed that matters. It’s noticing this kind of complexity, places where an easy way was chosen, design debt accumulated, and things got simply too weird. Apple allowed three weird things to accumulate here. (By the way, delightful weird doesn’t count! But it’s hard for me to imagine anyone defending these three things above as delightful or positive in any way.) “If you want to record the screen from your iPhone on your Mac, open the QuickTime Player app but ignore New Screen Recording, and click on New Movie Recording instead.” “If you want to record the screen from your iPhone on your Mac, open the Recorder app and click on New Screen Recording.” It’s not trivial to get to this or something similar, but it’s also not really hard . You can get rid of weird things, but you need to want it. #apple #change management #complexity What on earth is “QuickTime”? I am recording with a player ? Why can’t I choose the option that describes exactly what I want to do? QuickTime is a 1990s brand, an offshoot of QuickDraw. Instead of QuickAnimate or QuickPlay, Apple called it QuickTime because it felt cute: time is what separates static images from video. The branding was much more prominent in the 1990s and 2000s, but mostly fell out of use – searching for “quicktime” in system settings today, for example, yields zero results. Long ago, the Player was the only free, consumer-facing part of QuickTime, so it needed special branding. You could purchase QuickTime Pro – you would even get aggressive ad banners for it inside Mac OS! – and its encoding and saving capabilities would then be sprinkled across the entire system. “New Movie Recording” originally offered recording from external video cameras (like iSight , another cute name). “New Screen Recording” was added later, for recording from internal screens. My guess is that technically, architecturally, or both, it was easier to treat external screens (like iPhone or Apple TV) as external video cameras since the UI and affordances matched them more closely. So that’s why screen recording from external devices ended up under “New Movie Recording.”

0 views
Unsung 1 months ago

An accident inside an accident

I have never been particularly fond of “shake to undo” on the iPhone. It’s not a pleasant gesture to perform, I feel like typically I don’t have strong enough of a grip on my iPhone to invoke it without fear, and the gesture often undertriggers, requiring an even harder and more cumbersome shake, etc. etc. (One thing I never want to undo is my screen’s pristine surface by having it meet the sidewalk.) I am aware that many years ago, iOS introduced an alternative: a three-finger swipe. But I feel like Apple flubbed that, also – three fingers are hard to plop onto a small screen, and while regular going back navigation means swiping from left to right, undo is inexplicably a three-finger right-to-left swipe. I mean, okay, it’s explicable – it’s the movement of the cursor before and after the typing is undone. But to my brain that feels less strong than the other association, and undo is not always about typing. I also see many people not knowing about this alternative and I must not be the only person struggling, since I see more and more apps throw in the towel and put undo and redo as on-screen actions: = 3x)" srcset="https://unsung.aresluna.org/_media/an-accident-inside-an-accident/1-framed.1600w.avif" type="image/avif"> = 3x)" srcset="https://unsung.aresluna.org/_media/an-accident-inside-an-accident/2-framed.1600w.avif" type="image/avif"> = 3x)" srcset="https://unsung.aresluna.org/_media/an-accident-inside-an-accident/3-framed.1600w.avif" type="image/avif"> Curiously, I even spotted Gmail on desktop doing that recently: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/an-accident-inside-an-accident/4.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/an-accident-inside-an-accident/4.1600w.avif" type="image/avif"> It’s all a welcome improvement under the circumstances, but those are literally all over the place – imagine if on a laptop, each app had a different key shortcut for undo. (We’ve had that, in the 1980s. The 1980s Nostalgia Industrial Complex doesn’t want you to know about stuff like that.) Anyway, some time ago I promised more onboarding content , and here’s a little thing that happened to me recently. The inciting incident is that I accidentally shook my iPad, and then I saw this: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/an-accident-inside-an-accident/5.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/an-accident-inside-an-accident/5.1600w.avif" type="image/avif"> Wait, does it mean there is yet another, third undo shortcut? I swiped through the carousel to see these: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/an-accident-inside-an-accident/6.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/an-accident-inside-an-accident/6.1600w.avif" type="image/avif"> = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/an-accident-inside-an-accident/7.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/an-accident-inside-an-accident/7.1600w.avif" type="image/avif"> None of these feel particularly pleasant to use – although they are nicer on the iPad than on the iPhone – but I started playing with them, and I discovered a fourth entry point. Just a single three-finger tap shows a new-to-me onscreen editing menu, sort of the equivalent of the Edit menu on the desktop: This works on the iPhone and the iPad, and since then that’s the one thing I did remember and I find using. So, to summarize: Yeah, even this still doesn’t feel great. But it’s there in a (no pun intended) pinch. So, is this a success story for onboarding? I think not quite. It all started with an accidental iPad shake, after all, and the gesture I ended up using I also discovered accidentally. But to be fair, I also did learn something, and I think there are some bones of the right solution in here somewhere. Onboarding and in-product education generally feel so bad that even this rickety encounter can be counted as a small victory. #apple #onboarding #touch #undo shake to undo – unpleasant double tap with three fingers to undo – unpleasant a three-finger swipe to undo – unpleasant, confusing direction single tap with three fingers to show a menu, then tap to undo – less unpleasant, but stuck with me

0 views
Alex White's Blog 2 months ago

Week 2 of daily driving the iPad

I’ve been thoroughly enjoying my new iPad , it’s pretty much replaced my personal laptop in my day-to-day. Surprisingly it’s also replaced my need for a desktop computer. Through the use of my USB-C dock and Apple wireless keyboard/trackpad, this little iPad works perfectly as a desktop machine. It drives my 32” Ultrawide perfectly, and the windowed multi-tasking is excellent. It can even use my webcam! The only downside I’ve really run into is my monitor is pretty old, so the refresh rate is much lower than the iPad making my mouse feel laggy when moving between the two.

0 views
Jason Tucker 2 months ago

Quartermaster: A Homelab Remote That Doesn't Pick a Side

Most homelab remote apps pick a lane. You get one thing for Plex, another for the *arr stack, and a third for the servers underneath. Quartermaster, built by UK developer Lewis Egley , tries to cover all three from a single native iOS app. I have a bunch of mobile apps that have tried to do this and none come close to what Lewis has done. What is a Quartermaster? A quartermaster is an official responsible for managing and distributing supplies and provisions (such as food, uniforms, and equipment) in the army, or for handling navigation and steering duties aboard a ship. Think of Q in James Bond but for this its how you are going to interact with your homelab via it's new Quartermaster. The pitch is currently thirty services split into two halves. One half is entertainment. The other is what the app calls the "Command Centre", everything that keeps the entertainment half running. The home screen leads with an Up Next row for the week ahead, then Recently Added underneath. It reads as a single calm screen instead of a wall of separate widgets, which is usually where these apps end up once you've connected more than two or three services. Radarr and Sonarr get full management inside the app: browse, search, add, edit, monitor. Lidarr gets a lighter touch, connection and live status rather than editing. My library runs all three, and the Radarr and Sonarr depth is the part I actually use daily. Movies and show detail screens pull ratings from multiple sources into one line. There's a taste match score too, computed on the device from your own library and request history rather than pulled from somewhere else. Quality and file size sit next to the monitoring toggle, so a request doesn't need a separate screen. Download clients get proper treatment as well. SABnzbd gets a full queue and history. NZBGet, qBittorrent, Transmission and Deluge show live status, with Transmission and Deluge going further into queue management: adding, pausing and removing torrents directly from the phone. Bazarr surfaces a wanted list and lets you grab subtitles without opening a browser tab. Prowlarr and NZBHydra2 get connection and live status, which covers what most people actually need from an indexer manager on a phone screen. For media servers, Plex, Jellyfin and Emby all get sessions, now playing, and recently added. Tautulli goes further, with full activity history and the ability to terminate a session remotely. That last part matters more than it sounds. Someone transcoding a 4K file from three states away over hotel wifi is exactly the kind of thing you want to kill from your phone, not from a laptop you don't have open. I run Jellyfin now, not Plex, so Tautulli isn't part of my stack anymore. What I'd actually want in its place is Streamystats support. If you're running Jellyfin, that's the equivalent tool, and right now it's missing from the list. Reading and photo libraries round out this half. Komga and Kavita cover comics and ebooks. Immich covers photos, including job status and storage. Audiobookshelf shows library and listening progress. Let's embrace the British spelling here. This is the half that actually separates Quartermaster from a typical media remote. Flip over and you get one screen that flags what needs attention: a stopped container, a degraded tunnel, downloads sitting blocked. Everything else stays quiet until it isn't. Portainer gets full container management, live stats plus start, stop and restart. Unraid gets array status, per disk temperature, and Docker and VM controls from the same screen. A disk running hot shows up here before you'd notice any other way, and the destructive actions sit behind a confirm step. Network gets its own section. AdGuard Home and Pi-hole both get blocking stats and a pause toggle, useful for the ten seconds a smart TV app refuses to load without ads turned back on. Cloudflare covers tunnels, security and analytics, which lines up with running cloudflared alongside Tailscale rather than instead of it. Tailscale itself isn't on the list yet. Glances covers general system stats: CPU, memory, disks, temperatures. Tdarr shows the transcode queue as a read only monitor, nothing more. Home Assistant is the one that surprised me. Lights, locks, climate and scenes sit in the same app you'd use to check whether Sonarr grabbed last night's episode. It might be more than some people want in one place, but it's a wild thing to see working. The part worth calling out is how notifications work. There's no company server sitting between your services and your phone. While the app is open, alerts fire the moment something finishes or fails. When the app is closed, the alert has to come from somewhere you already control: a self-hosted ntfy instance, or Pushover, Discord, Telegram. Your Sonarr instance pushes straight to your own ntfy server, and that pushes to your phone. Nothing about a finished download passes through infrastructure Quartermaster runs. Background checks for slower things, like storage filling up, run when iOS allows it. The app is upfront that this isn't a guarantee, which is a fair way to describe how background execution actually behaves on iOS rather than promising something the platform can't reliably deliver. Here's the full list of thirty connected services, grouped the way the app groups them: The app's website puts it plainly in the footer: a native iOS controller for your whole self-hosted stack, thirty services across two worlds, from your media to the homelab that runs it. Pure client. Credentials never leave your device. Built in the UK, made by one developer. What that means in practice is you do the work. You go collect your own API keys from each service and enter them into the app yourself. Nothing is scraped or auto-discovered. If a key changes on your end, fixing it is on you, not the app. Quartermaster also supports local-only access, which matters if you've got something like an iPad that never leaves the house. Point it at a plain 10.0.0.x or 192.168.0.x address and you're done. If you want more, Tailscale, Cloudflare, and header-based auth bypasses are all fair game too. But it also supports remote as well with Tailscale, Cloudflare, and header-based auth all ready to go to make a secure connection regardless of what ways you've set things up for yourself. The app isn't opinionated about which of those you pick. It doesn't push you toward a specific setup, it just works with whatever you already have. And there's no server owned by the developer sitting in the middle. It's your device talking directly to your services. Free covers one service, fully. Pro unlocks everything on the features page for 14.99 once, or 3.99 a month if you'd rather pay as you go. With this many integrations on offer, that's not a hard number to justify once more than one or two things on the list are part of your actual stack. If your homelab is just a media server and a couple of *arr containers, Quartermaster is more app than you need. It earns its place once the stack grows sideways: Unraid or Proxmox underneath, AdGuard or Pi-hole for DNS, Home Assistant tying the house into the same network. My stack leans harder into Jellyfin than Plex these days, and Quartermaster treats both as first class citizens, sessions and continue watching either way. Readarr and Tailscale aren't on the list yet, so those stay outside the app for me. Streamystats support would close the gap Tautulli leaves behind for Jellyfin users like me. I have a few services that are exposed to the internet via Cloudflare Tunnel but all of my services are behind Tailscale. Personally anything I want to access outside of Cloudflare I'd use Tailscale for. It's my vpn of choice for this sort of thing. Unraid exposes all of my docker services that I use as hostname nodes in my tailnet so I'm just using those for my remote access. Local access I'm using my local hostnames and IP addresses and Quartermaster also detects what wifi you are on so it can switch gears with out you stressing. There is a lot to be said about this app and how far it as come in the last 2 weeks of development. I've been using the test flight of the app and so many new features, services and integrations have been added to the app. There are also a bunch of great features coming down the pipeline in the next few updates that are going to make this app even better. (Search for missing episodes, poster states when items are being acquired, missing or not aired yet). This is one of those apps the dev actually uses himself, and it shows. Unraid support has been rock solid, being able to see everything in one app has been great. I've been using an app called Unraid Deck and wow it almost rivals that and this is just some feature added to a big app. The Lewis has added so much support for various services including request support in Seerr , and approvals of those requests. Shelfmark support has been added. It's wild that they have added Home Assistant support in the app which isn't something I'd have much use for since I use the official app but its a nice touch. Beszel support allows for the app the see whats going on with your servers that are running Beszel agent, it's great! Being able to see the health of your Cloudflare tunnel has been handy. I'd imagine that Tailscale support will be added as well since, why not. Using Needledrop for my music requests has been great. And my number one request for Streamystats to be added was and works smashingly well with much more coming with it such as Overview, Activity, Content lots of Deep Stats with watch hours and new playing row. I'm stoked about this one. I'll circle back around in a few weeks and update you all on how this app is evolving. I wrote a recent blog post about Proxmox VE and mentioned that Quartermaster workes really well with it. If you havent tried it yet its quite nice, between that and Unraid it looks like its supporting some great Homelab friendly services. Their website: The iOS App: Movies, TV & Music: Radarr, Sonarr, Lidarr Downloads: SABnzbd, NZBGet, qBittorrent, Transmission, Deluge Requests: Jellyseerr / Overseerr / Seerr, MusicSeerr Streaming: Jellyfin, Emby, Plex Books & Audiobooks: Komga, Kavita, Audiobookshelf Photos: Immich Smart Home: Home Assistant Activity & Stats: Tautulli Indexers & Subtitles: Prowlarr, Bazarr, NZBHydra2 Network: AdGuard Home, Pi-hole Servers & Docker: Glances, Portainer, Unraid, Proxmox VE Media Processing: Tdarr More: Cloudflare

0 views
Jason Tucker 2 months ago

Callsheet: The Companion App for Jellyfin (and Plex, If You Must)

I saw a post from Casey Liss about Callsheet a couple days ago and asked him a simple question on Mastodon. Does it support Jellyfin yet? I already knew it worked with Plex and have been using it since it came out many years back. Casey wrote back almost immediately. It's already there. What I didn't know is that Jellyfin support had shipped back in May. It looks like Casey is also moving way from Plex, that benefits us all as it relates to this app. I was already using the Plex feature in it and didn't realize that Jellyfin was added. If you haven't run into Callsheet before, it's a cast and crew lookup app for iOS, iPadOS, macOS, and visionOS, built by Casey. You probably know him from the Accidental Tech Podcast or his other show, Analog(ue) , with Mike Hurley. He built Callsheet as his own answer to a question a lot of us have had while watching something. Who is that actor, and what else have they been in? IMDb technically answers that question. It also makes you fight through ads and clutter to get there. Callsheet skips all of that and pulls its data from TMDB instead. That alone would make it a nice utility app. The part I care about is what Callsheet does once you're actually watching something, and which server it's watching along with you. None of that is new on its own. Trakt has done some version of "what am I currently watching" for years, mostly built around scrobbling from various clients. What's different here is that Callsheet ties that playback position directly to its cast and crew database. You're not just seeing a progress bar. You can jump straight from "I'm 20 minutes into this episode" to "who plays that character" without leaving the app. The per-title progress meter is newer than I realized. Casey added it in version 2026.5, released June 20, 2026, along with the "Ends At" popover that breaks down runtime versus what you've already watched. Before that, Now Playing showed what you were watching, just not how far into it you were. How the Jellyfin integration with Now Playing in Callsheet. Callsheet has supported Plex since version 2023.4, back in September 2023, alongside a similar integration for the Channels app. For years there was only one way to connect, and Casey has been pretty open that it was never great. He's described that original mechanism as unreliable to the point that he regretted including it at all. That original approach is now called Passive mode. It talks directly to Plex clients over the local network, no login required, and it can even show what's playing on someone else's Plex server if you're on the same network as their client. The tradeoff is that it barely works with iOS and iPadOS clients, and it only works at all if you're on the same network as the playback. In 2026.5 , Casey added a second option called Active mode. It requires logging into Plex, similar to Jellyfin's Quick Connect, but in exchange it works reliably, works with iOS and iPadOS clients, and works even when you're away from home. The catch is it only shows media from your own server, not anyone else's. Casey was candid about why he built this. He's been migrating his own media setup toward Jellyfin because Plex keeps getting worse, and once he'd already broken his own no-login rule to support Jellyfin in 2026.4, adding a login option for Plex was the obvious next step. Version 2026.4 , released in May 2026, added proper Jellyfin support to the Now Playing view. Setting it up takes a few steps: Once that's done, the connection sticks around. You don't have to repeat the dance every time you open the app. It's a little embarrassing that I went two months without noticing this had shipped. But now that I've had it running for even a few days, it's held up without a single hiccup. No missed progress updates, no stale sessions, nothing to troubleshoot. There's a detail buried in the release notes that's worth calling out on its own. If you point Callsheet at a Tailscale address for your Jellyfin server, whether that's your 100.x address or a home-domain.ts.net hostname, the Jellyfin integration is the only one of the three (Plex, Channels, and Jellyfin) that actually works remotely. Plex and Channels both need Callsheet to be on the same network as whatever's doing the playback. Jellyfin doesn't have that restriction. That matches how I use Tailscale everywhere else in my setup. If I'm out of the house watching something on my phone through my Jellyfin client, Callsheet can still show me progress and cast information without me being on my home network. Authorizing the Jellyfin Integration Not entirely, and I don't think that's really the goal. Trakt tracks watch history over time, builds stats, and has a whole social layer around what you and your friends are watching. Callsheet doesn't do any of that. What it does is answer the question you have right now, mid-episode, about who's on screen and how much time is left before you need to decide whether to keep going. For me, that's actually the more useful tool most of the time. I don't check Trakt while I'm watching something. I check it after, if at all. Callsheet is the app I reach for in the moment, and now that moment includes Jellyfin instead of just Plex. I've been slowly replacing pieces of my Plex-dependent workflow for a while now, and this is one more piece that no longer needs Plex to function. Casey mentioned in that same release he's been running Jellyfin alongside Plex on his own Mac mini, I'm curious how many other developers in this space are quietly making the same switch behind the scenes and what new Jellyfin introductions are out there for apps I'm already using. Time to dig more into what I'm using already to see what I can find. In Callsheet, go to Settings, then Persnickety Preferences, then Integrations. Find the Jellyfin section and enter your server URL. Callsheet generates a Quick Connect code. Open your Jellyfin server's admin dashboard and approve that code.

0 views
Unsung 2 months ago

“Icons that are iconic”

Apple might have undone the macOS Tahoe menu icons decision , but this wasn’t the only contentious iconography issue in their ecosystem. On his blog, Jim Nielsen writes how Apple filed away so much expression by forcing rigid icon bureaucracy in macOS. Nielsen focuses mostly on distinctiveness; previously, you could make the icon unique by its general shape or the shape of its contents, but one of these two levers has now been taken away: This over-emphasis on “systems” design seems endemic to modern software. Systems prescribe rules because they are the easiest attributes to document, enforce, and automate — “All icons must use this shape, this lighting, this stroke.” Excellence, by contrast, is harder to systematize. It requires judgment, taste, care, experience, and a sensitivity to context — all in service of meaning and purpose, not superficial similarity. However, one also can’t help but notice how ugly and amateurish the Creator Studio icons are, so it all feels absolutely like a net negative – the new system took something away and the proposed replacement feels low quality: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/1.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/1.1600w.avif" type="image/avif"> Elsewhere, on Rogue Amoeba’s blog , Paul Kafasis straight up asks Apple to undo the 2025 decision to contain macOS icons inside squircles: Apple’s prohibition on shapes is a step backward for both usability and creativity in app icons. Icons are now harder to distinguish because they’re no longer allowed to be distinctive. But there’s no technical reason for it. Apple could, and should, once again allow icons to take on a wide variety of shapes. Both these prompted me to think a bit of Apple’s app iconography as a system. Let’s start with iOS: = 3x)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/2-framed.1600w.avif" type="image/avif"> Recently, a new option has been added to remove names of apps, which is another way to disambiguate them. = 3x)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/3-framed.1600w.avif" type="image/avif"> = 3x)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/4-framed.1600w.avif" type="image/avif"> Also recently, Apple’s generally unpleasant-looking theming options (color tinting and glassification) reduced color coding as a way to recognize a particular icon. = 3x)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/5-framed.1600w.avif" type="image/avif"> = 3x)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/6-framed.1600w.avif" type="image/avif"> At the same time, iOS is still highly spatial . Most apps have a specific physical place on a specific page of the Springboard, or inside a specific folder. I believe that this helps a lot even if shape coding, color coding, and name disambiguation are failing or turned off to begin with. Now, for MacOS: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/7.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/7.1600w.avif" type="image/avif"> = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/8.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/8.1600w.avif" type="image/avif"> However, more recently, the iOS squircle shape has been first strongly suggested ( in 2020 ) and then rigidly enforced (in 2025) for macOS as well. But then, the usage of app icons in macOS is different than in iOS. First of all, macOS isn’t nearly as spatial as it used to be, and I would say not as spatial as iOS. Even Dock is more malleable compared to the memory palace rigidity of the Springboard, and its overflow section with suggestions and hand-off is very fluid. ⌘Tab is completely non-spatial and just like the Dock doesn’t upfront identify apps by their names. App icons also appear in more fluid contexts like Spotlight, Finder, and the right side of the menubar (I know iOS has some of those as well, but I would imagine they’re getting much less use overall). This all increases the pressure on icons to be easily distinguishable. At the same time, there are fewer issues with custom backgrounds on macOS. Most icon surfaces have opaque backgrounds and while you can keep your apps on the desktop or put backgrounds in Finder windows, I don’t think that’s very common. I’m probably missing some other aspects, but this would be my summary of where we’re at: = 3x)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/9-framed.1600w.avif" type="image/avif"> = 3x)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/10-framed.1600w.avif" type="image/avif"> People’s trust in Apple’s skillset has deteriorated after the unveiling of horrendous icon redesigns in 2025’s Tahoe , and more recently in the abovementioned Creator Studio (the 2026 updates are nice, but very minor ). This is in some contrast with other controversial visually-motivated changes appearing at the same time. Say what you want about Liquid Glass, but there are moments it looks absolutely gorgeous (see the video below for perhaps my favourite Liquid Glass surface). Forced menu icons felt similar: embarrassingly naïve as a system, but with icons themselves executed well (which you can still appreciate when perusing SF Symbols ). But the app icon changes seem to have been assigned to the team that delivered on neither good visual craft, nor good systems thinking. I think it’s fair to look at Creator Studio specifically, and fear Apple is following in Microsoft’s and especially Adobe’s unforgivable footsteps in prioritizing abstract corporate identity goals over both functional and visual aspects of app iconography. Adobe’s product icons used to be beautiful and distinct before they got all shoved into the same “uppercase + lowercase letter” framework that became a canonical example of a system that took something away from the user but didn’t really give anything in return: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/13.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/13.1600w.avif" type="image/avif"> I also feel this feeds right into another fear of Apple’s actions steamrolling over particularly indie app developers where being able to express one’s identity via the app icon feels much more important than it would be for a huge company. I don’t see Apple abandoning their stance on the rigid, distinctive app icon squircle shape. It’s possible that iOS apps will start appearing on touchscreen Macs outside of screen mirroring. Even without that, it just simplifies things for them, even if the jobs for macOS app icons are not the same as those for iOS app icons. At the same time, I could see Apple allowing the app icons to stick out of the basic squircle shape, like some macOS apps did in between 2020 and 2025; I believe it would even be possible to detect programmatically if the basic squircle shape is still there in the background. This would improve shape coding, and give icon designers some clearly much-desired flexibility. The icons below still register as squircles to me – why not allow this as an option? (For both macOS and iOS.) = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/14.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/14.1600w.avif" type="image/avif"> = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/15.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/15.1600w.avif" type="image/avif"> = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/16.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/icons-that-are-iconic/16.1600w.avif" type="image/avif"> I wish Apple standardized app icon changing UI on iOS. Right now, each app offers their own interface in a different place – you could see that above – and rarely links to that place from the Springboard’s long-press menu. But imagine if you could nicely change app icons in situ in the same flow when you’re customizing the Springboard itself! (And then, the same for Dock and macOS.) I think it would also be a nice gesture to allow to rename iOS Springboard apps to whatever you want the same way you can rename folders, to give some users an opportunity to disambiguate by that if everything else fails. #apple #craft #iconography I believe the rigid squircle shape of app icons starting with the first iPhone was to make them look like a grid of buttons, and also to establish apps as a new primitive, particularly with the subsequent arrival of the App Store. (Similarly how over time “a face in a circle” became recognizable as a “personal avatar,” a user proxy primitive.) Soon, the rigid shape also helped when custom Springboard wallpapers arrived in 2010 – it reduced the likelihood of apps blending with the background. Recently, a new option has been added to remove names of apps, which is another way to disambiguate them. Also recently, Apple’s generally unpleasant-looking theming options (color tinting and glassification) reduced color coding as a way to recognize a particular icon. The original Mac OS X followed in the footsteps of the classic Mac OS and allowed arbitrary shapes, allowing for more flexible shape coding , although with some guidance on angles and styling: However, more recently, the iOS squircle shape has been first strongly suggested ( in 2020 ) and then rigidly enforced (in 2025) for macOS as well. Apple has not done a good job shepherding their app iconography system. The system feels too rigid, and some of its ostensible benefits (dark mode, color tinting, glassification) have been executed poorly. You could imagine a better tinting system that doesn’t feel like a cheap CSS filter applied to the icon, or (my dream!) a way to tint individual app icons. I personally love when apps – here Raindrop, Bear, and Retro – give you a lot of icon options in various colors, so I can invest in color coding: People’s trust in Apple’s skillset has deteriorated after the unveiling of horrendous icon redesigns in 2025’s Tahoe , and more recently in the abovementioned Creator Studio (the 2026 updates are nice, but very minor ). This is in some contrast with other controversial visually-motivated changes appearing at the same time. Say what you want about Liquid Glass, but there are moments it looks absolutely gorgeous (see the video below for perhaps my favourite Liquid Glass surface). Forced menu icons felt similar: embarrassingly naïve as a system, but with icons themselves executed well (which you can still appreciate when perusing SF Symbols ). But the app icon changes seem to have been assigned to the team that delivered on neither good visual craft, nor good systems thinking. I think it’s fair to look at Creator Studio specifically, and fear Apple is following in Microsoft’s and especially Adobe’s unforgivable footsteps in prioritizing abstract corporate identity goals over both functional and visual aspects of app iconography. Adobe’s product icons used to be beautiful and distinct before they got all shoved into the same “uppercase + lowercase letter” framework that became a canonical example of a system that took something away from the user but didn’t really give anything in return: I also feel this feeds right into another fear of Apple’s actions steamrolling over particularly indie app developers where being able to express one’s identity via the app icon feels much more important than it would be for a huge company. I don’t see Apple abandoning their stance on the rigid, distinctive app icon squircle shape. It’s possible that iOS apps will start appearing on touchscreen Macs outside of screen mirroring. Even without that, it just simplifies things for them, even if the jobs for macOS app icons are not the same as those for iOS app icons. At the same time, I could see Apple allowing the app icons to stick out of the basic squircle shape, like some macOS apps did in between 2020 and 2025; I believe it would even be possible to detect programmatically if the basic squircle shape is still there in the background. This would improve shape coding, and give icon designers some clearly much-desired flexibility. The icons below still register as squircles to me – why not allow this as an option? (For both macOS and iOS.) I wish Apple standardized app icon changing UI on iOS. Right now, each app offers their own interface in a different place – you could see that above – and rarely links to that place from the Springboard’s long-press menu. But imagine if you could nicely change app icons in situ in the same flow when you’re customizing the Springboard itself! (And then, the same for Dock and macOS.) I think it would also be a nice gesture to allow to rename iOS Springboard apps to whatever you want the same way you can rename folders, to give some users an opportunity to disambiguate by that if everything else fails.

0 views
Alex White's Blog 2 months ago

New iPad

After my last post , I pulled the trigger and went with an iPad Pro 11” with Apple Pencil Pro and Magic Keyboard case. Thankfully I got it the night before the massive Apple price hikes (although it still cost way too much). I gotta say, I love this thing! Obviously it’s a huge upgrade, I jumped forward 6 years in tech from my last iPad. The form factor is much nicer as well, the 12.9” was simply too big. 11” is perfect for getting work done, sketching, gaming and using it as an e-reader. I’m planning to sell off my Kindle Oasis and Supernote Nomad, the new iPad has easily replaced both. In addition to the iPad, I super splurged and grabbed a new lens for my Sony camera. Both purchases are in preparation for our trip to China in August. My goal is to pack light, since we’ll be traveling with two kids. The iPad replaces the need for a computer + e-reader + game console (hey, it’s a long trip)! The camera lens is significantly smaller and less bulky than my other lenses, increasing the likelihood I’ll carry the camera and snap more photos. I’ve already tested out photo editing on the iPad with Pixelmator Pro and the RAW files from my Sony. The experience is excellent, especially with the Apple Pencil in the mix. The M5 processor rips through any task I throw at it (it’s funny my iPad is now significantly more powerful than my MacBook Pro). Outside of our trip, I expect my traditional computers (desktop + laptops) will see a lot less usage. At this stage in my life, the iPad does 90% of what I need. For example, my entire blog publishing flow is now possible on this tablet. I can connect my SD card, edit photos with Pixelmator Pro, write the post and upload a draft with iA Writer, then attach the photos and publish via the Micro Blog website (yes, I changed again in preparation for the trip). I’m excited to use this setup in the “field”. I’ll have to find a nice cafe in Baotou to write and edit photos from 😜.

0 views
Unsung 2 months ago

“If you can’t stand by a feature, you shouldn’t launch it.”

On the most recent episode of The Talk Show podcast , this monologue from Jason Snell made me nod my head (the passage starts at 1:35:47): [… Apple] decides to do a big feature. The circus comes to town, they build the feature, they launch it, they leave town, and that feature sits there. And the problem is, there’s bugs, things are broken, and in Year Two, you’re like, “You’re going to fix all the things that were broken in the thing you shipped last year, right?” And in the last decade, I would say, a lot of times what happens is they just don’t. And if you’re lucky, they’ll fix it Year Three or Year Four, […] give it a polish. The thing that troubles me most about Apple software quality in general is the feeling like they don’t have the people to own the thing that they launch. They build the thing that they launch, and then those people go off and do something else, and nobody is maintaining and improving the thing that’s there. And whether it’s Time Machine, things that are often really system critical but that are super quirky, then they will do a brush up and you’ll be like “yay,” but… there’s still this bug, and then it’s “good luck, wait three more years.” Or I think the one that we’re all thinking of this year is Screen Time, which they have a big revamp of. […] On one level, it’s great, but on another level, if you’ve talked to anybody who’s tried to use Screen Time, it’s broken. And so what they’re really doing here is trying to fix it, and we’ll see how they do. […] The new features with problems is not a crime. It happens. The crime is: they never fix the problems. And that’s the part that I would like to see Apple get better at: if you’re going to launch something, you got to maintain it. Sometimes I feel like Apple is willing to spend the money and time and effort to launch something, but then they’re not really willing to do anything other than walk away. And I think that’s irresponsible. If you can’t stand by that feature, you shouldn’t launch it. I think this is spot on, and said really well. Are you honest with yourself about resourcing and focus for right after the launch and then later on ? Have you really thought about worst case and best case scenarios vis-à-vis bug reports, latency, user feedback, and craft/​quality however you define it? Have you actually started to make room for those outcomes ahead of time? For me, an ongoing tension with Apple is Finder, so central to my (and I imagine many people’s?) use of a Mac, but rewritten at some point eons ago in a new framework that caused all sorts of problems, and then pretty much abandoned like a proverbial American city’s downtown. (I gave up listing stuff on this blog because it didn’t feel like fun, but I also see 100% of what Ilya Birman sees in his “Finder” section, many times every day.) It’s not a story unique to Apple – I’ve seen many a designer and engineer quitting their jobs when an empty promise of a “fast follow” never materialized – but you’d expect them to do better here. #apple #maintenance #podcast #process

0 views
Jason Tucker 2 months ago

From Plex to Jellyfin, Part 3: Clients - Moonfin on Apple TV and the Moonbase Plugin

Honestly, the one thing that has really stopped me from moving over to Jellyfin is amount of basic apps for Jellyfin and none of them provide any additional features that would make it easier for me to find content on the server. I’ve put a lot of effort into building out my Plex installation, using a whole bunch of different doctor containers and tools to customize the database provide additional meta-data for the content in the way that it’s organized and coming up with collections and other rule based ways of displaying Rose and the interface making it fun and easy to find content on the server. The one thing that I’ve noticed with the clients is that they all lack this customization, but I’m finding that during my process of looking at different clients for the that it looks like Moonfin hits all of the major criteria that I’m looking for. I've cycled through a handful of Jellyfin clients on the Apple TV over the past year. The official app works, Infuse is the gold standard for 4K HDR playback, and Swiftfin covers the basics in a clean native shell. Moonfin is the newest name in that lineup, and it's the first one that made me rethink how much a TV client should be doing on its own. Moonfin started as a separate Apple TV app and has since folded into the larger Moonfin Core codebase, the same shared engine that powers its Android TV, mobile, and desktop clients. On tvOS specifically, it's built natively in SwiftUI with an MPVKit playback core under the hood, which is what lets it decode HEVC, AV1, DTS, and TrueHD without leaning on Jellyfin's server to transcode everything down to something safer. The playback overlay is where Moonfin earns its keep. Trickplay scrubbing, track and quality pickers, cast and crew info, a next-up card, and a pause overlay with speed and zoom controls are all built into the native player. Subtitle styling goes deeper than most clients bother with on a TV screen. Native MPVKit Playback - Hardware-accelerated playback with Dolby Vision Profile 7 decode and Atmos passthrough, advertised only when the connected display actually supports it. Direct play only show up as available when your actual display reports support for them. That sounds like a small detail, but it matters. A lot of clients will offer a quality toggle that looks correct on paper and then quietly falls back to a worse output, and you only find out by squinting at your TV's input info screen. Round that out with SyncPlay for watching together across devices, Live TV with DVR support, and skip intro and skip credits buttons that actually show up reliably, and you have a player that covers most of what Infuse does for free. tvOS 16 or later is the only real requirement. None of this is a finished product yet. Some Apple TV HD units see playback stuttering that's tracked as an open issue on GitHub. The Siri Remote's back button closes the app outright instead of stepping back a menu, which catches people off guard the first few times. If your library leans heavily on 4K remux files with Dolby Vision, Infuse is still more dependable for now. The Apple TV app on its own is a solid client. Install the companion server plugin, Moonbase, and it becomes part of something bigger. Moonbase is the backbone of the whole Moonfin ecosystem: it runs on your Jellyfin server and handles settings sync, runtime configuration, Seerr proxying, custom themes, and a hosted web version of Moonfin you can reach right from your Jellyfin instance. The settings model is the part that sold me. Preferences live in a profiled structure: one global baseline plus optional overrides for desktop, mobile, and TV. Set your media bar, navbar, and ratings preferences once at the global level, and every device inherits them automatically. Only flip a setting at the device level if the Apple TV genuinely needs something different from your phone. Seerr integration runs through the plugin as a proxy rather than a direct connection from the TV. The Apple TV app talks to Jellyfin, and Jellyfin forwards the request to Seerr with the session already authenticated. That means Seerr never has to be reachable from the TV itself, which is convenient if you're routing things through a Cloudflare tunnel and don't want to expose another hostname just so the living room can request a show. Admins can also set server-wide defaults for nearly every user-facing setting. New profiles inherit those defaults instead of starting blank, which is the kind of thing that actually matters once you have more than one person watching off the same server. Moonbase installs like any other Jellyfin plugin, through the repository system rather than a manual drop-in. Jellyfin Dashboard -> Administration -> Plugins -> Repositories -> Add Repository Name: Moonfin URL: https://raw.githubusercontent.com/Moonfin-Client/Plugin/refs/heads/master/manifest.json Jellyfin Dashboard -> Administration -> Plugins -> Catalog -> Moonfin -> Install Restart Jellyfin The web UI layer depends on the File Transformation plugin to inject itself into Jellyfin Web, so add that repository too if you want the Moonfin icon next to the SyncPlay button. Repository URL: https://www.iamparadox.dev/jellyfin/plugins/manifest.json Install: File Transformation Restart Jellyfin Force refresh your browser (Ctrl+Shift+R) If you're running Jellyfin in Docker on Unraid, the plugin lands under whatever path you've mapped to the container's plugin directory, typically something like /mnt/user/appdata/jellyfin/plugins/Moonfin/ . If you sit Jellyfin behind a reverse proxy or a Cloudflare tunnel, double check that every /Moonfin/ path gets forwarded, or the Seerr panel and settings sync will fail silently. Moonfin's Apple TV client is still young compared to clients that have had years to sand down their rough edges. The development pace has been fast enough that the stuttering and navigation quirks feel more like a punch list than a dead end. I'm leaving it installed on the living room Apple TV for now and keeping an eye on how it holds up over the next few updates. Interesting thing about this is how you can look at the Seerr requests you have made and see what one have completed. You can then go to Search and a new row a the bottom appears if you don't have the content you can request it. One weird issue that my wife and I had last night when we were watching a movie is that if you don’t have the built in screensaver enabled in the app then the system screensaver will kick in after X number of minutes right in the middle of the show. I need to submit that as a bug, but it’s really weird that something like that is in there. Do not have screensaver enabled just for in the middle of the movie Snoopy popped up and when I tried to exit out all the colors on the screen went wonky so I had to quit the app and start over again. Luckily, it did save my place. There is a lot more to explore and I'll update this post as I learn more. What are you using as a client on your Apple TV?

0 views
Jason Tucker 2 months ago

Nautiline vs. NaviBeat: Two iOS Apps worth considering for your Navidrome Library

In Part 2 of this series I mentioned Nautiline as my iOS client for Navidrome and kept moving. That wasn't the whole story. Since then I've been testing a bunch of mac, AppleTV and other apps to see whatelse is out there and a second notable app entered the picture: NaviBeat. It's newer, it covers more Apple hardware, and just like Nautiline it costs money up front. Both apps connect to Navidrome via the OpenSubsonic API. That's where the obvious overlap ends. Here's how they actually compare. Nautiline is an iOS-only OpenSubsonic client. It's $9.99 on the App Store and does exactly what it says: streams music from your Navidrome (or any OpenSubsonic-compatible server) with a clean, native-feeling interface. The feature list covers the things that matter day-to-day. Home and Away modes let you point the app at your local server address when you're on the same network and a public URL when you're not. Offline downloads work. Gapless playback works, even on transcoded streams, which is not something you can take for granted across clients. CarPlay and Siri are both supported. You can add custom headers, which is the feature that makes Cloudflare Access tunnels or Tailscale viable without jumping through authentication hoops every time. Transcoding support deserves a specific mention. Nautiline handles seekable transcoded playback, meaning you can jump around in a transcoded file the same way you would a locally cached one. A lot of clients struggle with this and quietly degrade the experience on mobile connections. Nautiline doesn't. It's iOS-only. No Mac app, no Apple TV, no iPad-native layout (it runs on iPad, but it's the phone layout scaled up). If your listening happens entirely on iPhone, that's fine. If you want something that spans devices, you're already at the edge of what Nautiline does. NaviBeat is a $5.99 Universal Purchase that covers iPhone, iPad, Mac, Apple TV, and Apple Watch. One purchase, five platforms, no subscription. Built by one developer in Belgrade using native SwiftUI throughout. The platform breadth is the headline, but the detail that actually matters more to me is that each version is purpose-built for its screen. The Apple TV app is focus-driven, designed for a Siri Remote. The Mac app has a real Mini Player that pins on top of other windows. It's not an Electron wrapper or a Catalyst port doing its best. Each app is native to the platform it runs on. Time-synced lyrics are supported across all platforms. NaviBeat reads LRC files straight from your Navidrome library and scrolls them in sync with playback. Tapping any line seeks to that point in the track. It's a small thing that becomes surprisingly useful once you have it. Offline pinning works for albums, playlists, and whole artists with an LRU cache size you set yourself. Last.fm integration is opt-in and requires no third-party relay. CarPlay is included. The Apple Watch app handles offline pinned playback independently, so you can leave your phone at home on a run and keep the music going from your wrist. NaviBeat is also a v1.0 release. It's solid but it's new. Rough edges exist. The developer is responsive and the roadmap is shaped by what beta testers actually ask for, which is a reasonable operating model for a one-person app. The creator of NaviBeat left a comment below indicating that much like Nautline it too has header login support for cloudflare and the like. If you need to login with Authelia and such you can do so using the add headers function. NaviBeat has this great feature that checks the server health for Artist Images, Lyrics and Album Covers and will event provide you with instructions on how to fix this for you. Price comparison first: Nautiline is $9.99 for iPhone. NaviBeat is $5.99 for iPhone, iPad, Mac, Apple TV, and Apple Watch. If you own more than one Apple device and want a consistent experience across all of them, NaviBeat is the more cost-effective option by a significant margin. Nautiline has been in development longer and feels more settled. The transcoding experience in particular is polished. If iPhone is your only Apple device and you want something that's been road-tested, Nautiline is the safer choice. NaviBeat's multi-platform approach is genuinely useful if you move between devices. The same library, the same queue, the same playback state, whether you're on your phone, your Mac, or your couch with the Apple TV remote its' very comparable to Spotify in this regard. That continuity across screens is something Nautiline can't offer. Both apps handle the core listening loop well: connect to your server, browse by artist and album, play music, manage a queue. Neither is missing the fundamentals. Both suppose login headers for cloudflare and such. Both, depending on what I'm doing. Nautiline stays on my phone for commuting and casual listening. It's been reliable long enough that I don't think about it, which is the correct end state for a music app. NaviBeat landed on my Mac and Apple TV because nothing else was filling those slots. Having Navidrome on the TV with a native tvOS interface is something I didn't know I wanted until I had it. I've been playing with a few apps for Mac and Windows to see what would works best for me. There are some great apps out there I'll be covering here but its nice to have a single app across all of the devices. At work I listen to music on an older iPad that sits next to my desk and is connected to my officer speakers, it works well running NaviBeat. If I were starting fresh today with zero Nautiline history, I'd probably go NaviBeat first. The $5.99 Universal Purchase covers the entire Apple ecosystem in a way that makes it hard to argue against. But Nautiline earned its place the hard way, by working correctly over time, and that counts for something. The good news for anyone just getting into Navidrome: you have MANY real options now and these two only scratch the surface of whats ou there. The iOS client situation for self-hosted music has gotten noticeably better, and both of these apps are part of why. As always I welcome your thoughts in the comments. What are you using to listen to your locally stored music?

0 views