Nil Coalescing Newsletter - September 2025

Hi there,

September was a really eventful month with iPhone 17 launch, iOS 26 release, and many great events running in the iOS developer community. The newsletter got slightly delayed this time, I was focusing on launching my new app Breve and preparing my last minute submission for RevenueCat's Shipaton. I can't wait to share all the updates with you, so let's jump right in.


Breve app launch and technical insights

I'm so happy to finally introduce my new app Breve: Barista Recipes that I released just a few days ago. Breve is available on iPhone and iPad and comes with a large collections of coffee recipes and guides that adapt to whatever equipment users have on hand, from espresso machines, to simple hands-on tools.

Coffee drink collections in Breve on iPad and a Cortado recipe on iPhone

Coffee drink collections in Breve on iPad and a Cortado recipe on iPhone

Breve is built for iOS 26 and combines the new Liquid Glass design with soft colorful background gradients and watercolor-style artworks. If you want to check it out, you can find it on the App Store. If you feel like leaving a rating or review, it would mean a lot and help more people come across it.

I've been working on Breve for the last few months, and it gave me a great platform to experiment with the new iOS 26 APIs, and system integrations. While I kept the app itself secret until the launch date, I've been sharing a lot of my technical learnings along the way on my blog.

One of the interesting design solutions in Breve is the recipe detail header with the watercolor illustration blending into the background. I achieved this look using a combination of background extension effects, blurs and gradient overlays. If you want to learn more about the new backgroundExtensionEffect() modifier in SwiftUI and see some examples of how it can be used, take a look at my post: Create immersive backgrounds in SwiftUI with backgroundExtensionEffect.

Espresso recipe in light mode and Bicerin recipe in dark mode on iPhone

Espresso recipe in light mode and Bicerin recipe in dark mode on iPhone

I also added a stretchy header effect, so when users overscroll, the header image expands instead of showing empty space at the top. If you'd like to add something similar in your apps, feel free to use my strechy() modifier built with the visualEffect() API. You can get the code for it from my blog: Stretchy header in SwiftUI with visualEffect.

For the search functionality I decided to use a separate tab. This pattern works nicely with the Liquid Glass tab view in iOS 26, where the search tab appears visually separated from the others and transforms into a search field when selected. iOS 26 brought quite a few updates to search placements, I documented all the changes in my article - SwiftUI Search Enhancements in iOS and iPadOS 26.

Tab view and search tab in Breve on iPhone

Tab view and search tab in Breve on iPhone

Breve is a very content-rich app, so making sure users can quickly find what they are looking for is important. To make the content searchable not only within the app but also through system-wide Spotlight search, I indexed it with Core Spotlight. It's possible to use the same search index for both, and I wrote a detailed post on how this can be done: Core Spotlight integration for Spotlight and internal app search.

In addition to the Liquid Glass tab view with search, Breve also makes use of the new Liquid Glass sheet appearance for preferences, paired with a morphing transition from the settings button. In iOS 26, partial-height sheets use the glass background by default, but extra setup is needed when they contain lists or forms, or when pushing views onto a NavigationStack inside the sheet. I documented everything required to take full advantage of the new sheet appearance in different scenarios in these two write-ups: Presenting Liquid Glass sheets in SwiftUI on iOS 26 and SwiftUI Liquid Glass sheets with NavigationStack and Form.

Liquid Glass Preferences sheet in light and dark mode

Liquid Glass Preferences sheet in light and dark mode

In terms of system integration, I thought the most appropriate iOS 26 framework to bring into the first release of Breve would be AlarmKit. AlarmKit lets us schedule one-time alarms, weekly repeating alarms, and countdown timers that start immediately, and in Breve it's used for brewing timers. The framework provides APIs to request authorization from users, customize alerts that cut through silent mode and Focus, and display a live countdown in a Live Activity. I walk through the setup, which is quite involved, in my blog post: Schedule a countdown timer with AlarmKit. Unfortunately, there are no APIs for displaying a live countdown inside the app, so I had to write some custom logic for it in Breve, placing the countdown either in a tab view accessory or in the bottom toolbar, depending on where in the app the user is. I'll try to cover that in an upcoming post.

Timer running in a tab view accessory and in a Live Activity

Timer running in a tab view accessory and in a Live Activity

I have a lot more technical learnings from building Breve, that I haven't had a chance to turn into blog posts yet, and I'm going to do my best to share as much as I can in the near future.


Shipaton 2025

You've probably heard of the hackathon organized by RevenueCat called Shipaton. The rules are to ship a new app during August or September, make a submission, and pitch your work for one or multiple award categories. The submission period is now closed, but I managed to release Breve just in time to qualify. I submitted it for the design category award, as I thought that would be the best fit for Breve. Wish me luck!

One of the requirements for the competition was to make a demo video of the app. I uploaded mine to our YouTube channel, so if you are curious you can watch it here:

▶️ Breve Demo Video


A Cosmic Orange upgrade

And of course, September also brought the iPhone event. It was particularly exciting for me this year, because I was finally ready to upgrade from my iPhone 12. I wanted a phone with a good camera, so that I can take plenty of nature photos on my walks. I went for the iPhone 17 Pro in Cosmic Orange, and it's been great so far! It feels really fast and smooth, and I've been having fun experimenting with the camera features like macro mode and zoom options.

Here are two of my favorite photos so far: a close-up of a plant I don't know the name of taken with macro mode, and a portrait of my cat Pepper captured with the 4x zoom.

Macro mode photo of a plant on iPhone 17 Pro

Macro mode photo of a plant on iPhone 17 Pro

4x zoom photo of a cat on iPhone 17 Pro

4x zoom photo of a cat on iPhone 17 Pro


Discounts

Every month, I share exclusive, limited-time offers on my books with email newsletter subscribers. Sign up so you don’t miss future newsletter issues and can take advantage of upcoming discounts!


Subscribe so you don’t miss future issues!

Invalid email address

Unexpected server error

Subscribed!

We take your privacy seriously and will never share your details with third parties.

You can unsubscribe anytime using the link in our emails.

Newsletter RSS feed