SwiftUI offers a valuable tool for previewing your interactive interface in real-time. Let's look at how to integrate SwiftUI previews into your Objective-C project. You can also get good helpers that will make previewing easier.
Helpers for displaying interactive Previews
First, create a wrapper for the UIViewController
import SwiftUI
struct VCWrapper: UIViewControllerRepresentable {
    private let vc: UIViewController
    
    init(vc: UIViewController) {
        self.vc = vc
    }
    
    func makeUIViewController(context: Context) -> UIViewController { vc }
    
    func updateUIViewController(_ uiViewController: UIViewController, context: Context) {}
}
Then, create an extension for UIViewController for easy wrapper access.
import UIKit
extension UIViewController {
    var preview: VCWrapper { VCWrapper(vc: self) }
}
Finally, add a new file, PreviewScene implementing the protocol PreviewProvider
import SwiftUI
struct PreviewScene: PreviewProvider {
    static var previews: some View {
        
    }
}
Project with Storyboard
Create a simple UIViewController in Storyboard and add a Storyboard ID to the UIViewController.
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *switcherIndicator;
@end
ViewController.m
#import "ViewController.h"
#import <SwiftUI/SwiftUI.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    
}
- (IBAction)switchToggle:(id)sender {
    UISwitch *switcher = sender;
    self.switcherIndicator.text = switcher.isOn ? @"🟢" : @"🔴";
}
@end
Add a line to PreviewScene to show a preview of the UIViewController from the Storyboard.
UIStoryboard(name: "Main", bundle: nil)
    .instantiateViewController(identifier: "ViewController")
    .preview
Project without Storyboard
Create a CustomVC without a Storyboard, just programmatically
CustomVC.h
#import <UIKit/UIkit.h>
@interface CustomVC : UIViewController
@property UILabel *lbl;
@end
CustomVC.m
#import "CustomVC.h"
#import "UILib.h"
@interface CustomVC ()
@end
@implementation CustomVC
- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor grayColor];
    
    UIButton *btn = [UILib btn:30 y:100 caption:@"TapMe"];
    [btn addTarget:self action:@selector(tapBtn) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
    
    self.lbl = [UILib label:160 y:100];
    self.lbl.text = @"txt";
    [self.view addSubview:self.lbl];
}
- (void)tapBtn {
    self.lbl.text = @"ButtonTapped";
}
@end
Before adding a preview, you must add an import to {YourProjectName}-Bridging-Header.h, which is created when you first add a quick file to the project.
#import "CustomVC.h"
Add this UIViewController to the PreviewScene
CustomVC()
    .preview
Conclusion
SwiftUI preview integration provides various ways to improve your Objective-C development workflow. Whether you're working with storyboards or code, SwiftUI Preview offers a quick way to visualize UI changes without running the simulator.