Axel Le Pennec
banner
alpennec.com
Axel Le Pennec
@alpennec.com
Indie app developer (Apple platforms) from Paris, France 🇫🇷
After the Swift SDK for Android, Swift in the browser with ElementaryUI 🤩

The best time to learn Swift was eleven years ago. The second best is now 😉

elementary.codes
January 7, 2026 at 7:44 PM
I dug a bit more in this issue where my accentColor is ignored by my SwiftUI apps when I initialize Mixpanel in my App init (early but required).

I noticed it's due to the SDK accessing UIScreen.main.bounds.size...

My fix is to comment this line ⬇️

More: github.com/mixpanel/mix...
December 18, 2025 at 12:27 PM
Confirmed by Apple 🫡
December 18, 2025 at 9:03 AM
One tip to speed up your SwiftUI previews 🤩

I wanted to centralize constants like opacity, spacing, or sizes used by my View to speed up prototyping.

Stored properties: slow 🐌 as Xcode recompiles the file every time I tweak a value.

Computed properties: instant updates 🏎️
December 16, 2025 at 1:19 PM
SwiftUI AnyShapeStyle, yay or nay? 🤔

I've been using two foregroundStyle for my shaped view backgrounds: one with a Color (often a UIKit one: secondarySystemBackground) + another one with a HierarchicalShapeStyle.

But we can get the same with AnyShapeStyle + BackgroundStyle.
December 15, 2025 at 8:36 AM
Thanks Craig! 😉
December 9, 2025 at 8:24 AM
Apple, don't be surprised if developers don't file feedback anymore in Feedback Assistant.

I take the time to file detailed feedback with steps, device details + screen recording to help improve things for everyone.

Please, don’t reply to ask for things I’ve already provided...
December 7, 2025 at 10:40 AM
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