Migrera en iOS-app till WinUI 3

Om du har en iOS-app och vill ta den till Windows kan AI-verktyg utföra det mesta av mappningsarbetet. Den här sidan innehåller viktiga begreppsöversättningar från UIKit/SwiftUI till WinUI 3. Använd de här tabellerna som kontext när du frågar din AI-agent – om du tillhandahåller exakta API-mappningar i förväg får du mycket mer exakta utdata än att be om en allmän konvertering.

Installera Plugin-programmet för WinUI-agenten först för att ge din agent korrekt WinUI 3-kunskap:

gh copilot plugin install winui@awesome-copilot

Konceptkartläggning

iOS (UIKit/SwiftUI) Motsvarande WinUI 3 Notes
UIViewController Page WinUI-sidor navigeras via Frame
UINavigationController Frame + NavigationView Använda Frame.Navigate() för sidövergångar
UITabBarController NavigationView (övre eller vänstra flikar)
UITableView ListView Använda ObservableCollection<T> för databindning
UICollectionView GridView
UIAlertController ContentDialog Måste vara underordnad den aktuella XamlRoot
UILabel TextBlock
UITextField TextBox
UIButton Button
UIImageView Image
UIStackView StackPanel Ange Orientation till Horizontal eller Vertical
Auto Layout Grid / StackPanel / RelativePanel XAML-layouten är rad-/kolumnbaserad
@State / @Binding (SwiftUI) INotifyPropertyChanged / ObservableProperty (CommunityToolkit.Mvvm)
NSUserDefaults ApplicationData.Current.LocalSettings
URLSession HttpClient Använd System.Net.Http.HttpClient
NotificationCenter Händelser eller WeakReferenceMessenger (CommunityToolkit.Mvvm)
DispatchQueue.main.async DispatcherQueue.TryEnqueue
AppDelegate.applicationDidFinishLaunching App.OnLaunched
SceneDelegate / windowScene MainWindow / AppWindow
FileManager StorageFolder / StorageFile
UserNotifications AppNotificationManager (Microsoft.Windows.AppNotifications)

Startprompt

Använd den här uppmaningen för att ge AI-agenten den kontext den behöver innan du påbörjar en migrering:

I'm migrating an iOS app to WinUI 3 using the Windows App SDK.

The app is written in [Swift / Objective-C] using [UIKit / SwiftUI].

Apply these mappings:
- UIViewController → Page, navigated via Frame
- UINavigationController → Frame + NavigationView
- UITableView → ListView with ObservableCollection<T>
- UIAlertController → ContentDialog (parented to XamlRoot)
- NSUserDefaults → ApplicationData.Current.LocalSettings
- URLSession → System.Net.Http.HttpClient
- DispatchQueue.main.async → DispatcherQueue.TryEnqueue
- @State / @Binding → INotifyPropertyChanged via CommunityToolkit.Mvvm

Use Microsoft.UI.Xaml.* namespaces throughout — never Windows.UI.Xaml.*.
Generate C# — not Swift.

Det som inte mappas direkt

Vissa iOS-begrepp har inte någon direkt WinUI-motsvarighet: