Post

Replies

Boosts

Views

Activity

How should `ArrangementView` behave across iPhone Duo display modes?
How should an ArrangementView be designed to adapt across the different iPhone Duo display modes, such as closed, opened, and book mode? In some configurations, a horizontally or vertically split ArrangementView appears to display only one of its two child views. The sessions compare ArrangementView to HStack and VStack, but those containers always display all of their child views. Is this behavior expected? If so, how should developers structure an ArrangementView so that its content adapts correctly across the different iPhone Duo display modes?
Topic: UI Frameworks SubTopic: SwiftUI
4
3
279
Sep ’26
How to use ArrangementView for Closed and Open iPhone Duo Layouts
On iPhone Duo, is this the recommended pattern for displaying two views, A and B in a splitted way? I would use an ArrangementView configured as follows: When the hinge is closed, display A and B using a regular adaptive HStack/VStack. When the hinge is open, let ArrangementView split A and B across the two displays. Is this the intended way to structure this kind of layout?
Topic: UI Frameworks SubTopic: SwiftUI
0
0
58
Sep ’26
Is `ArrangementView` intended only for iPhone Duo?
Is ArrangementView intended specifically for iPhone Duo, or should it also be used for adaptive layouts across iPhone and iPad? This is unclear because when I use a horizontally or vertically split ArrangementView on a non-Duo device, such as iPad, it only displays one of its child views. If ArrangementView is Duo-specific, what is the recommended way to use it only on iPhone Duo while falling back to a different layout on other devices? I haven’t seen an API or pattern for conditionally switching between those layouts.
Topic: UI Frameworks SubTopic: SwiftUI
0
5
163
Sep ’26
Present confirmationDialog from swipeActions in List
Hello, We use the .confirmationDialog() view modifier to present an alert when deleting an item in a list. Prior to iOS 26, this dialog appeared as an action sheet on iPhone. Following WWDC 25, my understanding is that on iOS 26 the dialog should appear as an action sheet over the originating view on iPhone. This is the behavior we observe in the built-in Messages and Mail apps when deleting an item (see the screenshot below). However, when using .confirmationDialog() on iOS 26, the dialog is displayed as a standard popover on iPhone. I haven’t been able to reproduce the new expected behavior. Here's a sample code: struct ContentView: View { @State var data: [String] = ["A", "B", "C"] @State var confirmationPresented: Bool = false var body: some View { List { ForEach(data, id: \.self) { item in Text(item) .confirmationDialog("Title", isPresented: $confirmationPresented, actions: { Button(action: { }, label: { Text("OK") }) }) .swipeActions { Button("Delete", systemImage: "trash", action: { confirmationPresented.toggle() }) .tint(Color.red) } } } } } Here's the result from this sample code: Is there an additional modifier or configuration required to enable the action sheet presentation on iPhone in iOS 26?
2
1
314
Oct ’25
Unexpected shape around a GlassProminentButtonStyle button with safeAreaBar in NavigationStack
I’m trying to use the new safeAreaBar() to place a button in the bottom safe area of the view for the main action. However, there’s a bug when the view is inside a NavigationStack: a white or translucent background appears around the button. When I move the view outside of the NavigationStack, the issue goes away. NavigationStack { List { Text("ok") } .safeAreaBar(edge: .bottom) { Button(action: {}, label: { Text("Continue").font(.headline) }) .buttonStyle(.glassProminent) } } Is it a known issue?
2
0
170
Aug ’25
Live Activity for Workout app on Apple Watch
Hi, We’ve developed a workout app with a Live Activity feature to help users launch the mirroring view on iPhone, similar to the built-in workout app for biking activities. While Live Activities are now available on watchOS 11, the integration feels a bit off for our Workout app. Is there a way to disable or exclude our Live Activity from appearing on watchOS? Currently, when a user starts a workout, the Live Activity appears at the bottom of the screen, requiring users to tap the screen before they can use our app. The built-in Workout app doesn’t have this issue. Additionally, our Live Activity appears in the Smart Stack, duplicating content with the built-in Workout Live Activity. We’re unsure if we missed any keys or settings to exclude Live Activity from watchOS.
6
1
1.5k
Oct ’24
Dynamic AssistantSchema.CameraEnum
Hi, I have some questions about the new AssistantSchema.CameraEnum.captureDevice introduced with iOS 18 beta 4. Here's the context. I create a intent: @AssistantIntent(schema: .camera.setDevice) struct SetDeviceIntent { var device: CaptureDevice func perform() async throws -> some IntentResult { .result() } } @AssistantEnum(schema: .camera.captureDevice) enum CaptureDevice: String { case front case back case ultrawide } Some CaptureDevice cases are not available on some devices. e.g: CaptureMode.ultrawide is only available on iPhone, not on iPad. How can we make CaptureDevice dynamic? I don't think AppEnum supports @Dependency or something else.
0
2
663
Jul ’24
Dependency between AssistantSchema.CameraEnum
Hi, I have some questions about the new AssistantSchema.CameraEnum.captureMode and AssistantSchema.CameraEnum.captureDevice introduced with iOS 18 beta 4. Here's the context. I create a intent: @AssistantIntent(schema: .camera.startCapture) struct StartCaptureIntent { var captureMode: CaptureMode var timerDuration: CaptureDuration? var device: CaptureDevice? func perform() async throws -> some IntentResult { .result() } } And these app enums: @AssistantEnum(schema: .camera.captureDevice) enum CaptureDevice: String { case front case back case ultrawide } @AssistantEnum(schema: .camera.captureMode) enum CaptureMode: String { case modeA case modeB } Some CaptureDevice cases are not available in some CaptureMode. e.g: CaptureMode.modeA only supports CaptureDevice.back and CaptureDevice.front. In a classic AppIntent, I would create an AppEntity to represent CaptureDevice and use @IntentParameterDependency<CapturePhotoIntent>( \.$captureMode) to create a dependency between the captureMode and the captureDevice parameters. How can we create this dependency between two @AssistantEnum? I'm not sure this is possible as @AssistantEnum creates AppEnum.
0
1
620
Jul ’24
DisplayRepresentation.Image and custom SF Symbol
Hi, I have a AppEnum and I try to use a custom SF Symbol as DisplayRepresentation.Image but it's not working. I get a blank image when AppEnum picker appears. The custom SF Symbol is stored in the target's asset catalog and it works in the target (eg: Image(named: "custom_sfsymbol"). The issue occurs when I try to use it in a DisplayRepresentation static var caseDisplayRepresentations: [Self: DisplayRepresentation] = [ .sample : DisplayRepresentation(title: "sample_title", image: DisplayRepresentation.Image(named: "custom_sfsymbol")), Can we use a custom SF Symbol in a DisplayRepresentation.Image?
1
0
753
Jul ’24
LockedCameraCapture - Access to App Group User Defaults in a lock screen camera extension
From what I understood from watching the session LockedCameraCapture, the extension doesn't have access to the App Group User Defaults, so I'm wondering how I can synchronize preferences between the extension and the main app. From what I can see, the builtin iOS Camera app is able to synchronize its preferences. For example, the "Live Photo" mode toggle state is preserved whether in the main app or in the lock screen. Is there anything I'm not aware of?
2
0
1k
Jun ’24
Single query to get weather for multiple dates
Hi, I try to fetch weather information for multiple dates through a single query but I only get information for the first day. let today = Date() let tomorrow = Calendar.current.date(byAdding: DateComponents(day: 1), to: today)! let forecast = try? await WeatherService.shared.weather(for: location, including: .daily(startDate: today, endDate: tomorrow)) Can we get weather information for a range of day?
0
0
1.5k
Jul ’22
How should `ArrangementView` behave across iPhone Duo display modes?
How should an ArrangementView be designed to adapt across the different iPhone Duo display modes, such as closed, opened, and book mode? In some configurations, a horizontally or vertically split ArrangementView appears to display only one of its two child views. The sessions compare ArrangementView to HStack and VStack, but those containers always display all of their child views. Is this behavior expected? If so, how should developers structure an ArrangementView so that its content adapts correctly across the different iPhone Duo display modes?
Topic: UI Frameworks SubTopic: SwiftUI
Replies
4
Boosts
3
Views
279
Activity
Sep ’26
How to use ArrangementView for Closed and Open iPhone Duo Layouts
On iPhone Duo, is this the recommended pattern for displaying two views, A and B in a splitted way? I would use an ArrangementView configured as follows: When the hinge is closed, display A and B using a regular adaptive HStack/VStack. When the hinge is open, let ArrangementView split A and B across the two displays. Is this the intended way to structure this kind of layout?
Topic: UI Frameworks SubTopic: SwiftUI
Replies
0
Boosts
0
Views
58
Activity
Sep ’26
Is `ArrangementView` intended only for iPhone Duo?
Is ArrangementView intended specifically for iPhone Duo, or should it also be used for adaptive layouts across iPhone and iPad? This is unclear because when I use a horizontally or vertically split ArrangementView on a non-Duo device, such as iPad, it only displays one of its child views. If ArrangementView is Duo-specific, what is the recommended way to use it only on iPhone Duo while falling back to a different layout on other devices? I haven’t seen an API or pattern for conditionally switching between those layouts.
Topic: UI Frameworks SubTopic: SwiftUI
Replies
0
Boosts
5
Views
163
Activity
Sep ’26
Present confirmationDialog from swipeActions in List
Hello, We use the .confirmationDialog() view modifier to present an alert when deleting an item in a list. Prior to iOS 26, this dialog appeared as an action sheet on iPhone. Following WWDC 25, my understanding is that on iOS 26 the dialog should appear as an action sheet over the originating view on iPhone. This is the behavior we observe in the built-in Messages and Mail apps when deleting an item (see the screenshot below). However, when using .confirmationDialog() on iOS 26, the dialog is displayed as a standard popover on iPhone. I haven’t been able to reproduce the new expected behavior. Here's a sample code: struct ContentView: View { @State var data: [String] = ["A", "B", "C"] @State var confirmationPresented: Bool = false var body: some View { List { ForEach(data, id: \.self) { item in Text(item) .confirmationDialog("Title", isPresented: $confirmationPresented, actions: { Button(action: { }, label: { Text("OK") }) }) .swipeActions { Button("Delete", systemImage: "trash", action: { confirmationPresented.toggle() }) .tint(Color.red) } } } } } Here's the result from this sample code: Is there an additional modifier or configuration required to enable the action sheet presentation on iPhone in iOS 26?
Replies
2
Boosts
1
Views
314
Activity
Oct ’25
Unexpected shape around a GlassProminentButtonStyle button with safeAreaBar in NavigationStack
I’m trying to use the new safeAreaBar() to place a button in the bottom safe area of the view for the main action. However, there’s a bug when the view is inside a NavigationStack: a white or translucent background appears around the button. When I move the view outside of the NavigationStack, the issue goes away. NavigationStack { List { Text("ok") } .safeAreaBar(edge: .bottom) { Button(action: {}, label: { Text("Continue").font(.headline) }) .buttonStyle(.glassProminent) } } Is it a known issue?
Replies
2
Boosts
0
Views
170
Activity
Aug ’25
Live Activity for Workout app on Apple Watch
Hi, We’ve developed a workout app with a Live Activity feature to help users launch the mirroring view on iPhone, similar to the built-in workout app for biking activities. While Live Activities are now available on watchOS 11, the integration feels a bit off for our Workout app. Is there a way to disable or exclude our Live Activity from appearing on watchOS? Currently, when a user starts a workout, the Live Activity appears at the bottom of the screen, requiring users to tap the screen before they can use our app. The built-in Workout app doesn’t have this issue. Additionally, our Live Activity appears in the Smart Stack, duplicating content with the built-in Workout Live Activity. We’re unsure if we missed any keys or settings to exclude Live Activity from watchOS.
Replies
6
Boosts
1
Views
1.5k
Activity
Oct ’24
Dynamic AssistantSchema.CameraEnum
Hi, I have some questions about the new AssistantSchema.CameraEnum.captureDevice introduced with iOS 18 beta 4. Here's the context. I create a intent: @AssistantIntent(schema: .camera.setDevice) struct SetDeviceIntent { var device: CaptureDevice func perform() async throws -> some IntentResult { .result() } } @AssistantEnum(schema: .camera.captureDevice) enum CaptureDevice: String { case front case back case ultrawide } Some CaptureDevice cases are not available on some devices. e.g: CaptureMode.ultrawide is only available on iPhone, not on iPad. How can we make CaptureDevice dynamic? I don't think AppEnum supports @Dependency or something else.
Replies
0
Boosts
2
Views
663
Activity
Jul ’24
Dependency between AssistantSchema.CameraEnum
Hi, I have some questions about the new AssistantSchema.CameraEnum.captureMode and AssistantSchema.CameraEnum.captureDevice introduced with iOS 18 beta 4. Here's the context. I create a intent: @AssistantIntent(schema: .camera.startCapture) struct StartCaptureIntent { var captureMode: CaptureMode var timerDuration: CaptureDuration? var device: CaptureDevice? func perform() async throws -> some IntentResult { .result() } } And these app enums: @AssistantEnum(schema: .camera.captureDevice) enum CaptureDevice: String { case front case back case ultrawide } @AssistantEnum(schema: .camera.captureMode) enum CaptureMode: String { case modeA case modeB } Some CaptureDevice cases are not available in some CaptureMode. e.g: CaptureMode.modeA only supports CaptureDevice.back and CaptureDevice.front. In a classic AppIntent, I would create an AppEntity to represent CaptureDevice and use @IntentParameterDependency<CapturePhotoIntent>( \.$captureMode) to create a dependency between the captureMode and the captureDevice parameters. How can we create this dependency between two @AssistantEnum? I'm not sure this is possible as @AssistantEnum creates AppEnum.
Replies
0
Boosts
1
Views
620
Activity
Jul ’24
DisplayRepresentation.Image and custom SF Symbol
Hi, I have a AppEnum and I try to use a custom SF Symbol as DisplayRepresentation.Image but it's not working. I get a blank image when AppEnum picker appears. The custom SF Symbol is stored in the target's asset catalog and it works in the target (eg: Image(named: "custom_sfsymbol"). The issue occurs when I try to use it in a DisplayRepresentation static var caseDisplayRepresentations: [Self: DisplayRepresentation] = [ .sample : DisplayRepresentation(title: "sample_title", image: DisplayRepresentation.Image(named: "custom_sfsymbol")), Can we use a custom SF Symbol in a DisplayRepresentation.Image?
Replies
1
Boosts
0
Views
753
Activity
Jul ’24
LockedCameraCapture - Access to App Group User Defaults in a lock screen camera extension
From what I understood from watching the session LockedCameraCapture, the extension doesn't have access to the App Group User Defaults, so I'm wondering how I can synchronize preferences between the extension and the main app. From what I can see, the builtin iOS Camera app is able to synchronize its preferences. For example, the "Live Photo" mode toggle state is preserved whether in the main app or in the lock screen. Is there anything I'm not aware of?
Replies
2
Boosts
0
Views
1k
Activity
Jun ’24
Single query to get weather for multiple dates
Hi, I try to fetch weather information for multiple dates through a single query but I only get information for the first day. let today = Date() let tomorrow = Calendar.current.date(byAdding: DateComponents(day: 1), to: today)! let forecast = try? await WeatherService.shared.weather(for: location, including: .daily(startDate: today, endDate: tomorrow)) Can we get weather information for a range of day?
Replies
0
Boosts
0
Views
1.5k
Activity
Jul ’22