Douglas Hill’s posts in 2019

7 January 2019

Now at my second Microsoft account that errors whenever I try to sign in. Third time lucky? »

10 January 2019

My Mac Force Touch trackpad recently started requiring more pressure for a two finger tap than a one finger tap. Feels broken because when pushing a physical object, the pressure would be halved if the area doubled by using two fingers. »

TIL this C weirdness: taking the address of an array name returns the same address the array name is already an alias for.

char buf[5];
printf(“%p\n”, buf);  // 0x7ffeefbff49f
printf(“%p\n”, &buf); // 0x7ffeefbff49f

Not sure if this is well defined. »

11 January 2019

Full hardware keyboard navigation coming to @_readingapp very soon. I’m doing a lightning talk about this at @NSLondonMeetup next week. »

17 January 2019

What I forgot to mention in this talk is that full keyboard support in @_readingapp didn’t quite ship yet. So close! »

22 January 2019

New location: Innsbruck. Here for a month working and skiing. It’s a beautiful morning in the mountains. »

27 January 2019

I do this. It’s easier to type and consistent with OmniFocus. »

6 February 2019

Thought-provoking and hard-hitting talk on ethics in software from @JoroDev and @sf105. It’s everyone’s responsibility to be aware of the influence they have. »

What an awesome idea! Bought my ticket ages ago and looking forward to the conference. »

8 February 2019

Experimenting adding support for hardware keyboards right in our navigation controller, so making bar buttons accessible by keyboard is as easy as setting two properties.


11 February 2019

The modern sliding panel for the annotation inspector feels so much better, and was fun to work on. Does some interesting things with UIScrollView. »

I can never remember if the ‘Send Pasteboard’ command is telling the iOS Simulator to send to the Mac, or the Mac to send to the iOS Simulator. A textbook example of UI copywriting that doesn’t work so well.

(Or there’s the other option I’m experiencing right now which is that Send Pasteboard does nothing at all.)

4 days later: Behaves as intended 😔 »

13 February 2019

It’s me, talking about controlling iPad apps as much as possible from a hardware keyboard. And yes, the slides are running from @pdfviewerapp on my iPad using a hardware keyboard to advance. »

14 February 2019

How am I going to sign in to my 4 Apple developer accounts when I have no mobile signal? I guess… just travel around the world with a stack of old iPhones ?! »

I hadn’t considered that you can sign in to multiple iCloud accounts on a device. Still way more tedious than standard OTP. »

16 February 2019

Did 2.5 weeks in Innsbruck last year and decided it wasn’t enough. On the train out now after 4 weeks with the same conclusion.


23 February 2019

Not pleased with iPad apps that hide the status bar and don’t let you show it with a tap. Guilty off the top of my head: the TV app from Apple and Duolingo. Think of the bigger UX picture. »

25 February 2019

I gave @_readingapp to @Swanros for a minute and he found a site that puts 😓 characters between every paragraph and then uses CSS to hide them except on hover and uses a custom font to render them as flags. Looks sad without CSS. 😓 »

27 February 2019

This is a good idea, although I think it’s even better to not use SFSafariViewController and then this is a non-issue. »

2 March 2019

Today’s English language tip


5 March 2019

What do you think is a good external keyboard command to go back in a UINavigationController?

7 March 2019

Locking my 2018 iPad Pro used to require feeling both sides to find the button because it looks symmetrical. I realised if you attach Apple Pencil in a right handed way, it points to the corner with the lock button. So Apple. »

Does anyone else get told you can “Invite TestFlight testers with a public link” every time you log in to App Store Connect despite checking “Don’t show this again” many many times. Yup, I got it thanks. »

On my way to Japan!!! Skiing, @tryswiftconf, and then more time in Tokyo. Let’s see if my Pasmo card still works. »

13 March 2019

Retreats are always a week to look forward to and enjoy. This is a great read. »

Oh, my iPad and Mac text replacements are out of sync again. Did they switch back to iCloud Core Data? Eagerly awaiting the day when I can stop using a Mac. »

18 March 2019

You can combine C++ templates and Objective-C lightweight generics if you use enough angle brackets. This is similar to as? in Swift (except it doesn’t check the array contents).


19 March 2019

Iterating on integrating work into life.

Pleased with that.

11 months later: I finished some more skiing last week. Recommended.

21 March 2019

Here we go!

I was hoping for a ‘talk to me about’ space on the pass to write Objective-C++ ;) #tryswiftconf


This conveniently saves me taking my own photo of the quiz results. TIL about Swift checking integer overflow at compile time. »

22 March 2019

Yay indie apps! »

A native GitHub iPad app would make my workflow a lot smoother, but the way Universal Links work it would have to be an official app from GitHub itself. »

Respect to @basecamp and @intercom for having full featured iPad apps with great UX. »

Nice shout out for @krzyzanowskim’s by @alfa from IBM. #tryswiftconf


23 March 2019

Can’t touch type “Double”. Comes out as “Douglas”. »

24 March 2019

The WW is for world wide after all. »

What app should I use to mark places on a map I’d be interested in going to or went to and were good? Privately just for me.

So far I’ve used Apple Maps favourites but it’s quite broken:

You might not notice the small area problem in a place where things are spread out, like much of the US. However in a dense environment like Hong Kong a ‘favourite’ can cover 20 different businesses. »

25 March 2019

Settling back into work after a fantastic time at #TrySwiftConf. Nice variety of talks: not just about Swift. I appreciate talks on topics like mindset, design approach, and our professional community.

#TrySwiftConf brought together people from all over the world more so than European conferences. Additionally the vegan bento was so much better than WWDC boxed lunches. (There were also options with meat.) »

26 March 2019

There are card readers in the real world that work with contactless cards but not my iPhone. »

27 March 2019

I would pay a lot for an Apple Magic Keyboard with something like an H1 chip from the AirPods to speed up switching between devices. Extra if it comes in black.

The only reliable way I found to move the keyboard between iPad and Mac is:

29 March 2019


Legendary Power Suit Obtainment Jingle

37 minutes later: Perfect for the middle of refactoring


5 April 2019

To type a backtick on iOS, press the backtick key three times and then delete twice. Otherwise it always autocorrects to a, even with a hardware keyboard. This is so habitual I started doing it when typing on my Mac. »

7 April 2019

My last weekend in Japan. Had a sunny day trip to Hakone where you can take a cable car over a volcano and ride on a fake fancy ship, and also see art and a cake machine!


8 April 2019

TIL Twitterverse is in the dictionary and in German too. (And status bar is hard, but we knew that already.)


😥😥😥 It looks like the best unsung feature of the big 2018 iPad Pro was a bug, ‘fixed’ in 12.2. You used to get a regular width in the major split in portrait, but now it’s compact. Please: make better apps by not limiting yourself to size classes.


9 April 2019

Made it to the teamLab Borderless digital art exhibition before leaving Japan. Several people recommended this and it lived up to the hype.


Tokyo ✈️ Seoul »

13 April 2019

Altering size class thresholds is an interesting idea. Here’s a proof of concept that switches to compact widths at large text sizes, even on a 13" iPad.


15 April 2019

The new split view in @_readingapp is driven by the typographic grid, using size classes as a way to tell UISplitViewController when to collapse.


17 April 2019

I hope Marzipan means iOS’s working implementation of Universal Clipboard gets ported to the Mac. »

18 April 2019

Opener is pretty cool because you can use it to work around Universal Links not working without deleting and reinstalling apps. »

19 April 2019

See also »

22 April 2019

Europe-bound this week. Looking forward to @NSLondonMeetup on Thursday and @appbuilders_ch next week »

28 April 2019

Let’s try to do better. (@Airbnb)


London to Lugano by train Read more »

29 April 2019

Didn’t know about -[NSProcessInfo performExpiringActivityWithReason:usingBlock:] for app extensions where you can’t access UIApplication. From @_alexaubry at #appbuilders19


2 May 2019

On my way out from #appbuilders19. Fun conference and idyllic location. Only 3 trains today: Lugano > Milano > Verona > Trento. »

Every time I see people force quitting iOS apps something dies inside me. Makes me not want to go out in public. It’s an unsuccessful design at massive scale. »

3 May 2019

I’m so pleased with the improvements we’ve made to external keyboard control. Really important for iPad productivity. »

Facebook have decided to lock my account with no sensible recovery options. I should be able to use GDPR rights to obtain and delete data held about me, but not sure how to do this. Can I just tweet at @facebook? »

5 May 2019

I’m going to join the Templehof airport tour at #uikonf. I highly recommend the bike tour if you haven’t done it before. »

We’re doing this again. In northern Italy this afternoon. Mountains eh?


🙂😮😵🤯 »

6 May 2019

Seems to be no setting to prevent apps using CallKit from ringing. It’s not okay for people to be able to make my devices make noise. »

Today at work I only used my Mac to charge up other devices. And as a tray. »

12 May 2019

Thinking about a Delete Now icon for articles in @_readingapp that have already been moved into a Recently Deleted list (aka Trash). Maybe shredded paper, a flame, or (unlikely) a bomb. »

14 May 2019

I think I’ve opened the Mac App Store app three times since it was redesigned. Every time I’m surprised by how large the text and other elements are. It reminds me of Duplo. »

It’s funny that Google decides to display their webpages to me in Italian and then Google Chrome offers to translate those pages to English. »

15 May 2019

Had a few nice days for running.


16 May 2019

Does anyone have plans to do anything in California before or after WWDC? I’ll be around from the evening on Friday 31st. Leaving date TBD. »

18 May 2019

I’m back on the trains: on my way to Berlin (very early) for #uikonf. Currently halfway through Trento to Munich, which is a beautiful route over the Alps. »

Spot the bug in this UIView subclass. Bonus points if you know what happens and why this actually works most of the time. I’ll post the answer later today.

To clarify the scope: it’s directly inside the subclass so pageControl is a property.

10 hours later: What happens:

  1. self is valid… but weird (curried?)
  2. The target param is typed Any? so self is OK.
  3. The target is set as NSNull somehow.
  4. This is a nil-targeted action (traverses the responder chain). My view is usually on the responder chain so still receives the action.


Setting off on train 2 of 2: Munich to Berlin. Such a simple journey today. #uikonf

4 hours later: Arrived in Berlin. Comfortable train journey preparing @_readingapp questions for WWDC and refactoring its 300 line app delegate into 100 lines plus a 200 line RootViewController. Nice and manageable. »

Implementing this loadView changes the order of layout and view lifecycle callbacks compared to not overriding it at all. I wasn’t expecting that.


21 May 2019

Anyone know a Mac app that prevents mailto links from opening Mail, and does nothing instead? It’s annoying, but not enough to make one myself. I don’t even have email accounts set up on my Mac — all iPad. »

It goes both ways: sometimes Wi-Fi is slow/expensive, and sometimes mobile is fast/cheap. »

26 May 2019

Did anyone using an existing non-US App Store account work out a practical way to switch to US to pay in USD? Not cool paying 27% more because my account happens to use GBP. Last time I tried having apps from multiple accounts it was annoying managing updates. »

27 May 2019

One slot left in our #AltConf19 escape room on Wednesday. Team NSZombieEnabled. (Tickets are already sold out.) »

29 May 2019

Berlin to London by train

Off on the trains again after having a fantastic time at #UIKonf. Berlin to Köln. Six trains to today if you count the S-Bahn and the Tube.

3 hours later: 🇩🇪 Köln 🚆 Brussels 🇧🇪

2 hours later: Brussels to London. Fastest train of the day. Bye bye Europe.


30 May 2019

I’ll be speaking about full keyboard control in iOS apps on Wednesday afternoon at #AltConf19. Let’s push the state of iPad productivity forward! I can’t wait to share this.


👋 Come and say hi next week in San Jose. I’ll try to wear my PSPDFKit cap. »

7 hours »

31 May 2019

Off on my £175 flight London ✈️ San Francisco. Good thing I have a massive list of articles saved in @_readingapp.

End of my month of no flying and still travelling. Hoping to try more of that over the summer. »

1 June 2019

By unscientific observation, App Store Connect seems way faster here in California. »

Anyone want to meet up this evening or tomorrow morning or evening in San Jose / Santa Clara? »

2 June 2019

Idea: WWDC+

Pick up your badge without the bullshit. »

Does anyone want my WWDC 🇬🇧 pin of shame? »

3 June 2019

We had a top-quality behind-the-scenes guided tour of Costco. They do $18k of avocados a week. 🥑💪 💵 #wwct19 »

Seems like it »

Two levels of tab bar at the bottom in Photos. Makes sense to have reachable navigation. »

Enthalpy »

Now we’re talking. »

So is there still iOS or do we go back to iPhoneOS? »

I had all of half a second to read all those new keyboard shortcuts in Safari. »

Over an hour in before anything was blowaway. »

Mac Pro has a handle for easy moving, like the GameCube. »

So thin and light ❤️ #MacPro #WWDC19 »

When can I have an iPad that can drive one (or six) of these new displays? #WWDC19 »

omw #WWDC19


Bindings 2.0 ? #WWDC19 »

Is Feedback Assistant a new external interface to Radar? #WWDC19


Are you seeing that black paper texture in Notes? :) »

Looks like procrastinating on implementing CloudKit sync in @_readingapp was an excellent move. Now it’s built-in. Need to dig in to work out why this would be more reliable than iCloud Core Data was. »

4 June 2019

What a day! Thank you everyone at Apple for these wonderful iPad enhancements. So excited as a user and developer. #WWDC19

The temptation to install iPadOS beta 1 on my main machine is very strong. »

👀 @pdfviewerapp @pdfviewerapp @pdfviewerapp @pdfviewerapp @pdfviewerapp @pdfviewerapp @pdfviewerapp @pdfviewerapp


5 June 2019

Don’t miss my talk: Full keyboard control in iOS apps. 14:00 – 14:45 today at #AltConf19

3 hours later: 20 mins to my hardware keyboard talk in room 1 at #AltConf19. Not just for iPad: it’s all relevant to UIKit apps on the Mac too. #WWDC19 »

7 June 2019

Low data on Wi-Fi will be sweet. I’ll use this with my mobile router if I’m low on data at the end of the month. »

Great thread. My goal in @_readingapp is to always use icons and text. SF Symbols should make this easier. »

Any app recommendations for watching video really fast? QuickTime Player on Mac only plays audio up to 1.9× »

Full content screen shots on iOS 13 are really cool. The app is asked to generate a PDF, so text will be searchable and stay sharp when zooming in. #WWDC19


Has anyone already made an Xcode project template using a UIWindowSceneDelegate that doesn’t use a storyboard? »

8 June 2019

On my way up to SF until Tuesday. Let me know if you want to say hi. »

9 June 2019

One thing that bit me last year: I downloaded the Mojave beta on my main development partition but installed it in a separate partition. However, that resulted in beta Safari getting auto-installed on the main High Sierra partition. Will keep things better isolated this year. »

10 June 2019

NSListFormatter is something I’ve wanted before. Great to see Foundation is still improving. Docs aren’t up so look in the header file.


I think this is the most minimal iOS 13 app using the new scene API that is set up in Objective-C rather than using a storyboard and UIApplicationSceneManifest.

25 minutes later: If you declare a UIApplicationSceneManifest to specify the scene delegate, you can not have an app delegate at all. »

11 June 2019

Is it a logical next step for the iPad home screen to not display apps but scene sessions? Would simplify the transitions between home screen and windows. »

15 June 2019

Is there a nice notes app that syncs with iCloud like @BearNotesApp but where copy and paste use plain text? »

16 June 2019

Going multiPad »

18 June 2019

Did anyone find a way to present one of the new context menus programmatically? (Not using a UIContextMenuInteraction.) »

19 June 2019

I’m struggling to grok how closing should work with multiple windows on iPad. Should we add close buttons like Messages shows Done? Is the user expected to close windows or should they accumulate? Does flicking the last window out of the app switcher still force kill the process? »

20 June 2019

FB6185896: App unexpectedly terminates instead of receiving application:didDiscardSceneSessions: Read more »

This would be great for setting page range and annotation options when exporting PDFs from @PSPDFKit and @pdfviewerapp. »

24 June 2019

Is there an iOS app that lets you edit screen shots by pinching to ‘concertina’ part of the image? So you can show interesting things near the top and bottom, but skip the uninteresting/confidential bits in between. »

The What’s New in AppKit session from #WWDC19 is packed full, and is a reminder that you can get so much deep system integration with a native app. »

Our friend in the strawberry patch.


25 June 2019

It’s now possible to buy train etickets in south-east England, but stations don’t necessarily have anything to read them. You can wave your phone at a ticket officer, who just sort of assumes it’s okay I guess and tells the guard at the ticket gate to let you through.

App idea: generate wallet passes that look about right and show today’s date. »

London 🚆 Paris (until next Wednesday) »

27 June 2019

Interesting thing about CALayer:


100% of spam ending up in my iCloud inbox was addressed to * rather than * — block rule set up ☑️.

Take that Settings > Accounts > iCloud > Advanced > Mail


2 July 2019

Over the weekend a friend asked me to estimate the percentage productivity of our remote team compared to if we were together in an office, and was pretty surprised when I went for 120%. »

3 July 2019

I’d love to believe this was achieved by fixing the app switcher so it doesn’t kill processes. That would give the same result. »

7 July 2019

On my way to #HackingWithSwiftLive. Did you know this place is named after @_readingapp?


This is not what I expected: it costs more to use the national postal service instead of a courier. Totally worth it, since couriers often fail to find our house.


9 July 2019

Paul Hudson is the best. Tried out so much new API in iOS 13 at #HackingWithSwiftLive, including the document scanner and text recognition.


Zoom on iPad disadvantages:

On the plus side:

10 July 2019

Winning at code review.


I fully agree. My impression was that the staff were deliberately trying to make attendees feel uncomfortable, which is not cool, especially considering the price to attend. However this may be a cultural misunderstanding.

The other thing I find mildly culturally insensitive about WWDC is they keep giving me a United Kingdom flag pin like everyone is expected to associate with a single country, and for that to be a positive association. (But it’s just a pin: I can easily get rid of it.) »

15 July 2019

They made this mistake, but still managed to create such a groundbreaking and joyous piece of software. Everyone makes mistakes: it’s okay. ♥️ »

18 July 2019

When you turn off accessibility shortcuts, the lock button (or home button) is much more responsive because it doesn’t need to wait for triple click. Wish there was a way to have AX shortcuts only in Control Center. »

The weird dance where you beep out of the train ticket gate with a QR code on your phone then immediately beep back in with contactless on your phone to switch to the London charging zone. Maybe the pink card readers also work for this? »

19 July 2019

My objection to these contextual menus is having the icons on the trailing side means you can’t do a quick vertical scan. There’s no vertical focus line for the eye to follow.

But I love the idea of having a consistent menu design. »

21 July 2019

I think I’ve worked out Facebook login:

Current resolve is to GDPR it when the cooldown ends. »

23 July 2019

We’re looking for help. Get in touch if you’d like to be more involved with the London iOS and Mac developer scene. »

26 July 2019

We should prefer saying hardware keyboard rather than external keyboard when talking about iOS apps, because if the app is running on a MacBook the keyboard is not external. »

29 July 2019

For the most part, me too. »

31 July 2019

Here’s @viticci on the typographic problems of icons being on the trailing side of text in menus throughout iOS 13. Eyes doing a constant dance.

( »

The new things in the ‘And More’ section are pretty cool too. I love the new colour palette and I’m glad image rotation is finally done. Also we decided it’s better UX to open links in the Safari app instead of Safari VC.


Presumably UIBarButtonSystemItemBookmarks is backed by this symbol. That means the thing documented as “The system bookmarks button” may only refer to Apple Books.

How many apps need to refer to Apple Books anyway? In what way are apps expected to integrate with Apple Books? »

2 August 2019

Reminder that much trouble was reported with the first gen LG UltraFine 5k display. The USB ports don’t work reliably on mine: it only charges my iPhone if my Mac is also plugged in, and the lightning connector it the right way up. Same cable works fine both ways up anywhere else

Also 5K is really cold »

5 August 2019

When adding a Catalyst app ID to Certificates, Identifiers & Profiles, you don’t want to create a new macOS app ID. Instead add the macOS capability to your existing iOS app ID. »

6 August 2019

Found my self typing ‘files’ into @alfredapp looking for the Files app on my Mac. »

9 August 2019

Does anyone else see that putting AirPods in their case sometimes sends the iOS device a play command? (Which then comes out on the speakers.) »

10 August 2019

I can’t find a way to correctly implement a cancellable child view controller transition like UINavigationController does, because endAppearanceTransition doesn’t let you specify whether the transition was cancelled.

2 hours later: The solution for cancelling a child view controller transition is to call beginAppearanceTransition a second time when cancelling.

For the view that ends up staying visible:

// When the transition starts.
beginAppearanceTransition(false, animated: true)
// When the transition is cancelled.
beginAppearanceTransition(true, animated: false)

The solution to a warning log about ‘Unbalanced calls to begin/end appearance transitions’ was to take my balanced calls and unbalance them. »

12 August 2019

Please can we have this for warnings and errors. »

14 August 2019

I didn’t know Safari on iOS 12 supported dragging links to the side to open split view. This old dog has a new trick. »

29 August 2019

Uploaded a trivial Mac app for notarisation earlier today in the Xcode UI. Email came back that it’s ready 2 mins later. But 13 hours on it still shows as ‘Processing’ in Xcode and can’t be distributed. »

1 September 2019

Beyond size classes: Making better use of large screens Read more »

3 September 2019

Missed #picswithdave opportunity. »

4 September 2019

This. It’s one of the cool things about the Mac that app icons can have interesting and distinct shapes. »

When did UITabBar change from activating tabs on touch down to touch up? I feel I’m not keeping up. »

10 September 2019

Non-huge iPhone pls »

12 September 2019

Not feeling good about the iPadOS split from iOS. »

13 September 2019

Was it my imagination that True Tone on a Mac used to include external displays and stopped doing that a few months ago? »

iOS 13.1 seems to revert the home screen changes on iPad mini so it’s back to having a different number of columns of icons in portrait and landscape. »

22 September 2019

It’s time for the @PSPDFKit summer retreat! It’s always a productive and (more importantly) fun week.

London 🚆 Paris 🚆 Barcelona


Does anyone know why companies set up synchronous text chat for support? It’s seems like the worst of both worlds. Both parties have to be present at the same time and you have to type.

14 hours later: I think I wasn’t clear my main point is: why is asynchronous chat often not an option for those that want it? And if you build a chat system right it works great sync and async (e.g. Intercom). »

29 September 2019

What do you use for UK to Germany trains when @thetrainline isn’t working? It’s €100 more on :( »

2 October 2019

My day:😎 Barcelona 🚆 Paris 🚆 London 🥶


4 October 2019

Our @pdfviewerapp Catalyst app review rejection is for… having the Game Center entitlement?! Didn’t see that coming. It’s not in our entitlements file, but somehow appears in the embedded provisioning profile. »

5 October 2019

Any recommendations for a good banking service where I can store euros while being a UK resident? »

7 October 2019

It’s really good. Well worth a read. »

Upcoming locations:

Excited! »

8 October 2019

Found out why iOS was not flagging ‘becuase’ as an incorrect spelling. I’d set up a manual text replacement becuase -> because. However for some reason the spell checker doesn‘t flag text replacement trigger text. Makes no sense to me.

Now when I make that typo it is underlined red but doesn’t get corrected automatically. Can’t win. »

This one I have no idea. (Correct spelling: no silent gh)


Our Mac app is out! This was an interesting summer. Looking forward to iterating on this. »

9 October 2019

On iOS 13, toggling the bold text settings no longer restarts springboard. 💜 »

11 October 2019

London 🚆 Paris 🚆 Munich


12 October 2019

TIL pasta straws are a thing. Works fine. You get used to the pasta taste.


13 October 2019

One support agent at @StarlingBank is telling me that the app crashing when logging is an intentional security meansure against jailbroken devices — without asking if my device is jailbroken (it’s not).

@StarlingBank To be fair I opened a different support ticket for a different crash and was told it was forwarded to the engineering team, which is a great response. 👍 »

16 October 2019

Receiving Messages app reactions on iOS 13 seems to send a push notification with sound even when sound is turned off for Messages. This is not cool. »

The automatic perspective correction in iOS 13 Photos is amazing.


Am I missing something or is there no way to delete a whole thread in iOS 13 Mail from the message detail view? Seems you have to use swipe to delete in the messages list. »

17 October 2019

Desktop-class browsing is where you need to ‘Request Mobile Website’ to get it to work. (Although generally the improvements in Safari on iOS 13 are fantastic 👍)

And here’s part three when you tap that button. I was thinking it was weirdly spaced out… and then I saw the tab bar.


18 October 2019

Munich 🚆 Stuttgart 🚆 Paris 🚆 London »

Settings > Wallet & Apple Pay > Transaction Defaults

Now I can stop accidentally buying train tickets with my work email address. If Apple Pay remembered last used choices there’d mostly be no need to go in and configure this.

Maybe at some point we’ll get to a halcyon future where you can buy train tickets conveniently and anonymously. »

23 October 2019

Has anyone tried installing iTunes 12.6.5 on Catalina? (From Modifies a load of system folders so I have a feeling this will either not work or break things.

Why you may ask? We’ve had multiple reports and confirmed ourselves that having a certain app installed means PDFs can no longer be opened in @pdfviewerapp. We believe this is due to it corrupting the file type associations so would like to look at its Info.plist. »

London ✈️ Mumbai »

26 October 2019

Diwali in Mumbai has topped New Year’s Eve in Berlin as least safe firework experience. And it’s not even the main day yet. »

27 October 2019

I feel like an idiot for buying so many Lonely Planet guides from Apple Books. LP website is better:


Hypothesis: analysis needs images higher res than the thumbnails so has to download these from iCloud.

And it doesn’t get hot when charging with no network connection. That’s the key observation!

Wish list:

I love the results of the analysis. It’s finding the best cat pictures.


28 October 2019

The iOS contextual menu for links would be a great place to put in a Copy Text item. Copying the text of a link is harder with the new behaviour of the long press and drag gesture on text. »

30 October 2019

We’ve seen strange interaction between UIKeyCommand and text input for a while. Which one gets the event is not intuitive and sometimes somehow neither gets the event! My guess would be this is because these key commands were newly added in the Twitter app »

Just booked a 21 hour train journey — New Delhi to Jalpaiguri in West Bengal. Not sure if that was a good idea. »

1 November 2019

19 places on Airbnb are listed as having ski-in/ski-out… in Hanoi. Sounds like a dream city. 🌴🏂


2 November 2019

Mumbai 🚆 Ahmedabad

Starting my journey across India! »

3 November 2019

Had a fun ride of the back of @_akshatpatel’s moped through the cacophony that is Ahmedabad traffic. The real India experience. »

4 November 2019

Stayed in a gorgeous restored haveli (traditional mansion) in Ahmedabad. So many lovely details. Makes we want to start a travel blog!


Ahmedabad 🚆 Jodhpur: the blue city of Rajasthan »

7 November 2019

Notably Google, so it requires two calls to 1Password. Time wasting. »

8 November 2019

When your museum audio guide freezes right before explaining the complicated story of the umbrella on the right. The suspense! »

10 November 2019

It sounds like the Indian government has decided to turn off the mobile internet today in some areas. I’m just staying in my hotel then.

1 hour later: One consequence of this is the hotel can’t take card payments. Hopefully the government decide to allow the internet by tomorrow when I check out. »

16 November 2019

When can I get this macOS 15?


17 November 2019

Trying to test sharing into @_readingapp from Apple News but seeing this when trying to open it. Any idea what Restrictions this is talking about and how to turn them off? Tried searching in Settings and didn’t find anything.


21 November 2019

Is there any way to disable the Mac spell check feature where it tries to incorrectly change words to homophones? E.g. to -> too and its -> it’s. I think this was introduced in Mojave. »

I have to assume it’s a weird bug with my setup that the Catalina Music app doesn’t work with the system media playback controls (Touch Bar & headphones clicker). »

22 November 2019

This email from @Airbnb is of limited use since it does not say who the offending person is. There’s always more room for empathy for users in software design.


25 November 2019

Am I using UIDocumentInteractionController wrong? It shows a share sheet with a 5 byte file, but extensions end up receiving no input items. Logs this:

Could not instantiate class NSURL. NSCocoaErrorDomain Code=4864 “The URL archive of type “public.url” contains invalid data.”

1 hour later: Solution: use UIDocumentPickerViewController for exporting instead. Close enough 🤷‍♂️ »

26 November 2019

One of my favourite moments in video games. VVVVVV.


27 November 2019

Is there a Twitter app that shows newest at the bottom in the timeline? When you think about it, it’s odd that the order flips when viewing threads. (Not unique to Twitter: all sorts of apps are designed like this.) »

A curse of making apps is I can’t use my apps normally. @_readingapp is supposed to be a focused reading environment and I saved a whole book in it, but rather than reading the book I’m just excited how fast the layout happens and thinking about that. »

30 November 2019


I just realised the iOS 13 volume change indicator is draggable. Neat! »

1 December 2019

I often end up with a v when trying to paste into Spotlight on iPad. At first I thought this was user error, but it’s a bug. Hold cmd and press space and then v without lifting cmd: the modifier is ignored for the second keypress.


From 1–24 December 2019, I published open source code every day. Most days, these efforts focused on hardware keyboard control in iOS apps, which came together as KeyboardKit. This article collects my daily updates. Read more »

2 December 2019

Been looking forward to this because iPhone SE has slow Touch ID. London is the gold standard for paying for public transport. You don’t have to think about it and you always get the best price. »

Just found in the Xcode Simulators list you can scroll sideways to delete. Faster than clicking each row, pressing delete, and confirming the alert. (Even better: manage Simulators with a script.)


4 December 2019


I’m serious about Ghost Trick. Must be on DS, not the iOS port. »

8 December 2019

On iOS 13 you can hold shift + tap to select text. Works with both software and hardware keyboards on both iPad and iPhone. So useful; I love it. »

9 December 2019

A challenge?! What looks like the last little bit through Vietnam takes 34 hours; I already checked. »

11 December 2019

I wrote my case for why openURL is better than SFSafariViewController. Read more »

17 December 2019

Was a weird fix. I put this in the button’s init. 🤷‍♂️


Even the Settings app can lose entered data if you swipe down to dismiss a sheet modal. Make sure isModalInPresentation is set in such cases to avoid data loss (especially Tweet drafts!) »

18 December 2019

Buh, Safari on iPad’s location bar sometimes does a web search for the title of a bookmark instead of opening that bookmark. That leaks private info. »

20 December 2019

I know a bit about the Home and End keys in Catalyst apps so I wrote a response. Summary: UIKit doesn’t do this; use KeyboardKit. 👍 Read more »

21 December 2019

So @SlackHQ have removed markdown from the iPad app and their support says they have no plans to add this back. I suppose I switch to 100% plain text. I’m not going to use Slack in Safari on iPad to get markdown. »