In #SwiftUI, how to have a content always visible at the bottom of the screen (like the Apple Music mini player or an onboarding "next" button)? safeAreaInset/safeAreaBar modifier on a NavigationStack does not update the stack content inset. FB23732628 github.com/feedback-ass...
Axel Le Pennec
@alpennec.com
Indie app developer (Apple platforms) from Paris, France 🇫🇷
In #SwiftUI, how to have a content always visible at the bottom of the screen (like the Apple Music mini player or an onboarding "next" button)? safeAreaInset/safeAreaBar modifier on a NavigationStack does not update the stack content inset. FB23732628 github.com/feedback-ass...
Ah, obviously it's working fine on iOS 17 and iOS 18 🙈 And the issue appeared with iOS 26. So another regression it seems 🫤
Is there a way to avoid the #SwiftUI List jumping when using a swipeAction that inserts/removes the same item in the List ("Favorites" section) while keeping the original item in the List? The animation is smooth if I perform the same action when tapping. Gist: gist.github.com/alpennec/f9d...
An Apple Developer Tools Engineer confirmed we can't use a string catalog for this use case and we must use a .stringsdict file instead 🫡
The solution is to translate the TypeDisplayRepresentation name in a .stringsdict file. For a DeleteIntent, it seems this is used instead of the @.Parameter title. See the "Accelerating app interactions with App Intents" sample code from Apple: developer.apple.com/documentatio...
The solution is to translate the TypeDisplayRepresentation name in a .stringsdict file. For a DeleteIntent, it seems this is used instead of the @.Parameter title. See the "Accelerating app interactions with App Intents" sample code from Apple: developer.apple.com/documentatio...
When conforming to DeleteIntent, is there a way to show the plural form of the entity ("Books" vs "Book") in the Shortcuts app? DeleteIntent requires an AppEntity array, but it ignores the parameter title and instead uses the entity typeDisplayRepresentation (which is singular).
When conforming to DeleteIntent, is there a way to show the plural form of the entity ("Books" vs "Book") in the Shortcuts app? DeleteIntent requires an AppEntity array, but it ignores the parameter title and instead uses the entity typeDisplayRepresentation (which is singular).
I don’t get why I need to connect external coding agents (OpenAI Codex, Claude Agent, etc.) in Xcode instead of using Apple Intelligence with Private Cloud Compute 🤔 Turning your $99/year Apple Developer Program fee into a monthly subscription could be a real cash machine 🤑
The CSSearchableItem(appEntity:) method is marked as iOS 18+ but my app crashes when it launches on iOS 18+, even if I wrap the lines in #if available(iOS 26, *). It works fine on iOS 26+. Any idea if that can be solved and how? Documentation: developer.apple.com/documentatio... cc @mgorbach.name
Apple, can you please explain why running Shortcuts & App Intents on an iOS 18 simulator works fine but fails miserably on iOS 26.4+ and iOS 27? Can you please fix that for this release cycle? Feedback: FB23342158 Project is a sample code from Apple: developer.apple.com/documentatio...
We can't drag and drop files to DeviceHub as we used to be able to using Simulator? It was quite handy to import files into apps (onOpenURL) 😒 FB: FB23368633
App Intents question (again 😅): I notice that some "Find" intents allow to choose specific related items when filtering (e.g. an album when searching for a photo or an author when searching for books) instead of a textfield. How's that done? What drive the available choices?
Fixed 😮💨 I had to change the extension minimum deployment from iOS 26 to iOS 18.6 (it was not set automatically when I added the widget extension). But then I had other issues about invalid widget kinds that were not in the scheme's Environment Variables... Cleaning solved it.
I'm trying to run the basic widgets extension template from Xcode on a physical device (iOS 18.7.9) but it fails. I tried rebooting my device twice. I tried using Xcode 26.6 too, same issue. I don't know what to do to get it work...
I'm trying to run the basic widgets extension template from Xcode on a physical device (iOS 18.7.9) but it fails. I tried rebooting my device twice. I tried using Xcode 26.6 too, same issue. I don't know what to do to get it work...
Why can I only search for an indexed item in Spotlight using the title or the displayName on iOS but I can search by any indexed attribute on macOS? 🤔 Is this a bug or expected? I also posted on Apple developers forums with a feedback (FB23317556): developer.apple.com/forums/threa...
With “Find…” actions in Apple #Shortcuts, is there a way to specify only the date part (not the time) for a filter? I now I can omit the time part in my app’s queries but it’s not very intuitive for a user in my opinion. Asking for a friend implementing #AppIntents.
I'm looking for a sample #SwiftUI project using the AppIntents framework to read/write data from/to #CoreData (and/or #SwiftData). Do I use the AppDependencyManager thing? A database singleton? Do I use the main thread? A background thread/context? Any idea? Thank you!
Is there a way in #SwiftUI to detect when a sheet is being dismissed by a user to present a confirmationDialog in case of unsaved changes, as recommended by Apple HIG about Sheets? In UIKit, we can use the presentationControllerDidAttemptToDismiss method. Feebdack: FB22777840
So it seems if there is a confirmation action associated with the cancellation action, we should put the cancellation at the leading edge (what iOS has been doing for ages). But if it’s just a close button in the toolbar, we should put it at the trailing edge, like what Apple seems to be doing.
But some people on X pointed that Apple doesn’t respect this guideline. Or maybe a “Close” behaves differently than a “Cancel”? 🤔 What’s Apple stake on this @mikestern.bsky.social? Could you please specify in the Apple HIG if this is valid for both Close and Cancel? Thanks! x.com/vistar941/st...
Apple updated its Human Interface Guidelines for Sheets on March 24, 2026 to add guidance for button placement in the toolbar. "In iOS & iPadOS, the Cancel button belongs on the leading edge of the top toolbar." Time to update my apps 🙂 Documentation: developer.apple.com/design/human...
@mikestern.bsky.social hey Mike. Is there a way to see all changes made to Apple Human Interface Guidelines instead of having to check each page to see the log? Thanks!
Flo found an alternative to the free trial toggle on its paywall that seems compliant with Guideline 3.1.2 😮 It replaced the toggle by a “Not sure yet? Start a free trial” button that selects the offer with the free trial while presenting a sheet with all subscription options.
The solution is to use .compositingGroup() on the SwiftUI Menu 🎉 Thanks to @saschagordner.de who pointed me to a StackOverflow answer about the exact same issue: stackoverflow.com/a/79884587 Documentation about compositingGroup: shorturl.at/btdM6
Any idea how to fix this Liquid Glass visual bug? In my app, I have a #SwiftUI Menu that presents an overlay over the whole view. But the Menu stays visible for a short period of time until it goes below the overlay 🫤 Works fine on iOS 17/18. Code: gist.github.com/alpennec/31e...
Any idea how to fix this Liquid Glass visual bug? In my app, I have a #SwiftUI Menu that presents an overlay over the whole view. But the Menu stays visible for a short period of time until it goes below the overlay 🫤 Works fine on iOS 17/18. Code: gist.github.com/alpennec/31e...
New app analytics are finally live in App Store Connect! Time to explore 🥳 Next: dark mode? 🌚
Expected behaviour, not a regression nor a bug 🫡 Thanks Apple and the SwiftUI team for being reactive!
Dear SwiftUI, can you please fix the regressions you introduced on iOS 26? FB22043999 In my View, I read the dismiss value from the Environment. Whenever a Menu or Picker is opened, the View body is re evaluated 🤷🏻♂️ This unexpected behaviour doesn't happen on iOS 18.5 🙃
Dear SwiftUI, can you please fix the regressions you introduced on iOS 26? FB22043999 In my View, I read the dismiss value from the Environment. Whenever a Menu or Picker is opened, the View body is re evaluated 🤷🏻♂️ This unexpected behaviour doesn't happen on iOS 18.5 🙃
Lately, I’ve often had to approve transactions in my banking app when making in-app purchases (even free trial). It asks for approval even if I approved another purchase just a few minutes earlier. I wonder whether this added friction hurts conversion rates 🫤 Have you experienced this as well?