I’m gradually migrating our screen from UIKit to SwiftUI, and the first step is using a SwiftUI SearchBar as the header inside a UIKit table view.
• The rest of the screen is still UIKit, and we’re using a delegate to communicate from the SwiftUI SearchBar(Same as legacy code) back to the UIViewController, for updating the tableView for example.
• The SwiftUI component is part of the scrollable content, so it needs to behave like a native header in terms of layout and transitions.
I’d love to get your thoughts on two points:
1. Mixing SwiftUI into UIKit:
Do you see any potential issues or anti-patterns with this kind of integration — specifically using SwiftUI as a header inside a UIKit screen, while triggering UIKit logic via delegation?
Any concerns around performance, layout stability, or long-term maintainability?
2. Visibility Logic in SwiftUI:
In the SwiftUI portion, we have two optional subviews — a SearchBar and a Button.
Would you recommend:
• Wrapping both in a custom ViewModifier that manages their visibility logic
OR
• Keeping it simple and using if conditions directly in the body of the view?
Which approach have you found cleaner or more maintainable in your own projects?