Douglas Hill’s posts in 2024
4 January 2024
I had a feeling App Store Connect submissions were sometimes really slow so I timed it, and yes: 1m 20s. Of course, there’s the intermediate screen I’ve never used that you need to click through.
If you’re really bored, here’s a recording:
I cleaned up my follow page. It’s now in line with my vision: I post on my own site, and my posts can be followed in various ways.
I’ve been making a lot of updates to the setup behind the scenes, and I want to write more about it at some point. »
5 January 2024
Doctor Who series 2 episodes 5 & 6 from 2006, feature an enormous, global technology company that produces tiny wireless headphones called EarPods and has their UK base of operations in — wait for it — Battersea Power Station! Parallel universe indeed. »
Current status: slugifying strings for URLs with Shortcuts. Possibly the most hilariously cumbersome programming tool I’ve used, but kind of satisfying chaining together four actions to do what would be one function call in Swift. »
7 January 2024
Now my troubleshooting time is spent wondering why Apple cannot get rid of the floating text controls UI bar that is in the way 99% of the time, and useful about 3 times a year.
And these controls adjust insets so everything slides around when keyboard focus changes. »
8 January 2024
Haven’t seen any news yet on when App Store submissions will open for visionOS. Presumably the Xcode 15.2 RC is what we’re waiting for.
Update: Xcode 15.2 was available 30 mins later. »
Style guides are hard (source)
They’ve done this using CSS white-space: nowrap
: Apple Vision Pro — but missed it in some places.
An alternative is to use non-breaking spaces (option + space): Apple Vision Pro — this will work if CSS is removed, such as in my reading app. »
I’m finding the year in review fanfare from so many apps excessive. Apple Books is keen to tell me I read three books in 2023. Maybe I would have read more if I could still use the iOS 15 version of Apple Books. »
10 January 2024
- Xcode 15.0 betas: visionOS development fully possible on Intel Macs (our CI machines)
- 15.1 betas: you can build, but not run simulators
- 15.2: building no longer possible
Now we’re under time pressure to set up a new (more expensive) Apple silicon Mac on CI. »
Some of my Christmas baking. Not-quite Linzer Augen:
Panettone and biscotti:
Cheese-stuffed bread balls with sweet peppers:
11 January 2024
Pro tip: to follow Apple’s style guide about not splitting Apple Vision Pro onto multiple lines, create a text replacement that already includes non-breaking spaces.
12 January 2024
I’ve been at PSPDFKit long enough to have learned C++ and forgotten it again. »
14 January 2024
16 January 2024
Spaces are filling up for our first NSLondon event of the year, which is at Trainline next Tuesday. »
18 January 2024
Speaking of Trainline, Google are scamming them here selling ads for their own service doing what I’m already doing. 🇮🇹
Has anyone switched an app to year-based version numbers and regretted it? I’m thinking <year><dot><incrementing number>, which seems to be what Overcast and Castro use. Our PDF Viewer is currently on 6.5.7, which seems unwieldy, and we release often so it never has ‘major’ releases. »
We had a report of a fun bug today with a situation the PDF reference doesn’t specify how to handle. »
20 January 2024
Today marks four years since I went on a plane. I wrote about my journey from flying around the world as a digital nomad to not flying at all. »
22 January 2024
Submitted PDF Viewer for Apple Vision Pro for app review, complete with upscaled and cropped screenshots. Hopefully it works!
24 January 2024
Just in case anyone happens to have an Apple Vision Pro, you can now download PDF Viewer from TestFlight!
28 January 2024
My first ski day of the season. Went on an avalanche safely course, which had a good mix of different aspects. There’s so much software to help, such as Avalanche.report, Fatmap, Skitourenguru and Outdooractive. »
30 January 2024
It’s great when you ask ChatGPT to write some code, then immediately ask it what problems there are with that code, and it correctly identifies that temporary files aren’t being cleaned up, loading large files all at once might use too much memory etc. »
1 February 2024
As a software engineering manager, when I see the word “continue” in a team member’s plan for today message (a sort of lightweight, async stand-up we do), it’s a hint that a fresh perspective might help move things forward, so I should look into the progress. »
2 February 2024
And… PDF Viewer for Apple Vision Pro is out. The highlights are in the announcement post.
8 February 2024
I’ve had a 5k LG UltraFine display since 2016, and today was the first time I noticed any image ghosting on it. Only noticeable on a ~27% grey background, which doesn’t normally occur because I use light mode. »
11 February 2024
Wish for iOS 18 lock screen on iPad: separate rows of text to show the date, charging status, and “Face is too far away”. This seems like something widgets/customisation should have solved, but no. »
18 February 2024
Sölden today. Decent snow at glacier level only. Overcrowded (not pictured).
I was amused by the announcement about the “zero zero seven elements” experience. »
19 February 2024
Recently with the iPad dock, if I flick an app icon up with the mouse (happens accidentally), the drag gets cancelled, then a wiggling duplicate app icon remains while the dock is visible (even when not in edit mode) until restarting the iPad.
21 February 2024
Not being forced to use Apple’s terrible user rating and review system seems like a really nice perk of alternative app marketplaces in the EU. »
Trying out a new Stage Manager setup on iPad for better focus.
Before: One stage to rule them all: Mail, OmniFocus, Bear and Safari with Slack as a pinned tab.
New: Inbox space with Mail and a Safari window just for Slack; execution space with OmniFocus, Bear and anything else in Safari. »
Hmm, this is messy with links opening in the inbox stage. I might need to make a Slack single-site browser app to prevent this. »
23 February 2024
Lesson learned: While it’s fine to revoke a certificate used for app distribution at any time (you just make a new certificate), the same is not true when using the certificate to sign XCFrameworks, where revocation leads to not being able to build with already released versions. »
27 February 2024
Has anyone used private App Store distribution? The documentation says:
Once your app is approved, the distribution method can't be changed.
It’s unclear if this means the Organization IDs can’t be changed, or just you can’t go between public and private. »
28 February 2024
Switched our PSPDFKit CI Macs (on MacStadium) from Intel to Apple silicon. In our initial tests, the performance gains weren’t worth the cost, but something was wrong and the compiler was running with Rosetta. With that fixed, we have similar capacity and cost but with fewer machines. »
6 March 2024
Mac Catalyst isn’t perfect, but I’d take it over typing suggestions erasing what was typed in a completely default UITextView
in an iOS app running on an Apple silicon Mac.
29 March 2024
One of my two Apple Magic Mice started only tracking well on harder/shinier surfaces. Cleaning the sensor didn’t help.
The iFixit forums suggest “a nice 4 foot drop onto concrete”. I tried 1 m drops onto a rug, and bizarrely after about five drops that completely fixed the problem. »
The EU Digital Services Act trader contact info really does only seem necessary “next time you submit a new app”. We released an app update without providing this info. »
1 April 2024
After my Mac rebooted, I noticed the Apple Vision Pro simulator starting invisibly without the Simulator app being open. I heard the Vision startup sound and saw backboardd
using a lot of CPU cycles.
»
7 April 2024
Great to be back in England going into spring for the start of the summer wakeboard season, early pink rhubarb, cooking with wild plants, and bluebells in the woods soon. »
9 April 2024
We’re looking for an experienced developer to join my team making PSPDFKit and PDF Viewer. We make a document SDK for iOS, macOS and visionOS. Expect challenging API design tasks and deep debugging sessions in a small, collaborative, remote team. Full details »
10 April 2024
I’m looking forward to the mammoth NSLondon event we’re having at Monzo this evening. The organising team is doing a fantastic job running excellent events regularly. »
11 April 2024
Apparently PDF Viewer made us a nice round TEN MILLION DOLLARS overnight. 🤨
To be clear, this is a funny App Store Connect bug. See also James Thomson and Simon B. Støvring. »
16 April 2024
Seeing a lot of candidates for our open job mentioning remote work as a key reason for applying, to get away from mandatory days in an office. It’s good for us, but I’m surprised so many companies went back. »
17 April 2024
20 April 2024
Nice, it looks like the issue where Shortcuts’ Rich Text from Markdown action garbled non-ASCII characters has been resolved. (I guess by specifying the encoding of the intermediate HTML file or something.) »
Bought my ticket for iOSDevUK in September! I’m staying both extra nights to make the most of being in such a beautiful part of the UK. Hopefully hiking before or after the conference. »
24 April 2024
The Apple Books audiobooks store should have a science section. Hard to browse when so much goes into the ‘Non-Fiction’ category alongside many personal development and sports people books. »
On our company blog, Nishant has shared how we filled in our privacy manifests by auditing use of required reason APIs. »
27 April 2024
Trying to write self-documenting ‘code’ in Shortcuts by using clear variable names. This is just to disable a thing, which I think is very common in programming, but it’s so cumbersome. Hoping we get a Swift environment for Shortcuts at some point.
6 May 2024
It’s iPad hype day, so after many thousands of hours using the 2018 iPad Pro as my main computer, I wanted to consider what hardware a new iPad should have to last as my main computer from now until 2030. »
14 May 2024
Why iPadOS Still Doesn’t Get the Basics Right. Agree with this. The flip side to my post about iPad hardware. The floating keyboard “thingy” is mentioned as an aside, but it's very important because the animated change in safe area makes changing keyboard focus slow when it should be fast. »
Maybe a bug, but I’m no longer able to browse purchased movies in one list in the TV app. Have to browse by genre, which is a game of hide-and-seek given how fuzzy the boundaries are. Worst genre is ‘foreign’, which is a concept I reject and associate with xenophobia.
17 May 2024
After switching our PSPDFKit documentation to DocC we now found the repository can’t be checked out on Windows because DocC puts colons in paths. I just found there’s an open pull request for this. »
18 May 2024
Nikita Prokopov on the design of allekinos.de:
But how do I search?
Well, Ctrl+F, of course. We are too humble, too lazy, and too smart to try to compete with in-browser implementation.
One of the great advantages web apps have over native apps. »
19 May 2024
Safari should have auto-fill for dietary or access requirements. »
22 May 2024
Travel from London to Athens without flying ☑️ »
29 May 2024
Excellent new post from Stefan covering combining symbols graphs from multiple targets and other DocC tricks we use to build our PSPDFKit API documentation. »
Working on my iPad Pro outside a cafe in Athens this afternoon. Guy walks by and asks if he could switch from his MacBook to an iPad with a keyboard. Yeah, that’s not something that can be answered in a sentence or two. »
Most annoying iPad issue I have right now is a regression from the last couple of months where apps get in a state where some keyboard input doesn’t work. To fix it, you have to tap the fn/globe key. Happens multiple times per day. I guess modifier key state is somehow messed up when switching apps. »
2 June 2024
From my seat on the Eurostar train from Paris to London, I can see six people. All of them have AirPods Pro in their ears. I’ll take that number to 7/7 shortly. This is a hit product. »
3 June 2024
Dec 2022: We receive reports of a crash due to invalid calculations for some views. Nobody can reproduce it. We work around it by returning nil.
Recently: We receive a report of a missing view with clear steps to reproduce. You guessed it: We’re hitting the case that previously crashed. »
9 June 2024
A few photos and notes from my three-week trip from London to Athens by train and ferry. »
10 June 2024
Apple Vision Pro train support, yay. I guess it’s launching outside of the US then. 🚄 »
Sounds like we finally have limited Contacts access. Hopefully means I can create WhatsApp groups without exposing everyone’s personal information. »
Hiking (trail running) in Maps is the highlight on iOS for me. (Hopefully it’s on iPad too.) »
Maths Notes is very very very cool. Makes me wish I was still an engineering student. »
Can you use an Apple Vision Pro to control a Mac to control an iPhone? »
If you want to make use of WWDC labs on Tuesday, remember you need to apply for them today (which is kind of late in Europe). »
11 June 2024
Requested a couple of labs for tomorrow without much research. I watched the SotU but not sure I learned much. Maybe because I should be asleep. »
With automatic trait tracking, UIKit detects when you read traits (like the size class) in layoutSubviews
(etc.) and automatically calls setNeedsLayout
(etc.) when those traits change. 🤯
»
13 June 2024
Apple’s Developer app on iPad has become a little too complicated. It would be good to see the WWDC app come back with just labs and a list of this year’s sessions. »
Found myself click click clicking through stack frames in Xcode 16 then remembered: there‘s now a button for this! This ‘Backtrace in Editor’ feature is amazing. So much faster to see what’s going on. »
21 June 2024
Just found out from Dave Verwer that Apple is running WWDC recaps at their London HQ this Monday morning and afternoon. Sign up closes at 11:45 today. I requested the afternoon one. »
27 June 2024
Zoom transitions are my favourite addition in the iOS 18 SDK. I tried out almost everything you can do with this new API and wrote a detailed, illustrated guide. »
2 July 2024
Release notes for today’s OmniFocus 3 update:
OmniFocus 3.15.7
OS Compatibility — OmniFocus now presents an informative one-time alert when launched on an unsupported OS.
Uh oh. Sounds like I might need to find an alternative before iOS 18 is out. (Pretty sure it won’t be OmniFocus 4.) »
3 July 2024
Realised I can use the Texts Mac app to create new WhatsApp groups without giving Facebook/Meta access to my contacts’ details (which I don’t have their permission to do). Awkward that this needs a Mac, but still a great improvement. »
8 July 2024
Desktop-class Safari on iPad was a feature of iOS 13, and it works well at least 95% of the time, but I hope iOS 19 brings Desktop-Identical Safari. I don’t care if this is a special mode where touch input is disabled. The main issue is that mouse hover works in some places but not others. »
9 July 2024
Over on our company blog, we just posted my exploration into how a modern Swift programming mindset clashes with Objective-C’s NSCopying
protocol. »
11 July 2024
I don’t understand why indoor ice rinks in Berlin and Innsbruck (the only places I looked outside the UK) mostly (all?) have a season. I.e. they only open in winter. In the UK, ice rinks open all year. Isn't the point of indoor facilities that they’re not impacted by the seasons? »
We have an NSLondon social this evening at the Elephant and Castle pub. Find details and sign up on Meetup, although it’s a pub so anyone is welcome to turn up. »
12 July 2024
Excited to be on the train from London to Scotland (Fife) for the weekend. It’s way too long since I last went to Scotland. »
16 July 2024
Scotland was beautiful but cold (14ºC in the day). We went swimming, but also booked a sauna on the beach so it sort of balanced out.
On the train from London to Berlin. Going to be there cat sitting for a few weeks. »
There’s an issue where Xcode 15.4 fails to build Mac Catalyst apps with certain package dependencies with:
clang:1:1 invalid version number in '-target x86_64-apple-ios10.15-macabi'
Or:
clang:1:1: invalid version number in '-target arm64-apple-ios10.15-macabi'
Workaround: use Xcode 15.3. »
19 July 2024
Stefan wrote about a crash at launch we saw when using Xcode 16 that was related to the mysterious libRPAC. We debugged this during a very productive WWDC lab last month, where we learned some useful DYLD environment variables. »
24 July 2024
Easiest regression test I’ve ever written for a real-world bug:
func testDefaultConfigurationsAreEqual() {
XCTAssertEqual(PDFConfiguration(), PDFConfiguration())
}
Although the fix (or workaround) this test was for is an odd one. Had to make some blocks not capture variables so they’d be created as global blocks. We really should get away from relying on block equality. »
26 July 2024
We‘d been hoping to use iOS 18’s new FileEntity
to add Shortcuts actions (App Intents) in PDF Viewer, but any actions using such an entity don’t show up in the Shortcuts app. appintentsmetadataprocessor
runs successfully. Same in a sample project. Seems to be a non-starter for now.
»
Update on FileEntity
: Running on a nearly fresh iPhone simulator, the actions started showing up in Shortcuts magically. However the files infrastructure seems very rough in the iOS 18 beta simulators so I haven’t been able to load any files in to test.
»
31 July 2024
To make a Swift required
init for an ObjC class, put the init in a protocol:
@protocol PSPDFDocumentCreation <NSObject>
- (instancetype)initWithThing:(NSThing)thing;
@end
@interface PSPDFDocument: NSObject <PSPDFDocumentCreation>
@end
Thanks Kostiantyn Herasimov for pointing this out. »
7 August 2024
Matt Birchler proposes a generalisation that people prefer working on iPads because of the hardware limitations of Macs. I can't agree. I use an iPad because I want to use iOS. If my iPad was glued into the Magic Keyboard and the touch screen was disabled, I'd still prefer it to my Mac. »
Big day! Automated upload of App Store release notes for all languages now for visionOS with fastlane 2.222.0. This will save so much tedious pasting.
11 August 2024
Here are three interesting situations that came up migrating KeyboardKit to Swift 6 strict concurrency. It’s a small UI framework that runs only on the main thread, so was a great test case. »
14 August 2024
I just found that when managing TestFlight testers on App Store Connect, you can shift click to select a range. This finally enables us to remove testers who haven’t installed a build recently. The catch is you need to keep scrolling down then waiting for more testers to be loaded in batches. »
I spent the last 20 mins removing the 6178 testers who hadn’t installed a PDF Viewer build in the last year, allowing new people to sign up. Hopefully we won’t need to do this again for a few years. »
19 August 2024
20 August 2024
We had some tests for our PSPDFKit licensing code using a hardcoded date 10 years in the future… set up in August 2014. ⏱️💣 »
23 August 2024
We have a new guide up explaining the somewhat unusual version numbering system used by PSPDFKit (ANNUAL.RELEASE.PATCH). »
28 August 2024
I’m very much looking forward to being at iOSDevUK next week. I’ll give a lightning talk about zoom transitions! »
4 September 2024
Done with my lightning talk on zoom transitions at iOSDevUK 2024. (Not recorded.) Here’s the sample code.
Thanks to Vicente Garcia for the photo. »
5 September 2024
10 September 2024
⚠️ The Shortcuts Save File action doesn’t work for me on macOS 15 Sequoia, even in a trivial example. It asks for permission, then fails anyway. Giving Shortcuts Full Disk Access didn’t make any difference. Happens with folders other than Desktop too.
Which iOS 18 do I want? (If I tap through, the one at the bottom is actually 18.1.)
Xcode now has a Hide Listed option for filename extensions. I want to hide .swift
but show everything else, so this is much nicer than before where I had six rows of extensions listed.
Strangest bug I run into with iPad Stage Manager is sometimes when moving to/from an external screen the frames of windows within a space become swapped. E.g. instead of having Safari big in the middle and Bear small to the side, I’m given Bear big in the middle and Safari small to the side. »
11 September 2024
Just testing posting from a Shortcut added to Control Centre on iOS 18. »
12 September 2024
Our PDF Viewer update for the new OS versions is out. There were no specific compatibility issues except adding dark and tinted app icons. We snuck in some unrelated nice fixes though. »
iOS 18 doesn’t fix the globe key stuck issue on iPad. (Many times a day, hardware keyboard input stops working property. Tapping the globe key fixes it.) 😢 »
16 September 2024
PSPDFKit 14 is out! It supports more operating system versions than we ever have before: iOS 15–18, macOS 12–15 and visionOS 1–2. In recent years, our annual releases are easy updates that focus on compatibility with the new OS versions. »
17 September 2024
I’ll be in Paris from Thursday and into next week for Swift Connection, where I’ll give a short talk on iOS 18’s new zoom transitions. »
18 September 2024
21 September 2024
Updated my zoom transitions post with more robust UIKit code samples, more info about Mac Catalyst support, and changes for updates to horizontal scroll gestures made during the iOS 18.0 betas. »
25 September 2024
Happy longest-possible-date-in-English day: Wednesday 25 September 2024. We won’t have a date with more characters until the year 10000. »
2 October 2024
London people: this Sunday we’re doing a RevenueCat × NSLondon event at Flight Club Shoreditch. It’s nearly filled up already. (I won’t be able to make it because I’m away with the PSPDFKit team this week.) »
8 October 2024
The default browser screen when first opening Safari is enabled on iPhones in Apple stores in Germany. 🙃 »
10 October 2024
In all the discussion about macOS 15’s screen recording permission alerts, I haven’t seen anyone mention that when the alert is shown, the app already has access to the screen. This is an unusual approach to consent. E.g. here’s the excellent Claquette recording its own alert.
11 October 2024
Has anyone managed to verify a US Aircall number with Apple for the EU’s Digital Services Act trader requirements? For us, text messages don’t arrive, and calls go straight to voicemail without leaving a message. »
14 October 2024
Update on verifying our phone number for the EU’s DSA trader requirements after Apple’s automatic verification didn’t work with our US Aircall number: I requested manual verification. Apple asked for a business or court document. I attached a PDF of our website contact page. It was accepted. »
16 October 2024
As an: iOS developer
I want to: see shocking headlines in the Apple News widget preinstalled on the iPad simulator
So that: I can be distracted from programming »
22 October 2024
Recently my MacBook Pro seems to often forget it has Touch ID and asks for my password to unlock. It’s not displaying “Your password is required to enable Touch ID”, and this issue happens more often than that message used to show up. »
The “Backtrace in Editor” in Xcode 16 is a debugging superpower. So quick to jump around between frames. It’s a wonderful feature. 💙 »
23 October 2024
PSPDFKit is now Nutrient. Same company. Same products. New name. »
27 October 2024
Interesting post from James Froggatt about app development with Swift Playgrounds on iPad (via iOS Dev Weekly). iPad is my go-to device for almost everything except Xcode for now. It seems a shame being limited to code (including third-party code) written in Swift and JavaScript. »
30 October 2024
The number one improvement I’d like to see to the Apple Magic Mouse is multitasking gestures on iPad. The hardware is there for multitouch, but the software only uses this for single-finger scrolling. Multitasking gestures also don’t work on a Mac when connected via an iPad with Universal Control. »
So I wonder whether they actually made the iMac’s camera worse by using better hardware but coupling it with Center Stage.
My observation is that the 2024 iPad Pro’s front camera is slightly lower quality than the 2018 iPad Pro’s because of Centre Stage. »
1 November 2024
The Nintendo Music app is here to solve all our problems. It’s pretty good! Sadly they blocked it from download on Mac, but at least it runs on iPad.
3 November 2024
Added a recent posts page to my website similar to the homepage of a convential blog. (My homepage is what’s often set up as an about page.) »
Since full ActivityPub support in Threads seems a while off, I thought I’d try Micro.blog’s cross-posting. But my newly created Instagram account was immediately banned. I guess I was put on a lifetime blocklist after I deleted my original account on the day Facebook bought Instagram. »
5 November 2024
I’m extremely excited about our NSLondon at Apple Battersea in two weeks! We’ll have talks by Rebecca Owen and Oliver Binns. RSVPs open at 1pm this Thursday. The organising team, especially Aled, are putting in a lot to make this happen. 💜 »
Great article from Stefan about the API design behind our customisable main toolbar. We want our API to be modular for SwiftUI, which means we need a way to communicate between our document view and associated toolbar buttons. API design for SwiftUI is really tough! This post was published today. »
Added showing publication dates on my articles archive page, which could be useful because some of these are on our company blog, which doesn’t include dates. »
7 November 2024
Don’t mention Apple Intelligence in App Store release notes. Our Mac app was rejected because the reviewer couldn’t work out how to use Writing Tools. »
8 November 2024
I’ve been hearing the Apple Vision Pro simulator randomly booting up in the background recently. Not the best thing for my Mac’s battery life! Guessing it might be due to Xcode 16.1, so I’ll try going back to 16.0. »
11 November 2024
I tried many things and concluded there’s nothing I can do to sign into my newly-created Instagram account. People using Threads will have to wait until Threads rolls out bidirectional ActivityPub support to be able to follow me.
14 November 2024
Oh AirPods Pro Hearing Test and Hearing Aid aren’t available in the UK and I don’t see this option. Unclear how this is actually determined. My physical location and Apple account are UK, while my device region is set to Ireland (which is supported). »
25 November 2024
TIL squirrels can swim. Found this out by chasing one into the pond. Considering this a successful experiment. »
2 December 2024
Unusually, I didn’t feel up to wakeboarding at the weekend, but on the plus side I rewrote all the lists and navigation in my reading app in SwiftUI. There are some blockers to resolve though. »
We recently released Nutrient iOS SDK 14.2. This was an ambitious release for our three-person iOS team, and it was exciting seeing this all come together! Here are a few interesting details from the technical side. »
One of the issues I have rewriting much of my reading app in SwiftUI is that drops don’t work over List
. Here’s a copy of the feedback sent to Apple as FB16024301. »
Follow/subscribe for updates