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.
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.
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.
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.
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.
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.