I have used the Shortcuts app on and off for a while but I've always struggled with the Health shortcuts on offer. Logging data is easy enough but pulling it back can be really frustrating and yesterday I figured out why.
When you insert the Find Health Samples action after a Log Health Sample action, it will change the terminology to Filter [Health Sample] where [Health Sample] is the output of the previous action. No amount of filtering or configuring the action will do anything other than return the last sample entered.
My use case is pretty simple, I want to log the amount of water I've been drinking and then immediately pull the total for the current day. But because of how the action is changed after insertion, it is pulling up all the details of the sample being passed to it.
After many strong taps on my phone I realised clearing the [Health Sample] variable and changing it to [All Health Samples] got me back to the original intention which was to 'Find All Health Samples]! The difference between the two configurations is pretty subtle in my opinion and totally depends on what previous actions might be in your shortcut without any warning.
Pulling something like steps is tougher because there are many samples per day that can cause the shortcut to hang for a bit but once I realised the terminology was wrong it has been so much easier to work with. Grouping by day gives you a total for each day in your sample range.
This stumped me for hours previously to the point at which I gave up. I tried again this week and again was stumped for hours until I tapped angrily on something that toggled the terminology and my thinking! I hope it's useful for someone else out there struggling with the same issue.
Read the post from week 405
Subway Takes has recently become a favourite YouTube channel with its mix of sensible, thought provoking and insane takes on modern culture.<\p>
Read the post from week 403
Last week, I posted about a particular struggle with Liquid Glass and within the week I've got it sussed!
It turns out that I was trying to apply two competing styles. You can, but it caused the conflict between .borderedProminent and Liquid Glass.
What I hadn't realised that I was already applying what was necessary for Liquid Glass after applying the .borderedProminent modifier which caused the issue. Using just .confirmationAction as the placement modifier solved the problem.
So my second app is ready to be tested and soon to be pushed to the App Store. I want to refactor a few areas into components and while it's iOS 26 ready, I'll have to continue submitting for just iOS 18 only for now. I'll see if I can support iOS 17 too but I think the way in which I've used loops may not be compatible.
So watch this space, my iOS and Apple Watch app is almost ready.
Read the post from week 404
Link to this notable item
Every time I visit Rome, the accessibility to fountains and clean drinking water is an underrated luxury. It's great to see a fountain with so much character being restored rather than replaced by a modern one – they might be useful, but they're ugly and only available in certain boroughs of London.
Link to this notable item
Link to this notable item
It starts and finishes perfectly.
Link to this notable item
Link to this notable item
Perfect timing to come across this site via kottke.org with the Wimbledon finals approaching and I just happened to have playing casual tennis for the first time in over 20 years! Some beautiful art on display.
Link to this notable item
I am in the process of building a new app, it is written in SwiftUI, and I'm hoping to support both iOS 18 and the forthcoming iOS 26.
Liquid Glass brings some interesting layout choices. I'm not mad at the tab bar, which now hovers above the content, but it feels unnecessarily large. Maybe this will change by the time we get to September though.
What I've found most frustrating is working with button styles. Using the tint()
method will change the foreground colour, which is perfectly fine but when you combine that with the .borderedProminent
style you don't just get a tinted button but a tinted button with a 'traditional' iOS bordered button sitting within it.
It's actually not that noticeable in the Xcode preview because it's so small but it's clearly an issue in the simulators.
So I'm still grappling with it all, but for the most part the modifiers I'm applying are backwards compatible so the app will look fresher with the OS updates in September.
David Smith has been posting about design choices as he looks to adopt Liquid Glass in his own apps which are well worth a read.
Read the post from week 402
Way too late but I'm fully behind this. It has been a long time since I ran a forum but even though I couldn't control what was posted, I took moderation seriously. Meta and X never have, but they really need to.
This should be top of the list for the EC in it's fight with Big Tech.
Link to this notable item
Last week marked 400 consecutive weekly posts here on 1 Thing A Week.
I've teased a break of some sort in the past, but it hasn't happened yet...
Notable items definitely took a hit in recent months but I'm slowly getting back into the rhythm.
What's next for this blog? I want to do two things in particular, which is focus on both CSS and SwiftUI as I flesh out apps and services. Still plenty to learn and I'm hoping I have something worthwhile sharing. Even in the past week I've learnt a ton of stuff about Swift, SwiftUI and SwiftData.
So watch this space, there's more to come!
Read the post from week 401
Honestly my biggest annoyance with SwiftUI is just any type of loop. Yes, I’m totally spoilt having worked with PHP and JavaScript over the years, but I do feel that they’re so fragile in SwiftUI.
I’m at the point in the development cycle of my app where I have simplified it all enough to not have to worry about more complicated implementations or iterations but it took a while to get there.
I could complain just as much about binding and SwiftData, especially when you are trying to convince them, but I think looping through data is definitely the one that deserves calling out!
Read the post from week 400
Happily surprised at this, I've never really tried Stage Manager on my Mac and it's not currently available on my iPad mini but looks like that is changing with iPadOS 26.
With the new windowed approach to multitasking, I'm excited to see if any of them work for me in the tablet form factor.
Link to this notable item
When Apple announced the new Mac Mini, they mentioned the housing was created using an extrusion process which felt like something new to me. But that's all they said with no further detail or a behind-the-scenes video that we've had in the past for devices like the iPhone X.
I meant to make a video on the topic back in November but it kept falling off my list of things to do until last week's Liquid Glass announcement.
I published that video a couple of days ago and here it is:
I'm still new to the video game and have experimented on my own channel and on the Good Gear Club YouTube channel too. If you have any feedback, I'd be happy to hear it.
Read the post from week 399
View this page on your phone, click on the link to Apple TV below, then turn your phone to landscape mode and enjoy.
via @tylerh.social.
Link to this notable item
Finally. I had been wondering why I hadn't seen a move like this from a big studio and here we are with two at once.
Disney and Universal have filed a lawsuit against Midjourney, alleging that the San Francisco–based AI image generation startup is a “bottomless pit of plagiarism” that generates “endless unauthorized copies” of the studios' work. There are already dozens of copyright lawsuits against AI companies winding through the US court system—including a class action lawsuit visual artists brought against Midjourney in 2023—but this is the first time major Hollywood studios have jumped into the fray.
The general public were terrorised by music labels for illegally downloading music from the internet, but in my opinion, this behaviour is way worse.
Link to this notable item
Liquid Glass
My initial reaction is that I like it.
With a bit more thought, I need to see and use it in Apple's apps before I can give a meaningful take on it. It looks like it should be sprinkled in rather than being used to redefine the entire interface.
I did download the Xcode 26 Beta but I've only had a few minutes to experiment. There's a bit to learn here about modifiers so that I can build up an interface but an app I've been working on was already using .ultraThinMaterial as a modifier that went some of the way but the new Liquid Glass (or .glass modifier) take it up a level. So I'll be looking at that and while I had small plans to launch something in August, maybe I'll push it back to September so that I can take advantage of the new look and feel.
Read the post from week 398
Following on from last week's post on how bad bookmarking is on the web, I got my web service into a decent state. The UI at least lets me see what I've bookmarked and it does just enough.
The next job was to integrate and the best way for me was to create a simple Shortcut that I could call on for any URL.
This was not simple.
First, the URL input appears to try to pass the entire page. I wanted to "expand" the URL, which to Shortcuts means to cut out the URL forwarding services (t.co, bit.ly etc...) and to remove common identifiers like utm_source. I then wanted to base64 encode the URL so that there's some obfuscation during transfer. This did not work, the base64 encoding was applied to the entire HTML body of the response. Luckily only to the response, and not the resulting JavaScript nightmare on a lot of social sites now, but it was a task that would lock Shortcuts completely.
I tried assigning the URL to variables or to break the into parts, but then re-assembling was non-trivial. The answer was to put the URL into a Text action which I could then reference later on. It was so much harder than it should have been and ate up way too much of my time. Just let me choose if I want the URL (which is what it says on the tin) or the URL response! I'm happy to configure the inputs and actions but it really isn't obvious what actions will treat the URL as a string of text or as a hint to get fetch the resource.
I have a working Shortcut now, which I'm happy with but it does prompt for permissions way too often. If I go to edit my Shortcut now, the Privacy tab is unscrollable but also unusable because there have just been so many requests for what it can and can't use!
The experience is... fine. I could build something in SwiftUI to reduce the pain from day to day usage, but the use case is too limited when it's a personal project. But maybe that's another reason to open source the back-end?
Read the post from week 397
It's so bad. I began using Pocket years ago but it's been announced that it's being retired. I mostly used it for bookmarking Tweets but when Twitter implemented it's own bookmarks, I relied on Pocket less and less to the point where I don't think I logged in for 3 or more years.
Instagram also has the ability to save posts and YouTube has the Watch Later list. I also use feedly for RSS which has a 'read later' function but apart from YouTube, I don't really want to be using any of these for bookmarking in isolation. It makes re-discovery a pain and when migrating to a service like Bluesky from Twitter, it's a key piece of functionality that is missing for me.
So I decided to fix it for myself. I have built a very basic bookmarking service that takes a link and remembers it. I can prioritise it as high, medium or low or just throw it into the archive.
I need to go through Pocket and decide what I want to keep, I might do the same for Twitter and Instagram too so that I do have a centralised repo.
Yes, browsers have bookmarks but I very rarely look at them and they're used for starting points rather than catching up.
I might share more details, or even open-source the idea. It's a JSON based approach that reads and writes to a single file so it can be hosted on basic hardware that runs PHP and can write to a file.
Read the post from week 396
View more posts in the archive or discover more notable items.