Migrer une application iOS vers WinUI 3

Si vous disposez d’une application iOS et que vous souhaitez l’apporter à Windows, les outils IA peuvent effectuer la plupart du travail de mappage. Cette page fournit les traductions de concept clés de UIKit/SwiftUI vers WinUI 3. Utilisez ces tableaux comme contexte lorsque vous sollicitez votre agent d’IA : fournir dès le départ des correspondances d’API exactes produit un résultat bien plus précis que de demander une conversion générique.

Installez d’abord le plug-in de l’agent WinUI pour fournir à votre agent une connaissance précise de WinUI 3 :

gh copilot plugin install winui@awesome-copilot

Mappage de concepts

iOS (UIKit / SwiftUI) Équivalent WinUI 3 Remarques
UIViewController Page Les pages WinUI sont parcourues via Frame
UINavigationController Frame + NavigationView Utiliser Frame.Navigate() pour les transitions de page
UITabBarController NavigationView (onglets en haut ou à gauche)
UITableView ListView Utiliser ObservableCollection<T> pour la liaison de données
UICollectionView GridView
UIAlertController ContentDialog Doit avoir pour parent le XamlRoot actuel
UILabel TextBlock
UITextField TextBox
UIButton Button
UIImageView Image
UIStackView StackPanel Définir Orientation sur Horizontal ou Vertical
Auto Layout Grid / StackPanel / RelativePanel La disposition XAML est basée sur des lignes/colonnes
@State / @Binding (SwiftUI) INotifyPropertyChanged / ObservableProperty (CommunityToolkit.Mvvm)
NSUserDefaults ApplicationData.Current.LocalSettings
URLSession HttpClient Utilisez System.Net.Http.HttpClient.
NotificationCenter Événements ou WeakReferenceMessenger (CommunityToolkit.Mvvm)
DispatchQueue.main.async DispatcherQueue.TryEnqueue
AppDelegate.applicationDidFinishLaunching App.OnLaunched
SceneDelegate / windowScene MainWindow / AppWindow
FileManager StorageFolder / StorageFile
UserNotifications AppNotificationManager (Microsoft.Windows.AppNotifications)

Invite de démarrage

Utilisez cette invite pour donner à votre agent IA le contexte dont il a besoin avant de démarrer une migration :

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.

Ce qui ne mappe pas directement

Certains concepts iOS n’ont pas d’équivalent WinUI direct :