Hi, everyone. I'm trying my first TimelineView with an explicit schedule, but my attempt – and even the simple example from the documentation – doesn't seem to work as documented. Here's what the documentation says an explicit schedule does:
The timeline view updates its content on exactly the dates that you specify, until it runs out of dates, after which it stops changing.
And it gives this example:
let dates = [
Date(timeIntervalSinceNow: 10), // Update ten seconds from now,
Date(timeIntervalSinceNow: 12), // and a few seconds later.
]
struct MyView: View {
var body: some View {
TimelineView(.explicit(dates)) { context in
Text(context.date.description)
}
}
}
There are stipulations about what the view – which always displays some version of its content body – will do given only past or future dates, but it seems clear we should expect the view in this example to redraw at least once after it appears.
Here's the rest of the discussion from the documentation with my comments after testing what's stated:
If the dates you provide are in the past, the timeline view updates exactly once with the last entry.
That seems true, considering the "update" to be the initial draw.
If you only provide dates in the future, the timeline view renders with the current date until the first date arrives.
Not exactly: it looks the "date" property of the initial render is the (future) date of the first schedule entry, even though it's drawn early. When the first date does arrive, the body closure doesn't seem to be called. Only on the next date, if there is one, is it called again.
If you provide one or more dates in the past and one or more in the future, the view renders the most recent past date, refreshing normally on all subsequent dates.
That also seems correct, except…
… that in every scenario, the final date entry seems to be ignored completely! In other words, unless all date entries are in the past, the Timeline View stops before it runs out of dates. That documented example from the start, which we expect to redraw at least once after it appears? When I test it in a Playground, it appears, but doesn't redraw at all!
So, that's my main point of confusion after experimenting with TimelineView for the first time. I can achieve my own goal by appending an extra entry to my explicit schedule – even appending an entry identical to the previous "final" entry seems to work – but naturally that leaves me unclear about why I need to.
If anyone can tell me what I'm not understanding, I'd be grateful.
Explore the various UI frameworks available for building app interfaces. Discuss the use cases for different frameworks, share best practices, and get help with specific framework-related questions.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
1ada58e6-51b3-4cc5-98a3-31c8d1597de5.crash
We are experiencing a segmentation fault crash when running our tests on AWS Device Farm. This crash only happens on iOS 18 and does not happen on iOS 26 also running on device farm.
We have not been able to replicate this crash locally and we have not seen this in any of our production app usage.
It appears there is some memory corruption going on and the trace always seems to crash inside Apple's UIKit code with -[UIImageSymbolConfiguration _initWithTraitCollection:].
I also see the following in the logs from CI:
[TraitCollection] Class CKBrowserSwitcherViewController overrides the -traitCollection getter, which is not supported. If you're trying to override traits, you must use the appropriate API.
We are not overriding traitCollection getter anywhere in our code and we have no usage of CKBrowserSwitcherViewController either. This crash happens when trying to go through the login flow to our app when KIF hits the login button.
I have tried debugging with Zombies and the memory graph debugger but nothing is sticking out as to what would be causing this issue. When running locally with Zombies I do not get any memory warnings going through our login flow.
Could this be a bug inside of UIKit on iOS18 which is getting exposed due to timing on AWS? Any help with next debugging steps would be appreciated.
Topic:
UI Frameworks
SubTopic:
UIKit
There appears to be a bug in Link with IPv4 addresses with padding in the second octet, on macOS and iOS both.
struct LinkViewBug: View {
let works = URL(string: "http://172.16.1.1")!
let alsoWorks = URL(string: "http://172.16.001.001")!
let doesntWork = URL(string: "http://172.016.001.001")!
let alsoDoesntWork = URL(string: "http://172.016.1.1")!
var body: some View {
// destination -> http://172.16.1.1
Link(works.formatted(), destination: works)
Link(alsoWorks.formatted(), destination: alsoWorks)
// destination -> http://172.14.1.1 ?
Link(doesntWork.formatted(), destination: doesntWork)
Link(alsoDoesntWork.formatted(), destination: alsoDoesntWork)
}
}
FeedBack Id: FB22031397 (Demo proj Attached to Feedback)
Description:
When a TabView using .page tabViewStyle is placed inside a sheet configured with multiple presentationDetents, dragging the sheet handle to resize between detents causes the TabView to re-render all its pages on every frame of the drag gesture. This results in visible content vibration, scroll position jumping, and tab content flashing during the drag. The issue is fully reproducible with the attached minimal demo project.
Steps to Reproduce:
Run the attached TabViewSheetVibrationDemo.swift on any iOS device or simulator
Tap "Open Sheet" on the main screen
Swipe left to any tab
Scroll down inside the tab so content is not at the top
Grab the sheet drag indicator at the top and slowly drag upward or downward to resize between medium and large detent
Observe the tab content while dragging
Expected Results:
The TabView page content should remain completely stable during sheet resize. Scroll positions should be preserved and no re-rendering should occur because the underlying data has not changed. The sheet should resize smoothly while tab content stays still.
Actual Results:
The TabView re-renders all pages on every frame of the drag gesture. This causes:
Visible content vibration and jitter while dragging the sheet handle
Scroll position jumping back toward the top mid-drag
Tab content flashing as pages are recreated
The problem is proportional to drag speed — slower drags show a stuttering effect, faster drags cause a full content flash
Configuration:
All Xcode including beta
iOS 26 (also reproduced on iOS 16, iOS 17 and iOS 18)
Reproducible on both Simulator and real device
Affects iPhone and iPad
In macOS 26, there is a new property on NSControl called .borderShape.
The WWDC 2025-310 video says it can be used to "Override preferred shape of control to suit your design." and that it's available on NSButton, NSPopUpButton and NSSegmentedControl.
Is there an equivalent to that property for SwiftUI? For example, given the following SwiftUI code:
Button("Eject") {
}
.borderShape(...) <-- ?
How can I apply a .borderShape that would match those on controls created in AppKit?
I'm aware that SwiftUI offers a plethora of ways to custom design a button such that it can have rounded corners, but I'm interested in this particular property so that SwiftUI buttons and AppKit buttons in the same app have the same look-and-feel.
Is anyone else getting new warning about menu items with submenus when running on Tahoe? I'm getting big performance problems using my menu as well as seeing these messages and I'm wondering if there's a connection.
My app is faceless with a NSStatusItem with an NSMenu. Specifically it's my own subclass of NSMenu where I have a lot of code to manage the menu's dynamic behavior. This code is directly in the menu subclass instead of in a controller because the app I forked had it this way, a little wacky but I don't see it being a problem. A nib defines the contents of the menu, and it's instantiated manually with code like:
var nibObjects: NSArray? = []
guard let nib = NSNib(nibNamed: "AppMenu", bundle: nil) else { ... }
guard nib.instantiate(withOwner: owner, topLevelObjects: &nibObjects) else { ... }
guard let menu = nibObjects?.compactMap({ $0 as? Self }).first else { ... }
Within that nib.instantiate call I see a warning logged that seems new to Tahoe, before the menu's awakeFromNib is called, that says (edited):
Internal inconsistency in menus - menu <NSMenu: 0x6000034e5340> believes it has <My_StatusItem_App.AppMenu: 0x7f9570c1a440> as a supermenu, but the supermenu does not seem to have any item with that submenu
My_StatusItem_App.AppMenu: 0x7f9570c1a440 is my menu belonging to the NSStatusItem, NSMenu: 0x6000034e5340 is the submenu of one of its menu items.
At a breakpoint in the NSMenu subclass's awakeFromNib I print self and see clear evidence of the warning's incorrectness. Below is a snippet of the console including the full warning, only edited for clarity and brevity. It shows on line 32 menu item with placeholder title "prototype batch item" that indeed has that submenu.
Internal inconsistency in menus - menu <NSMenu: 0x6000034e5340>
Title:
Supermenu: 0x7f9570c1a440 (My StatusItem App), autoenable: YES
Previous menu: 0x0 (None)
Next menu: 0x0 (None)
Items: (
"<NSMenuItem: 0x6000010e4fa0 Do The Thing Again, ke mask='<none>'>",
"<NSMenuItem: 0x6000010e5040 Customize\U2026, ke mask='<none>'>",
"<NSMenuItem: 0x6000010e50e0, ke mask='<none>'>"
) believes it has <My_StatusItem_App.AppMenu: 0x7f9570c1a440>
Title: My StatusItem App
Supermenu: 0x0 (None), autoenable: YES
Previous menu: 0x0 (None)
Next menu: 0x0 (None)
Items: (
) as a supermenu, but the supermenu does not seem to have any item with that submenu
(lldb) po self
<My_StatusItem_App.AppMenu: 0x7f9570c1a440>
Title: My StatusItem App
Supermenu: 0x0 (None), autoenable: YES
Previous menu: 0x0 (None)
Next menu: 0x0 (None)
Items: (
"<NSMenuItem: 0x6000010fd7c0 About My StatusItem App\U2026, ke mask='<none>', action: showAbout:, action image: info.circle>",
"<NSMenuItem: 0x6000010fd860 Show Onboarding Window\U2026, ke mask='Shift', action: showIntro:>",
"<NSMenuItem: 0x6000010fd900 Update Available\U2026, ke mask='<none>', action: installUpdate:, standard image: icloud.and.arrow.down, hidden>",
"<NSMenuItem: 0x6000010e46e0, ke mask='<none>'>",
"<NSMenuItem: 0x6000010e4780 Start The Thing, ke mask='<none>', action: startTheThing:>",
"<NSMenuItem: 0x6000010e4dc0 \U2318-\U232b key detector item, ke mask='<none>', view: <My_StatusItem_App.KeyDetectorView: 0x7f9570c1a010>>",
"<NSMenuItem: 0x6000010e4e60, ke mask='<none>'>",
"<NSMenuItem: 0x6000010e4f00 saved batches heading item, ke mask='<none>', view: <NSView: 0x7f9570b4be10>, hidden>",
"<My_StatusItem_App.BatchMenuItem: 0x6000016e02c0 prototype batch item, ke mask='<none>', action: replaySavedBatch:, submenu: 0x6000034e5340 ()>",
"<NSMenuItem: 0x6000010f7d40, ke mask='<none>'>",
"<My_StatusItem_App.ClipMenuItem: 0x7f956ef14fd0 prototype copy clip item, ke mask='<none>', action: copyClip:>",
"<NSMenuItem: 0x6000010fa620 Settings\U2026, ke='Command-,', action: showSettings:>",
"<NSMenuItem: 0x6000010fa6c0, ke mask='<none>'>",
"<NSMenuItem: 0x6000010fa760 Quit My StatusItem App, ke='Command-Q', action: quit:>"
)
Is this seemingly incorrect inconsistency message harmless? Am I only grasping at straws to think it has some connection to the performance issues with this menu?
On macOS 26.3, Xcode 26.3, why does a labelStyle of titleAndIcon not show both the title and the icon of a label?
The label styles iconOnly and titleOnly behave as expected.
Picker("Label Demo", selection: $selectedItem) {
Label {
Text("File")
} icon: {
Image(systemName: "doc")
}
Label {
Text("Folder")
} icon: {
Image(systemName: "folder")
}
}
.labelStyle(.titleAndIcon)
.pickerStyle(.segmented)
Note that there is no icon shown. Placing the .labelStyle modifier in different places has no effect.
The icon is correctly shown when the labelStyle is set to .iconOnly.
An NSSegmentedControl created with AppKit and presented in an NSViewRepresentable does correctly show titles and icons if configured appropriately.
Tested on:
macOS 26.3 (25D125)
Xcode 26.3 (17C519)
A brand new SwiftUI "macOS App" project.
I have three custom UIButton instances inside a custom UIView subclass (not inside a UINavigationBar, UIToolbar, or UITabBar). I want to apply UIGlassEffect with interactive = YES to each button so they get the native liquid glass press animation.
The problem is that the UIVisualEffectView containing the effect either:
Has userInteractionEnabled = YES — glass animation works but the button's IBAction never fires
Has userInteractionEnabled = NO — IBAction fires but no glass animation
How can I have both the native interactive glass animation and the button action firing on the same button? Is this possible with the public API, or is the interactive glass animation on custom buttons simply not supported outside of standard UIKit controls?
I have an icon button in toolbar but only the icon is triggering tap events while outside icon button gives tap feedback but event is not firing.
Code:
ToolbarItem(placement: .navigationBarTrailing) {
Button(action: toggleBookmark) {
Image(systemName: isBookmarked ? "bookmark.fill" : "bookmark")
.resizable()
.aspectRatio(0.8, contentMode: .fit)
.frame(width: 20, height: 20)
}
}
Here toggleBookmark function is only called if I click on Image but not if I click outside image but on the circular button that appears on iOS 26.
See this screen recording.
Topic:
UI Frameworks
SubTopic:
SwiftUI
Hi,
In Apple Music on CarPlay, there is a Search button shown next to the Now Playing (NPS) button in the top navigation bar. Tapping this Search button activates Siri voice search.
I want to understand:
Does CarPlay allow third-party audio apps to add a similar Search button in the top bar (next to the Now Playing button)? Which can be used to trigger Siri from the screen UI (not steering-wheel button or “Hey Siri”)?
Is there any supported approach for screen-based Siri activation other than the guidance here: https://developer.apple.com/documentation/carplay/cplisttemplate#Integrating-Siri-Into-Your-Template-App
Basically, is the Apple Music search/Siri button a publicly available CarPlay capability, or is it system-reserved?
I am reporting a reproducible performance issue in iOS 18.6 where synchronizing the scroll position of two Chart views via chartScrollPosition(id:) causes a complete redraw loop when custom AxisMarks are used. This occurs even when the axis marks are technically "hidden," leading to significant frame drops and stuttering on modern hardware like the iPhone 15.
Environment
Device: iPhone 15
OS: iOS 18.6 (22G86)
Frameworks: SwiftUI, Swift Charts, Observation
The Issue
When using a shared @Observable state to sync two charts, the scrolling is fluid only if the axes are at their default settings. As soon as a custom AxisMarks block is added to either chart, the following behavior is observed:
Diffing Failure:
The framework appears unable to maintain the identity of the axis components during the scroll update.
Redraw Loop:
Instead of an incremental scroll translation, the diffing algorithm triggers a full reload/re-render of both charts on every scroll offset change.
Impact: CPU spikes to 100% and the UI becomes unresponsive.
This happens even if the custom AxisMarks is used solely to hide the axis (e.g., AxisMarks { _ in }), suggesting the issue is with the custom declaration itself rather than the complexity of the marks being rendered.
Steps to Reproduce
Create two Chart views in a VStack.
Bind both to a single @Observable property using .chartScrollPosition(id: $state.pos).
Add any .chartXAxis { AxisMarks(...) { ... } } modifier.
Scroll either chart; observe the stuttering.
import SwiftUI
import Charts
import Observation
@Observable class ChartState {
var scrollPos: Date = .now
}
struct PerformanceBugView: View {
@State private var state = ChartState()
var body: some View {
VStack {
Chart(data) { ... }
.chartScrollPosition(id: $state.scrollPos)
.chartXAxis {
// This custom mark triggers the performance issue
AxisMarks { _ in AxisValueLabel() }
}
Chart(data) { ... }
.chartScrollPosition(id: $state.scrollPos)
}
}
}
Questions for the Community/Apple Engineers:
Is there a way to provide a stable identifier to AxisMarks to prevent them from being treated as "new" during a scroll update?
Why does even an empty AxisMarks block (used for hiding) trigger a layout invalidation that standard axes do not?
Are there internal optimizations for chartScrollPosition that are bypassed when the axis layout is customized?
My app is a UIKit app with a lot of SwiftUI mixed in. A common scenario is that a UIViewController presents a sheet with a SwiftUI view wrapped in a UIHostingController.
When I present the exact same SwiftUI View it looks different in a SwiftUI sheet compared to when it's wrapped in a UIHostingController and presented from a view controller.
I'm using a hacky workaround in which I loop through all subviews of the hosting controller in viewWillLayoutSubviews and look for a NavigationStackHostingController<SwiftUI.AnyView> to manually set the background color, but it feels like it could brake easily.
Has anyone found a better way to fix this?
Feedback: FB22028838
To display rows and columns of data in a nice layout like a spreadsheet I use a table like the code here ..
Table(array) {
TableColumn("Ticker", value: \\.ticker)
TableColumn("Other", value: \.other)
}
To delete a row from the table the advice is to use a ForEach loop. Since I don’t use a ForEach loop, how do I delete rows from the table ? With this code there is no way to attach a .onDelete modifier or a Button
Any advice would be much appreciated
Thank you
Topic:
UI Frameworks
SubTopic:
SwiftUI
Here’s a recap of the Live Q&A for SwiftUI foundations: Build great apps with SwiftUI. If you participated and asked questions, thank you for coming and participating! If you weren’t able to join us live we hope this recap is useful
Where can I watch the VOD? Is the sample code “Wishlist” that was shown available for download?
You can view the replay of the entire event here https://www.youtube.com/watch?v=Z3vloOtZLkQ
The sample code for the Wishlist app will be made available in the coming weeks on the Apple Developer website, we'll send an update via email when it is available.
What are the best practices when it comes to building complex navigations in SwiftUI?
The developer website has documentation on navigation style best practices.
Explore navigation basics like NavigationStack and TabView to get a ground-up understanding. For documentation on navigation APIs see Navigation.
How can I integrate UIKit with my SwiftUI app? What about adding SwiftUI into my UIKit app?
See UIKit integration: Add UIKit views to your SwiftUI app, or use SwiftUI views in your UIKit app. Both UIKit and SwiftUI provide API to show a view hierarchy of the other.
For UIKit to SwiftUI, you would use UIViewControllerRepresentable.
For SwiftUI to UIKit, you would use UIHostingController.
Landmarks: Interfacing with UIKit walks you through step by step how to implement UIKit in SwiftUI with UIViewControllerRepresentable, and this WWDC22 video demonstrates UIHostingController, for those that want to add SwiftUI to their UIKit.
Does Wishlist feature a new iOS 26 font? How can I add custom fonts and text of my app?
We’re glad to hear many of you liked wide text shown in Wishlist, however, It is the default system font with some light SwiftUI styling! Check it out for yourself in the sample code when made available, and you can learn more about customizing fonts and text by seeing Font and Applying custom fonts to text.
Does Xcode have a dependency graph we can use to optimize our SwiftUI Views?
Xcode comes with Instruments. Instruments is the best way to figure out what is causing excessive updates and other issues with performance. That link provides direct tutorials and resources for how to use and understand. Previews also have many useful tools for analyzing SwiftUI views, for more info see Previews in Xcode
Check out this video from our latest WWDC Optimize SwiftUI performance with Instruments for information on how to use Instruments to profile and optimize your app with real-world applications
If you still have questions, Check out the Instruments section of these forums and create a post so the community has the opportunity to help guide you.
Are there UI debugging tools to help diagnose layout issues?
Yes, Xcode also features a View Debugger located by selecting the View Debug Hierarchy, pictured below. Use the View Debugger to capture and inspect your view hierarchy, identifying which views affect window sizing. The SwiftUI Inspector also lets you examine view frames and layout behavior.
See Diagnosing issues in the appearance of a running app to learn about debugging visual and layout issues.
As an absolute beginner, what would be the first go-to step to go for training? Do I need prior knowledge of frameworks to get started with SwiftUI?
A great place to learn how to develop for Apple platforms is with Pathways! Many developers start with Develop in Swift tutorials, which exposes you to several frameworks while teaching you the basics of SwiftUI. When you're ready to take your learning further, you can read the documentation for the specific frameworks that interest you at https://developer.apple.com/documentation/.
Topic:
UI Frameworks
SubTopic:
SwiftUI
I reported Korean IME bug to QT Bug report. Please refer to below link.
https://bugreports.qt.io/browse/QTBUG-136128?jql=text%20~%20korean%20ORDER%20BY%20created%20DESC
But, QT reponsed me like follwing.
Thank you for reporting. However, this issue seems like a known issue with apple's Korean IME. There are many threads in Korean community about the same problem with Non-Qt apps. If this issue is a really Qt issue, feel free to open it again.
Is there any workaround to fix this IME bug ?
Thanks,
Ted
My application provides a unique feature for MacOS 26+ users, while keeping legacy for other versions (12.4+).
So I aim to provide two help books localized package, depending on MacOS' version of the running computer.
I designed two help bundles, with their own Info.plist files (identifiers, default filename…) and I've made multiple checks to verify that all their settings are correct and different when needed.
As an app's info.plist can deal only with one Help Book, my application delegate registers both in
applicationDidFinishLaunching:
using:
[[NSHelpManager sharedHelpManager] registerBooksInBundle:[NSBundle mainBundle]];
In Interface Builder, the help menu item is connected to the application delegate's "showHelp:" method to set the correct help package. The code in this method is:
if (@available(macOS 26.0,*)){
helpbook = @"fr.myapp.updated.help";
} else {
helpbook = @"fr.myapp.legacy.help";
}
[[NSHelpManager sharedHelpManager] openHelpAnchor:@"index" inBook:helpbook];
The problem is that despite the MacOS version of the user's Mac, (either 15.1 or 26.2) , the «legacy» helpbook is always used. All default index.html (for each lproj) have a
tag immediately after the
I spent dozen of hours to understand the problem, forum parsing, including hours long dialogs with ChatGPT and Claude AIs (not mentioning MacOS' help system cache problems I could solve)
I noticed also, to be complete, that when parsing the application package, opening the legacy .help with "Tips.app" always works, but with the "updated" one the help system opens with an "unavailable content" message. Both help bundles are fully included in the built application.
Tested whether the app is installed in the debug directory, moved to in the Applications one, reboot, emptying/deleting cache files.
So Houston, I have a problem…
Any idea?
Topic:
UI Frameworks
SubTopic:
AppKit
When making an element with .glassEffect(.clear.interactive()) draggable, it stretches as it moves.
It seems like it's meant to stretch as you move your finger away from the element, but it doesn't make sense if the element is following your finger as you drag it.
Is this a bug, or is there a way to disable this behavior without removing the other "interactive" animations?
P.S. The shiny border around the elements seems to be a rounded rectangle or capsule, but the actual element's shape seems to be stretched. That also appears to be a bug.
I'm building a macOS app that uses WKWebView for text editing (not NSTextView). I need to provide grammar checking by calling NSSpellChecker programmatically and sending results back to the web editor.
The problem: TextEdit (which uses NSTextView) catches grammar errors like "Can I has pie?" and "These are have" — but when I call NSSpellChecker's APIs directly, those same errors are never flagged.
I've tried both APIs:
1. The unified check() API:
let results = checker.check(
text, range: range,
types: NSTextCheckingAllTypes,
options: [:],
inSpellDocumentWithTag: tag,
orthography: &orthography,
wordCount: &wordCount)
This returns only .orthography results (language detection). No .spelling, no .grammar — just orthography.
2. The dedicated checkGrammar(of:startingAt:...) API:
let sentenceRange = checker.checkGrammar(
of: text,
startingAt: offset,
language: nil,
wrap: false,
inSpellDocumentWithTag: tag,
details: &details)
This catches sentence fragments ("The.", "No.") and some agreement errors ("The is anyone.") but misses "Can I has pie?", "These are have", "This will be happened", and other subject-verb agreement errors that TextEdit highlights.
What I've confirmed:
"Check Grammar With Spelling" is enabled in System Settings
TextEdit reliably catches all these errors with green underlines
Both APIs are called with a valid spellDocumentTag from uniqueSpellDocumentTag()
The text is passed as plain strings (no attributed string context)
My question: How does NSTextView's grammar checking work internally? It must be using something beyond these two public APIs. Possibilities I'm considering:
Does NSTextView use the NSTextCheckingClient protocol / requestChecking(of:range:types:options:) for asynchronous checking that produces different results?
Does NSTextView provide additional context (attributed string, layout info) that improves grammar detection?
Is there a private/undocumented API or framework that NSTextView uses for deeper grammar analysis?
Any insight from anyone who has implemented programmatic grammar checking on macOS would be appreciated.
NOTE: This post was composed with the help of Claude Code, which I am using to help write a word-processing application, but I am frustrated because Claude Code wants to give up and switch to a 3rd party grammar checker, like LanguageTool, and it seems to me that it should be possible to use native Apple tools to achieve this goal without requiring the user to send their data elsewhere for checking. I've spent a lot of time searching the web for answers and have found surprisingly little on this. Any pointers people might have would be very much appreciated! Thanks.
I'm experiencing consistent memory crashes in iOS 26.3 (23D127)
when using @AppStorage with view transitions.
Environment:
Device: iPhone 17 Pro Max
iOS: 26.3 (23D127)
Xcode: 26.2 (17C52)
Issue:
App crashes with "Terminated due to memory issue" when:
Using @AppStorage to manage state
Calling UserDefaults.set() in completion handler
Transitioning to new view based on changed state
Workaround:
Using @State instead of @AppStorage prevents crash.
Feedback: FB############ (your number)
Has anyone else experienced this? Is this a known issue in iOS 26?
Topic:
UI Frameworks
SubTopic:
SwiftUI
I read some article that said for using Apple Intelligence as an integrated part of an app, instead of tacked on, MVVM and VIPER are not good fits. Would that be accurate? What other architectures could work better? (The author didn’t suggest any replacements.)