Hi, I’m Arthur, an iOS developer and Computer Science major. 👋

I love building focused, easy-to-use tools. I make Frame Grabber and Routie (Coming Soon) and always tinker with some smaller projects. Check out my projects on GitHub.

My other passions are trail and ultra marathon running and juggling. Sometimes at the same time.

PHPicker and Frame Grabber

Evaluating the new iOS 14 Photos picker.

The upcoming iOS 14 brings a new Photos picker that allows users to select items from their photo library and hand them over to an app. According to Apple, one major benefit of the component is increased privacy for users, strongly encouraging developers to adopt it in their apps.

In this post, I’ll walk myself through the decision process of whether or not to adopt the new picker in Frame Grabber. This is a bit of a dry one, you’ve been warned.

Read more

Observing Nested Properties in Combine

A Swift-native alternative to key-value observing.

Key-value observing is an ancient technology on Apple platforms. It allows objects to be notified of changes to properties of other objects. Working with KVO in Swift has always been cumbersome. It’s only available in NSObject subclasses, making it impossible to use as your one-stop binding solution.

Combine, Apple’s new functional reactive framework, promises to change that. It is fully native in Swift and observing properties is one of its many use cases.

Replacing KVO with Combine, however, is not without gotchas. What KVO gets right is that it makes it easy to observe nested properties. With Combine, it’s more difficult.

In this post, I’ll explain why that is and how to bridge the gap.

Read more

Sharing Your Work

Lessons learned from launching Frame Grabber 1.1 and the feedback I received.

A week ago, I released Frame Grabber’s first big update. Version 1.1 brings support for Live Photos, a big redesign and a streamlined user experience. It’s also the first time I announced the app outside of this blog. It was received overwhelmingly well, which is what I want to talk about today.

Frame Grabber 1.1
Read more

Fine-Scrubbing Videos with UISlider

A drop-in UISlider subclass that adds variable scrubbing speeds.

Scrubbing through a video with a slider can be difficult. The longer the video is, the less accurate the scrubbing will be. Selecting a specific moment in the video can get fiddly and frustrating.

There’s a nice solution to this, rather hidden in iOS’ video player component AVPlayerViewController. When you slide your finger up and away from the slider, the rate at which the time changes reduces. The further away you are, the slower it gets.

Read more

One Year on the App Store

Looking back on Frame Grabber, my first iOS app.
Frame Grabber review and analytics.

A year ago on this day, I released my first iOS app on the App Store, Frame Grabber.

Read more

Status Bar Tester

Like ⌘Y in the Simulator but on your device.
Types of iOS status bars.
How the in-call status bar affects the layout of your app. Left: devices without a notch. Right: with notch.

When the status bar on iOS changes its size, apps need to react and adapt their layout. In theory, Auto Layout should handle most things automatically. But there are cases where responding to the status bar is not trivial and requires some testing.

Read more

Playground Map

Designing a map of playgrounds.
A map style for playgrounds.
A map style designed for playgrounds in Braunschweig, Germany.

My girlfriend’s inner child likes visiting playgrounds. As a little gift to her, I wanted to design a print map of playgrounds in our city. She can use the map to find new playgrounds and check off which ones she’s visited already.

Read more

Introducing Trail Joggling

Inventing a new sport.
▶️ ↩️

I have been running for quite some time now and recently picked up a bit of juggling. I was excited when I learned about joggling which is the combination of both.

Read more