Axel Le Pennec
banner
alpennec.com
Axel Le Pennec
@alpennec.com
Indie app developer (Apple platforms) from Paris, France 🇫🇷
A solution suggested by @fatbobman.com is to "duplicate" the top/bottom content: one hidden in the safeAreaInset of each page + one visible/interactive in an overlay of the parent/container View (ZStack).

Of course it depends on the onboarding design.

Gist: gist.github.com/alpennec/2a3...
November 16, 2025 at 5:36 PM
I'm building a custom #SwiftUI navigation flow for an app onboarding but I'm having layout issues when moving from steps with/without safeAreaInset content to steps without/with safeAreaInset content. See blue frame.

Any idea how to fix this?

Gist: gist.github.com/alpennec/e9c...

@fatbobman.com
November 16, 2025 at 11:12 AM
SwiftUI has been released more than 6 years ago but you still have to use UIDatePicker.appearance() to set a minuteInterval other than the default 1 minute to a date picker 🤦🏻‍♂️

Maybe mesh gradients are more used 🤷🏻‍♂️
November 15, 2025 at 8:39 AM
TIL that we can create custom attributes for AttributedString 🤩

It's very useful for styling text while respecting localization, especially when the styled segments change per language.

I specify each attributed segment directly in my string catalog translation, and voilà! ✨
November 14, 2025 at 10:52 AM
Oops!…I Did It Again 😬

I renewed my Apple Developer Program membership!

Here’s to another year of learning, building, shipping, failing, sharing, succeeding and doing it all over again.

Let’s go! 🤪
November 2, 2025 at 8:00 AM
TIL the @.Observable macro doesn't trigger updates for equatable properties starting with iOS 26. But for prior releases, we have to manually check equality for the object properties to improve our app performances.

Thank you for the tip Steven!
October 30, 2025 at 6:37 PM
TIL Xcode 26 has a View Debugging tool to show when a View is rendered called “Flash Updated Regions”.

This seems very powerful and useful, I’ll make sure to débug my apps with that turned on.
October 30, 2025 at 5:36 PM
How does localization work in Xcode for languages with regional variants? Can I just localize the “base” language (es, pt, fr)?

For example, if I localize for Spanish, do I have to include also Spanish (Latin America) and Spanish (United States) or will it fallback to “es”?
October 24, 2025 at 12:09 PM
Oh is that actually fixed on iOS 26.1 beta 2 (23B5059e)?! 😅
October 18, 2025 at 1:26 PM
It turns out .glassEffect(.regular.interactive(), in: .circle) is actually buggy too 😱

Another shape appears when the button is touched & the finger is moved around 🤦🏻‍♂️

I only tested on a white background in light mode before but it’s clearly visible on a contrasting background…
October 18, 2025 at 12:26 PM
Sigh 😔

On iOS 26, the touch gestures from a sheet are propagated below it and play the liquid glass effect on the controls 🫤 Luckily, it doesn’t trigger the button actions…

Is there a fix for that?
October 17, 2025 at 2:47 PM
Is it possible to replicate the style of a liquid glass toolbar button in #SwiftUI?

Using buttonStyle(.glass) + buttomBorderShape(.circle) shows another circle within the button when touched 🫤

And glassEffect(in: .circle) doesn’t render the same visual effect when touched 😞
October 17, 2025 at 12:21 PM
Apple pulled Indie App Santa from the App Store in September 2025 😱

Lately, it warned developers running Apps Gone Free campaigns…

And removed apps buying keyword installs or ratings/reviews!

Apple is clearly cracking down on apps that manipulate or influence the App Store.
October 9, 2025 at 7:35 AM
In SwiftUI, clipShape and shape + stroke don’t give the same result 🫤

Is there a way to have the same radius when clipping is required?
October 6, 2025 at 9:23 AM
If only there was an option to compare side by side iOS 18 vs iOS 26 (Liquid Glass) in Xcode Previews instead of having to manually switch between simulators… 🤔

FB20482528
October 2, 2025 at 11:03 AM
.popover (button) + .presentationCompactAdaptation(.sheet)
August 22, 2025 at 7:25 AM
Want to have a sheet "zoom out" of toolbar buttons in iOS 26 instead of sliding up from the bottom of the screen?

Two SwiftUI ways:

1. ZoomNavigationTransition (sheet content) + matchedTransitionSource (button)

2. .popover (button) + .presentationCompactAdaptation(.sheet) ➡️ see below for video
August 22, 2025 at 7:25 AM
safeAreaBar documentation: developer.apple.com/documentatio...
August 21, 2025 at 6:16 AM
PSA: in iOS 26, use the new SwiftUI safeAreaBar modifier instead of safeAreaInset to get the progressive blur at the top/bottom of a scroll view with custom content.

Handy if you want bottom content without a tab bar or system toolbar for example.

Link to the documentation ⬇️
August 21, 2025 at 6:16 AM
I wish we could customise the charts in an app overview on App Store Connect Analytics 🔮

- Unique Device Impressions
- Proceeds per Download (CPA est.)
- Active Paid Subscriptions
- Subscription Retention Rate
- Introductory Offer Conversion Rate

What would you like to see? 🤔
August 18, 2025 at 4:03 PM
Be careful if you’re using the localizedDescription of an in-app purchase subscription period in your paywall UI…

With an Xcode StoreKit configuration file, a weekly subscription has a period of “1 Week” ➡️ 4.99/week is displayed.

In Sandbox (and real App Store), it’s “7 Days” ➡️ 4.99/day 🚨
August 12, 2025 at 12:41 PM
A friend sent me an ips file for my app.

When symbolicating it using the dSYM from the archive, is that expected some lines are still desymbolicated? Like SwiftData? Is there a trick?

I tried to used Xcode "Devices and Simulators" to open the crash with the project but it fails (see screenshot).
August 9, 2025 at 4:43 PM
Not one, not two, but three App Store shortcuts! 🤩

I’ve created a small webpage to host them all because iCloud links don’t update when I make changes.

Plus, I fixed the bug where parsing sometimes failed 🥳 Make sure to grab the latest versions!

Link to the webpage below 🧵
August 6, 2025 at 8:13 AM
If you use @mixpanel.com in a SwiftUI app, read carefully 🚨

Does your app’s accent color defaults to blue in various places?

Check if you've enabled automatic event tracking 🤯

And disable it NOW!

It took me so long, I'm sooooo happy I finally found the reason! 🎉

More below ⬇️
August 4, 2025 at 5:31 PM
Hooray! Keywords for custom product pages are now available on App Store Connect! 🤩

Looks like it’s time to:

1. Start mass-producing app screenshots (with AI?!)

2. Stuff them with our beloved app keywords

3. See how the App Store algorithm reacts 😂

Do you plan to use them?
July 30, 2025 at 8:01 AM